Mercurial > hg > xemacs-beta
changeset 4936:94bba904528c
(for main branch) Also reset dynarr->largest value during pdump.
Avoids an assertion failure when working with dynarrs across dumping.
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Tue, 19 Jan 2010 05:07:36 -0600 |
parents | 7ef913bf3c9a |
children | 195ceb7d6229 |
files | src/lrecord.h |
diffstat | 1 files changed, 8 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lrecord.h Tue Jan 19 01:24:21 2010 -0600 +++ b/src/lrecord.h Tue Jan 19 05:07:36 2010 -0600 @@ -1142,18 +1142,21 @@ #define XD_INDIRECT_VAL(code) ((-1 - (code)) & 255) #define XD_INDIRECT_DELTA(code) ((-1 - (code)) >> 8) -#define XD_DYNARR_DESC(base_type, sub_desc) \ - { XD_BLOCK_PTR, offsetof (base_type, base), XD_INDIRECT(1, 0), {sub_desc} },\ - { XD_INT, offsetof (base_type, len) }, \ - { XD_INT_RESET, offsetof (base_type, max), XD_INDIRECT(1, 0) } \ +#define XD_DYNARR_DESC(base_type, sub_desc) \ + { XD_BLOCK_PTR, offsetof (base_type, base), \ + XD_INDIRECT(1, 0), {sub_desc} }, \ + { XD_INT, offsetof (base_type, len) }, \ + { XD_INT_RESET, offsetof (base_type, largest) }, \ + { XD_INT_RESET, offsetof (base_type, max), XD_INDIRECT(1, 0) } #ifdef NEW_GC #define XD_LISP_DYNARR_DESC(base_type, sub_desc) \ { XD_LISP_OBJECT_BLOCK_PTR, offsetof (base_type, base), \ XD_INDIRECT(1, 0), {sub_desc} }, \ { XD_INT, offsetof (base_type, len) }, \ + { XD_INT_RESET, offsetof (base_type, largest) }, \ { XD_INT_RESET, offsetof (base_type, max), XD_INDIRECT(1, 0) } -#endif /* not NEW_GC */ +#endif /* NEW_GC */ /* DEFINE_LRECORD_IMPLEMENTATION is for objects with constant size. DEFINE_LRECORD_SEQUENCE_IMPLEMENTATION is for objects whose size varies.