mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
gpgscm: Use a static pool of cells for small integers.
* tests/gpgscm/scheme-private.h (struct scheme): New fields for the static integer cells. * tests/gpgscm/scheme.c (_alloc_cellseg): New function. (alloc_cellseg): Use the new function. (MAX_SMALL_INTEGER): New macro. (initialize_small_integers): New function. (mk_small_integer): Likewise. (mk_integer): Return a small integer if possible. (_s_return): Do not free 'op' if it is a small integer. (s_save): Use a small integer to box the opcode. (scheme_init_custom_alloc): Initialize small integers. (scheme_deinit): Free chunk of small integers. * tests/gpgscm/scheme.h (USE_SMALL_INTEGERS): New macro. Signed-off-by: Justus Winter <justus@g10code.com>
This commit is contained in:
parent
893a3f7fb4
commit
66834eb838
3 changed files with 108 additions and 19 deletions
|
@ -43,6 +43,7 @@ extern "C" {
|
|||
# define USE_COMPILE_HOOK 0
|
||||
# define USE_DL 0
|
||||
# define USE_PLIST 0
|
||||
# define USE_SMALL_INTEGERS 0
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -95,6 +96,13 @@ extern "C" {
|
|||
# define USE_THREADED_CODE 1
|
||||
#endif
|
||||
|
||||
/* Use a static set of cells to represent small numbers. This set
|
||||
* notably includes all opcodes, and hence saves a cell reservation
|
||||
* during 's_save'. */
|
||||
#ifndef USE_SMALL_INTEGERS
|
||||
# define USE_SMALL_INTEGERS 1
|
||||
#endif
|
||||
|
||||
#ifndef USE_STRCASECMP /* stricmp for Unix */
|
||||
# define USE_STRCASECMP 0
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue