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.