Diffusion GnuPG 38c955599f7c

gpgscm: Remove framework for immediate values.

Authored by justus on Mar 16 2017, 4:58 PM.

Description

gpgscm: Remove framework for immediate values.

* tests/gpgscm/scheme.c (IMMEDIATE_TAG): Remove macro.
(is_immediate): Likewise.
(set_immediate): Likewise.
(clr_immediate): Likewise.
(enum scheme_types): Set the LSB in every value.
(fill_vector): Adapt.
(vector_elem): Likewise.
(set_vector_elem): Likewise.
(mark): Likewise.
(gc): Test for the LSB to tell typeflags apart from pointers stored in
the same memory location.

Supporting immediate values would require invasive changes to the
interpreter and is likely not worth the trouble. On the other hand,
tagging pointers in vectors complicated the hash table implementation
needlessly. Therefore, I remove this again.

This fixes a crash on big endian architectures.

  • GnuPG-bug-id: T2996
  • Signed-off-by: Justus Winter <justus@g10code.com>

Details

Committed
justusMar 17 2017, 10:34 AM
Parents
rG8c8ce8711d9c: agent,g10: Remove redundant SERIALNO request.
Branches
Unknown
Tags
Unknown
Justus Winter <justus@g10code.com> committed rG38c955599f7c: gpgscm: Remove framework for immediate values. (authored by Justus Winter <justus@g10code.com>).Mar 17 2017, 10:34 AM
justus mentioned this in Unknown Object (Maniphest Task).Mar 27 2017, 5:34 PM