(scavtab[widetag_of(object)])(object_ptr, object);
}
}
- gc_assert(object_ptr == end);
+ gc_assert_verbose(object_ptr == end, "Final object pointer %p, end %p\n",
+ object_ptr, end);
}
static lispobj trans_fun_header(lispobj object); /* forward decls */
entry_point != NIL;
entry_point = function_ptr->next) {
- gc_assert(is_lisp_pointer(entry_point));
+ gc_assert_verbose(is_lisp_pointer(entry_point), "Entry point %lx\n",
+ (long)entry_point);
function_ptr = (struct simple_fun *) native_pointer(entry_point);
gc_assert(widetag_of(function_ptr->header)==SIMPLE_FUN_HEADER_WIDETAG);
/* disabling gc assertions made no discernable difference to GC speed,
* last I tried it - dan 2003.12.21 */
#if 1
-#define gc_assert(ex) do { \
- if (!(ex)) gc_abort(); \
+# define gc_assert(ex) \
+do { \
+ if (!(ex)) gc_abort(); \
+} while (0)
+# define gc_assert_verbose(ex, fmt, ...) \
+do { \
+ if (!(ex)) { \
+ fprintf(stderr, fmt, ## __VA_ARGS__); \
+ gc_abort(); \
+ } \
} while (0)
#else
-#define gc_assert(ex)
+# define gc_assert(ex)
+# define gc_assert_verbose(ex, fmt, ...)
#endif
-#define gc_abort() lose("GC invariant lost, file \"%s\", line %d", \
- __FILE__, __LINE__)
+
+#define gc_abort() \
+ lose("GC invariant lost, file \"%s\", line %d\n", __FILE__, __LINE__)
#define CEILING(x,y) (((x) + ((y) - 1)) & (~((y) - 1)))
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.9.7.12"
+"0.9.7.13"