--- 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; }