summaryrefslogtreecommitdiff
path: root/boehm-gc/misc.c
diff options
context:
space:
mode:
authorbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>2006-01-25 03:03:14 +0000
committerbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>2006-01-25 03:03:14 +0000
commit8e86a8789d7a82b6f389c7c9052ba250933fafcb (patch)
tree575ef0143266ff2f57b09fe0143e9a412b1fb27f /boehm-gc/misc.c
parent81aeb57750e78fcb33d69a741e75754851058883 (diff)
downloadgcc-8e86a8789d7a82b6f389c7c9052ba250933fafcb.tar.gz
Import Boehm GC version 6.6.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110204 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'boehm-gc/misc.c')
-rw-r--r--boehm-gc/misc.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/boehm-gc/misc.c b/boehm-gc/misc.c
index 2b69a00055a..89f05ba1dc9 100644
--- a/boehm-gc/misc.c
+++ b/boehm-gc/misc.c
@@ -246,7 +246,7 @@ void *arg2;
byte_sz = WORDS_TO_BYTES(word_sz);
if (GC_all_interior_pointers) {
/* We need one extra byte; don't fill in GC_size_map[byte_sz] */
- byte_sz--;
+ byte_sz -= EXTRA_BYTES;
}
for (j = low_limit; j <= byte_sz; j++) GC_size_map[j] = word_sz;
@@ -805,7 +805,10 @@ void GC_init_inner()
void GC_enable_incremental GC_PROTO(())
{
-# if !defined(SMALL_CONFIG)
+# if !defined(SMALL_CONFIG) && !defined(KEEP_BACK_PTRS)
+ /* If we are keeping back pointers, the GC itself dirties all */
+ /* pages on which objects have been marked, making */
+ /* incremental GC pointless. */
if (!GC_find_leak) {
DCL_LOCK_STATE;