# HG changeset patch # User Ben Wing # Date 1263899256 21600 # Node ID 94bba904528c525276d287e15fae5172baea70be # Parent 7ef913bf3c9aecfc693e95e77e5581624606efc1 (for main branch) Also reset dynarr->largest value during pdump. Avoids an assertion failure when working with dynarrs across dumping. diff -r 7ef913bf3c9a -r 94bba904528c src/lrecord.h --- 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.