604 layout_helper_is_typeArray(layout_helper()), |
604 layout_helper_is_typeArray(layout_helper()), |
605 oop_is_typeArray_slow()); } |
605 oop_is_typeArray_slow()); } |
606 #undef assert_same_query |
606 #undef assert_same_query |
607 |
607 |
608 // Unless overridden, oop is parsable if it has a klass pointer. |
608 // Unless overridden, oop is parsable if it has a klass pointer. |
|
609 // Parsability of an object is object specific. |
609 virtual bool oop_is_parsable(oop obj) const { return true; } |
610 virtual bool oop_is_parsable(oop obj) const { return true; } |
|
611 |
|
612 // Unless overridden, oop is safe for concurrent GC processing |
|
613 // after its allocation is complete. The exception to |
|
614 // this is the case where objects are changed after allocation. |
|
615 // Class redefinition is one of the known exceptions. During |
|
616 // class redefinition, an allocated class can changed in order |
|
617 // order to create a merged class (the combiniation of the |
|
618 // old class definition that has to be perserved and the new class |
|
619 // definition which is being created. |
|
620 virtual bool oop_is_conc_safe(oop obj) const { return true; } |
610 |
621 |
611 // Access flags |
622 // Access flags |
612 AccessFlags access_flags() const { return _access_flags; } |
623 AccessFlags access_flags() const { return _access_flags; } |
613 void set_access_flags(AccessFlags flags) { _access_flags = flags; } |
624 void set_access_flags(AccessFlags flags) { _access_flags = flags; } |
614 |
625 |