1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-09-24 15:31:41 +02:00
gnupg/tests/gpgscm
Justus Winter 49e2ae65e8 gpgscm: Use a compact vector representation.
* tests/gpgscm/scheme-private.h (struct cell): Add a compact vector
representation.
* tests/gpgscm/scheme.c (vector_length): Use new representation.
(vector_size): New macro.
(get_vector_object): Use the new representation.
(fill_vector): Likewise.
(vector_elem): Likewise.
(set_vector_elem): Likewise.
(mark): Likewise.
(gc): Likewise.  Be careful not to confuse immediate values for type
flags.
(finalize_cell): Vectors now require finalization.
--

Previously, vectors were represented using consecutive cons cells,
wasting one word per cell for the type information.  Fix that by using
a flat array.

Previously, a vector of size N required 1 + (n + 1) / 2 cells.  Now it
uses 1 + (n - 1 + 2) / 3 cells.

Signed-off-by: Justus Winter <justus@g10code.com>
2017-01-30 18:21:24 +01:00
..
ffi-private.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
ffi.c gpgscm: Expose seek and associated constants. 2016-11-08 16:02:55 +01:00
ffi.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
ffi.scm gpgscm: Better error reporting. 2016-12-08 17:22:50 +01:00
init.scm gpgscm: Add 'finally', rework all macros. 2017-01-02 11:02:34 +01:00
lib.scm gpgscm: Display location when assertions fail. 2016-12-19 15:42:35 +01:00
LICENSE.TinySCHEME Add license notices for TinySCHEME. 2016-06-17 18:53:45 +02:00
main.c gpgscm: Better error reporting. 2016-12-08 17:22:50 +01:00
Makefile.am Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
Manual.txt Fix more spelling 2016-09-17 16:00:37 +09:00
opdefines.h gpgscm: Keep a history of calls for error messages. 2016-12-08 17:15:20 +01:00
private.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
repl.scm gpgscm: Better error reporting. 2016-12-08 17:22:50 +01:00
scheme-config.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
scheme-private.h gpgscm: Use a compact vector representation. 2017-01-30 18:21:24 +01:00
scheme.c gpgscm: Use a compact vector representation. 2017-01-30 18:21:24 +01:00
scheme.h gpgscm: Keep a history of calls for error messages. 2016-12-08 17:15:20 +01:00
t-child.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-child.scm gpgscm: Improve test of low-level functions. 2016-10-07 16:25:55 +02:00
tests.scm gpgscm: Fail if too many arguments are given. 2017-01-02 11:02:34 +01:00