2004-09-27
2004-09-27 21:37:23 by Martin Stjernholm <mast@lysator.liu.se>
-
31a868fbc382494fb144e16c022f48ce97c21f0b
(16 lines)
(+12/-4)
[
Show
| Annotate
]
Branch: 7.9
Fixed --with-cleanup-on-exit to work without rtldebug.
Rev: src/array.h:1.64
Rev: src/dmalloc.h:1.53
Rev: src/gc.c:1.259
Rev: src/gc.h:1.116
Rev: src/main.c:1.210
Rev: src/mapping.h:1.58
Rev: src/multiset.h:1.37
Rev: src/object.h:1.87
Rev: src/pike_memory.c:1.156
Rev: src/program.h:1.210
Rev: src/stralloc.c:1.168
Rev: src/stralloc.h:1.82
2:
|| This file is part of Pike. For copyright information see COPYRIGHT.
|| Pike is distributed under GPL, LGPL and MPL. See the file COPYING
|| for more information.
- || $Id: gc.c,v 1.258 2004/09/22 18:08:13 mast Exp $
+ || $Id: gc.c,v 1.259 2004/09/27 21:37:22 mast Exp $
*/
#include "global.h"
1539: Inside #if defined(DO_PIKE_CLEANUP)
for(e=0;e<marker_hash_table_size;e++) {
struct marker *m;
for (m = marker_hash_table[e]; m; m = m->next) {
+ #ifdef PIKE_DEBUG
m->flags &= GC_CLEANUP_FREED;
- m->refs = m->weak_refs = m->xrefs = 0;
+ m->xrefs = 0;
m->saved_refs = -1;
-
+ #else
+ m->flags = 0;
+ #endif
+ m->refs = m->weak_refs = 0;
m->frame = 0;
}
}
1559: Inside #if defined(PIKE_DEBUG)
{
#ifdef PIKE_DEBUG
if (!gc_is_watching) {
+ #endif
+ #if defined (PIKE_DEBUG) || defined (DO_PIKE_CLEANUP)
/* The marker hash table is left around after a previous gc if
* gc_keep_markers is set. */
if (marker_hash_table) cleanup_markers();
if (!marker_hash_table)
- #endif
+
low_init_marker_hash(num_objects);
-
+ #endif
get_marker(rec_list.data); /* Used to simplify fencepost conditions. */
#ifdef PIKE_DEBUG
}
1595:
#endif
}
- #ifdef DO_PIKE_CLEANUP
+ #ifdef PIKE_DEBUG
void gc_check_zapped (void *a, TYPE_T type, const char *file, int line)
{
struct marker *m = find_marker (a);