#include "sysfile.h"
#include "window.h"
-#include <stddef.h>
-
#ifdef DOUG_LEA_MALLOC
#include <malloc.h>
#endif
/* Non-zero means we're in the process of doing the dump */
int purify_flag;
-#ifdef HEAP_IN_DATA
-extern void sheap_adjust_h();
-#endif
-
#ifdef ERROR_CHECK_TYPECHECK
Error_behavior ERROR_ME, ERROR_ME_NOT, ERROR_ME_WARN;
return 0;
}
+static const struct lrecord_description cons_description[] = {
+ { XD_LISP_OBJECT, offsetof(struct Lisp_Cons, car), 2 },
+ { XD_END }
+};
+
DEFINE_BASIC_LRECORD_IMPLEMENTATION ("cons", cons,
mark_cons, print_cons, 0,
cons_equal,
* handle conses.
*/
0,
+ cons_description,
struct Lisp_Cons);
DEFUN ("cons", Fcons, 2, 2, 0, /*
return 1;
}
+static const struct lrecord_description vector_description[] = {
+ { XD_LONG, offsetof(struct Lisp_Vector, size) },
+ { XD_LISP_OBJECT, offsetof(struct Lisp_Vector, contents), XD_INDIRECT(0) }
+};
+
DEFINE_LRECORD_SEQUENCE_IMPLEMENTATION("vector", vector,
mark_vector, print_vector, 0,
vector_equal,
* knows how to handle vectors.
*/
0,
+ vector_description,
size_vector, Lisp_Vector);
/* #### should allocate `small' vectors from a frob-block */
!memcmp (XSTRING_DATA (obj1), XSTRING_DATA (obj2), len));
}
+static const struct lrecord_description string_description[] = {
+ { XD_STRING_DATA, offsetof(Lisp_String, data) },
+ { XD_LISP_OBJECT, offsetof(Lisp_String, plist), 1 },
+ { XD_END }
+};
+
DEFINE_BASIC_LRECORD_IMPLEMENTATION ("string", string,
mark_string, print_string,
/*
* SWEEP_FIXED_TYPE_BLOCK().
*/
0, string_equal, 0,
+ string_description,
struct Lisp_String);
/* String blocks contain this many useful bytes. */
Bufbyte *init_ptr = init_str;
switch (len)
{
+#ifdef UTF2000
+ case 6: *ptr++ = *init_ptr++;
+ case 5: *ptr++ = *init_ptr++;
+#endif
case 4: *ptr++ = *init_ptr++;
case 3: *ptr++ = *init_ptr++;
case 2: *ptr++ = *init_ptr++;
DEFINE_LRECORD_IMPLEMENTATION ("lcrecord-list", lcrecord_list,
mark_lcrecord_list, internal_object_printer,
- 0, 0, 0, struct lcrecord_list);
+ 0, 0, 0, 0, struct lcrecord_list);
Lisp_Object
make_lcrecord_list (size_t size,
CONST struct lrecord_implementation *implementation)