1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-12-31 11:41:32 +01:00
Justus Winter 8640fa880d
gpgscm: Allocate small integers in the rodata section.
* tests/gpgscm/Makefile.am (gpgscm_SOURCES): Add new file.
* tests/gpgscm/scheme-private.h (struct cell): Move number to the top
of the union so that we can initialize it.
(struct scheme): Remove 'integer_segment'.
* tests/gpgscm/scheme.c (initialize_small_integers): Remove function.
(small_integers): New variable.
(MAX_SMALL_INTEGER): Compute.
(mk_small_integer): Adapt.
(mark): Avoid marking objects already marked.  This allows us to run
the algorithm over objects in the rodata section if they are already
marked.
(scheme_init_custom_alloc): Remove initialization.
(scheme_deinit): Remove deallocation.
* tests/gpgscm/small-integers.h: New file.
--

Allocate small integers from a fixed pool in the rodata section.  This
spares us the initialization, and deduplicates integers across
different processes.  It also makes the integers immutable, increasing
memory safety.

Signed-off-by: Justus Winter <justus@g10code.com>
2017-04-07 13:50:20 +02:00
..
2006-05-16 09:54:41 +00:00
2017-04-06 12:36:00 +02:00
2017-04-06 15:20:43 +02:00
2004-02-17 15:07:27 +00:00
2002-01-29 15:46:55 +00:00
2002-01-29 15:46:55 +00:00
2002-01-29 15:46:55 +00:00
2002-01-29 15:46:55 +00:00
2002-01-29 15:46:55 +00:00
2002-01-29 15:46:55 +00:00
2002-01-29 15:46:55 +00:00
2002-01-29 15:46:55 +00:00
2009-02-19 16:19:16 +00:00
2002-04-15 17:15:21 +00:00
2017-04-06 15:20:43 +02:00
2011-02-04 12:57:53 +01:00