hotspot/src/share/vm/oops/klass.hpp
changeset 1894 5c343868d071
parent 1388 3677f5f3d66b
child 2131 98f9cef66a34
child 2105 347008ce7984
--- a/hotspot/src/share/vm/oops/klass.hpp	Tue Jan 06 07:05:05 2009 -0800
+++ b/hotspot/src/share/vm/oops/klass.hpp	Sun Jan 11 16:58:24 2009 -0800
@@ -606,8 +606,19 @@
   #undef assert_same_query
 
   // Unless overridden, oop is parsable if it has a klass pointer.
+  // Parsability of an object is object specific.
   virtual bool oop_is_parsable(oop obj) const { return true; }
 
+  // Unless overridden, oop is safe for concurrent GC processing
+  // after its allocation is complete.  The exception to
+  // this is the case where objects are changed after allocation.
+  // Class redefinition is one of the known exceptions. During
+  // class redefinition, an allocated class can changed in order
+  // order to create a merged class (the combiniation of the
+  // old class definition that has to be perserved and the new class
+  // definition which is being created.
+  virtual bool oop_is_conc_safe(oop obj) const { return true; }
+
   // Access flags
   AccessFlags access_flags() const         { return _access_flags;  }
   void set_access_flags(AccessFlags flags) { _access_flags = flags; }