X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Falloc.c;h=23a6a91d6028ca027b3141d5442d751e2d592f54;hb=87c4768b9f74b6d48fb56908f29fb1dccadb11ea;hp=7193a4b1165479ebfd423f11e67d731e08336761;hpb=f4401195cc0b3ed233b61236e1ca00666e6f1e64;p=chise%2Fxemacs-chise.git- diff --git a/src/alloc.c b/src/alloc.c index 7193a4b..23a6a91 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -85,8 +85,8 @@ EXFUN (Fgarbage_collect, 0); #endif #ifdef DEBUG_XEMACS -static int debug_allocation; -static int debug_allocation_backtrace_length; +static Fixnum debug_allocation; +static Fixnum debug_allocation_backtrace_length; #endif /* Number of bytes of consing done since the last gc */ @@ -357,9 +357,6 @@ allocate_lisp_storage (size_t size) After doing the mark phase, GC will walk this linked list and free any lcrecord which hasn't been marked. */ static struct lcrecord_header *all_lcrecords; -#ifdef UTF2000 -static struct lcrecord_header *all_older_lcrecords; -#endif void * alloc_lcrecord (size_t size, const struct lrecord_implementation *implementation) @@ -389,37 +386,6 @@ alloc_lcrecord (size_t size, const struct lrecord_implementation *implementation return lcheader; } -#ifdef UTF2000 -void * -alloc_older_lcrecord (size_t size, - const struct lrecord_implementation *implementation) -{ - struct lcrecord_header *lcheader; - - type_checking_assert - ((implementation->static_size == 0 ? - implementation->size_in_bytes_method != NULL : - implementation->static_size == size) - && - (! implementation->basic_p) - && - (! (implementation->hash == NULL && implementation->equal != NULL))); - - lcheader = (struct lcrecord_header *) allocate_lisp_storage (size); - set_lheader_older_implementation (&lcheader->lheader, implementation); - lcheader->next = all_older_lcrecords; -#if 1 /* mly prefers to see small ID numbers */ - lcheader->uid = lrecord_uid_counter++; -#else /* jwz prefers to see real addrs */ - lcheader->uid = (int) &lcheader; -#endif - lcheader->free = 0; - all_older_lcrecords = lcheader; - INCREMENT_CONS_COUNTER (size, implementation->name); - return lcheader; -} -#endif - #if 0 /* Presently unused */ /* Very, very poor man's EGC? * This may be slow and thrash pages all over the place. @@ -470,14 +436,6 @@ disksave_object_finalization_1 (void) !header->free) LHEADER_IMPLEMENTATION (&header->lheader)->finalizer (header, 1); } -#ifdef UTF2000 - for (header = all_older_lcrecords; header; header = header->next) - { - if (LHEADER_IMPLEMENTATION (&header->lheader)->finalizer && - !header->free) - LHEADER_IMPLEMENTATION (&header->lheader)->finalizer (header, 1); - } -#endif } @@ -489,17 +447,31 @@ disksave_object_finalization_1 (void) about expressions in src/.gdbinit. See src/.gdbinit or src/.dbxrc to see how this is used. */ -const EMACS_UINT dbg_valmask = ((1UL << VALBITS) - 1) << GCBITS; -const EMACS_UINT dbg_typemask = (1UL << GCTYPEBITS) - 1; +EMACS_UINT dbg_valmask = ((1UL << VALBITS) - 1) << GCBITS; +EMACS_UINT dbg_typemask = (1UL << GCTYPEBITS) - 1; #ifdef USE_UNION_TYPE -const unsigned char dbg_USE_UNION_TYPE = 1; +unsigned char dbg_USE_UNION_TYPE = 1; #else -const unsigned char dbg_USE_UNION_TYPE = 0; +unsigned char dbg_USE_UNION_TYPE = 0; #endif -const unsigned char dbg_valbits = VALBITS; -const unsigned char dbg_gctypebits = GCTYPEBITS; +unsigned char dbg_valbits = VALBITS; +unsigned char dbg_gctypebits = GCTYPEBITS; + +/* On some systems, the above definitions will be optimized away by + the compiler or linker unless they are referenced in some function. */ +long dbg_inhibit_dbg_symbol_deletion (void); +long +dbg_inhibit_dbg_symbol_deletion (void) +{ + return + (dbg_valmask + + dbg_typemask + + dbg_USE_UNION_TYPE + + dbg_valbits + + dbg_gctypebits); +} /* Macros turned into functions for ease of debugging. Debuggers don't know about macros! */ @@ -2450,11 +2422,7 @@ mark_object (Lisp_Object obj) /* All c_readonly objects have their mark bit set, so that we only need to check the mark bit here. */ - if ( (!MARKED_RECORD_HEADER_P (lheader)) -#ifdef UTF2000 - && (!OLDER_RECORD_HEADER_P (lheader)) -#endif - ) + if (! MARKED_RECORD_HEADER_P (lheader)) { MARK_RECORD_HEADER (lheader); @@ -3856,9 +3824,6 @@ reinit_alloc_once_early (void) XSETINT (all_bit_vectors, 0); /* Qzero may not be set yet. */ XSETINT (Vgc_message, 0); all_lcrecords = 0; -#ifdef UTF2000 - all_older_lcrecords = 0; -#endif ignore_malloc_warnings = 1; #ifdef DOUG_LEA_MALLOC mallopt (M_TRIM_THRESHOLD, 128*1024); /* trim threshold */