diff options
author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-11-01 23:15:51 +0000 |
---|---|---|
committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-11-01 23:15:51 +0000 |
commit | 9bc8642e1f366a35c305b9abe9e01bf934b584b9 (patch) | |
tree | 9c24ba1ebabff472b9caddbff07ef957dbf2c24c /boehm-gc/blacklst.c | |
parent | 79eaf784f16b0e8079d9dca062a0fc959d289d18 (diff) | |
download | gcc-9bc8642e1f366a35c305b9abe9e01bf934b584b9.tar.gz |
Merged GC 5.0alpha4 with local changes, plus:
* Makefile.in: Rebuilt.
* Makefile.am (gctest_LDADD): Added THREADLIB.
(TESTS): New macro.
* configure: Rebuilt.
* configure.in (INCLUDES): New subst.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30332 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'boehm-gc/blacklst.c')
-rw-r--r-- | boehm-gc/blacklst.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/boehm-gc/blacklst.c b/boehm-gc/blacklst.c index 44455e5ba47..e5a3a26a8cf 100644 --- a/boehm-gc/blacklst.c +++ b/boehm-gc/blacklst.c @@ -63,11 +63,16 @@ ptr_t p; void (*GC_print_heap_obj)(/* char * s, ptr_t p */) = GC_default_print_heap_obj_proc; -void GC_print_source_ptr(ptr_t p) +void GC_print_source_ptr(p) +ptr_t p; { ptr_t base = GC_base(p); if (0 == base) { - GC_err_printf0("in root set"); + if (0 == p) { + GC_err_printf0("in register"); + } else { + GC_err_printf0("in root set"); + } } else { GC_err_printf0("in object at "); (*GC_print_heap_obj)(base); @@ -140,6 +145,13 @@ void GC_promote_black_lists() if (GC_black_list_spacing < 3 * HBLKSIZE) { GC_black_list_spacing = 3 * HBLKSIZE; } + if (GC_black_list_spacing > MAXHINCR * HBLKSIZE) { + GC_black_list_spacing = MAXHINCR * HBLKSIZE; + /* Makes it easier to allocate really huge blocks, which otherwise */ + /* may have problems with nonuniform blacklist distributions. */ + /* This way we should always succeed immediately after growing the */ + /* heap. */ + } } void GC_unpromote_black_lists() |