From 3ab69abdda9f17511812fc80618cbc9d2e2ec03b Mon Sep 17 00:00:00 2001 From: Mark Probst Date: Mon, 7 Dec 2009 22:03:54 +0000 Subject: [PATCH] 2009-12-07 Mark Probst * sgen-gc.c (mono_gc_wbarrier_nostore): Skip the remset if the reference is not in the nursery. svn path=/trunk/mono/; revision=147810 --- mono/metadata/ChangeLog | 5 +++++ mono/metadata/sgen-gc.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/mono/metadata/ChangeLog b/mono/metadata/ChangeLog index 18010066ef7..6c1d6b80b37 100644 --- a/mono/metadata/ChangeLog +++ b/mono/metadata/ChangeLog @@ -1,3 +1,8 @@ +2009-12-07 Mark Probst + + * sgen-gc.c (mono_gc_wbarrier_nostore): Skip the remset if the + reference is not in the nursery. + 2009-12-07 Rodrigo Kumpera * class.c (mono_class_from_typeref): Bounds check idx against the diff --git a/mono/metadata/sgen-gc.c b/mono/metadata/sgen-gc.c index 99c3fdc6aa2..0574aa99fc0 100644 --- a/mono/metadata/sgen-gc.c +++ b/mono/metadata/sgen-gc.c @@ -6187,7 +6187,7 @@ mono_gc_wbarrier_generic_nostore (gpointer ptr) #endif LOCK_GC; - if (ptr_in_nursery (ptr) || ptr_on_stack (ptr)) { + if (ptr_in_nursery (ptr) || ptr_on_stack (ptr) || !ptr_in_nursery (*(gpointer*)ptr)) { DEBUG (8, fprintf (gc_debug_file, "Skipping remset at %p\n", ptr)); UNLOCK_GC; return; -- 2.25.1