1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-12-31 11:41:32 +01:00
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
..
2006-05-16 09:54:41 +00: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
2016-12-20 16:51:38 +01:00
2011-02-04 12:57:53 +01:00