diff options
Diffstat (limited to 'runtime/mirror/class.h')
-rw-r--r-- | runtime/mirror/class.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/runtime/mirror/class.h b/runtime/mirror/class.h index 960f49c5fc..6ed20ed02f 100644 --- a/runtime/mirror/class.h +++ b/runtime/mirror/class.h @@ -313,6 +313,17 @@ class MANAGED Class final : public Object { } } + bool IsObsoleteObject() REQUIRES_SHARED(Locks::mutator_lock_) { + return (GetAccessFlags() & kAccObsoleteObject) != 0; + } + + void SetObsoleteObject() REQUIRES_SHARED(Locks::mutator_lock_) { + uint32_t flags = GetField32(OFFSET_OF_OBJECT_MEMBER(Class, access_flags_)); + if ((flags & kAccObsoleteObject) == 0) { + SetAccessFlags(flags | kAccObsoleteObject); + } + } + template<VerifyObjectFlags kVerifyFlags = kDefaultVerifyFlags> bool IsTypeOfReferenceClass() REQUIRES_SHARED(Locks::mutator_lock_) { return (GetClassFlags<kVerifyFlags>() & kClassFlagReference) != 0; @@ -1110,6 +1121,15 @@ class MANAGED Class final : public Object { void VisitNativeRoots(Visitor& visitor, PointerSize pointer_size) REQUIRES_SHARED(Locks::mutator_lock_); + // Visit ArtMethods directly owned by this class. + template<ReadBarrierOption kReadBarrierOption = kWithReadBarrier, class Visitor> + void VisitMethods(Visitor visitor, PointerSize pointer_size) + REQUIRES_SHARED(Locks::mutator_lock_); + + // Visit ArtFields directly owned by this class. + template<ReadBarrierOption kReadBarrierOption = kWithReadBarrier, class Visitor> + void VisitFields(Visitor visitor) REQUIRES_SHARED(Locks::mutator_lock_); + // Get one of the primitive classes. static ObjPtr<mirror::Class> GetPrimitiveClass(ObjPtr<mirror::String> name) REQUIRES_SHARED(Locks::mutator_lock_); |