diff options
Diffstat (limited to 'runtime/mirror/class.h')
-rw-r--r-- | runtime/mirror/class.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/runtime/mirror/class.h b/runtime/mirror/class.h index a8b8235ee3..f5c2614908 100644 --- a/runtime/mirror/class.h +++ b/runtime/mirror/class.h @@ -105,6 +105,10 @@ class MANAGED Class final : public Object { static void SetStatus(Handle<Class> h_this, ClassStatus new_status, Thread* self) REQUIRES_SHARED(Locks::mutator_lock_) REQUIRES(!Roles::uninterruptible_); + // Used for structural redefinition to directly set the class-status while + // holding a strong mutator-lock. + void SetStatusLocked(ClassStatus new_status) REQUIRES(Locks::mutator_lock_); + void SetStatusForPrimitiveOrArray(ClassStatus new_status) REQUIRES_SHARED(Locks::mutator_lock_); static constexpr MemberOffset StatusOffset() { @@ -617,6 +621,11 @@ class MANAGED Class final : public Object { // to themselves. Classes for primitive types may not assign to each other. ALWAYS_INLINE bool IsAssignableFrom(ObjPtr<Class> src) REQUIRES_SHARED(Locks::mutator_lock_); + // Checks if 'klass' is a redefined version of this. + bool IsObsoleteVersionOf(ObjPtr<Class> klass) REQUIRES_SHARED(Locks::mutator_lock_); + + ObjPtr<Class> GetObsoleteClass() REQUIRES_SHARED(Locks::mutator_lock_); + template<VerifyObjectFlags kVerifyFlags = kDefaultVerifyFlags, ReadBarrierOption kReadBarrierOption = kWithReadBarrier> ALWAYS_INLINE ObjPtr<Class> GetSuperClass() REQUIRES_SHARED(Locks::mutator_lock_); |