diff src/share/vm/gc_interface/collectedHeap.cpp @ 3910:d968f546734e

Merge
author iveresov
date Wed, 07 Sep 2011 11:52:00 -0700
parents 7f776886a215 baf763f388e6
children f08d439fab8c
line wrap: on
line diff
--- a/src/share/vm/gc_interface/collectedHeap.cpp	Fri Sep 02 21:33:57 2011 -0700
+++ b/src/share/vm/gc_interface/collectedHeap.cpp	Wed Sep 07 11:52:00 2011 -0700
@@ -157,8 +157,14 @@
     // ..and clear it.
     Copy::zero_to_words(obj, new_tlab_size);
   } else {
-    // ...and clear just the allocated object.
-    Copy::zero_to_words(obj, size);
+    // ...and zap just allocated object.
+#ifdef ASSERT
+    // Skip mangling the space corresponding to the object header to
+    // ensure that the returned space is not considered parsable by
+    // any concurrent GC thread.
+    size_t hdr_size = oopDesc::header_size();
+    Copy::fill_to_words(obj + hdr_size, new_tlab_size - hdr_size, badHeapWordVal);
+#endif // ASSERT
   }
   thread->tlab().fill(obj, obj + size, new_tlab_size);
   return obj;