diff options
author | Sebastien Hertz <shertz@google.com> | 2014-07-11 10:09:13 +0000 |
---|---|---|
committer | Sebastien Hertz <shertz@google.com> | 2014-07-11 10:09:13 +0000 |
commit | 9e82bd3f0ce9e5f5777bea2f752ff3e251d32f9f (patch) | |
tree | b2d65f4668793fab5652dfe41dcf13c913fee3a8 /runtime/mirror/reference.h | |
parent | d4415e8bd04c4a9367744ff0149597b4f37a0e0a (diff) | |
download | art-9e82bd3f0ce9e5f5777bea2f752ff3e251d32f9f.tar.gz art-9e82bd3f0ce9e5f5777bea2f752ff3e251d32f9f.tar.bz2 art-9e82bd3f0ce9e5f5777bea2f752ff3e251d32f9f.zip |
Revert "Revert "Revert "Add intrinsic for Reference.get()"""
This reverts commit d4415e8bd04c4a9367744ff0149597b4f37a0e0a.
Change-Id: I34553ccbdcfea35c7742d21be2a74dc7085ab2a0
Diffstat (limited to 'runtime/mirror/reference.h')
-rw-r--r-- | runtime/mirror/reference.h | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/runtime/mirror/reference.h b/runtime/mirror/reference.h index 15e0145baf..9c9d87be01 100644 --- a/runtime/mirror/reference.h +++ b/runtime/mirror/reference.h @@ -17,10 +17,7 @@ #ifndef ART_RUNTIME_MIRROR_REFERENCE_H_ #define ART_RUNTIME_MIRROR_REFERENCE_H_ -#include "class.h" #include "object.h" -#include "object_callbacks.h" -#include "thread.h" namespace art { @@ -32,11 +29,9 @@ class ReferenceQueue; } // namespace gc struct ReferenceOffsets; -struct ReferenceClassOffsets; struct FinalizerReferenceOffsets; namespace mirror { -class ReferenceClass; // C++ mirror of java.lang.ref.Reference class MANAGED Reference : public Object { @@ -85,15 +80,6 @@ class MANAGED Reference : public Object { bool IsEnqueuable() SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); - static ReferenceClass* GetJavaLangRefReference() SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) { - CHECK(java_lang_ref_Reference_ != nullptr); - return ReadBarrier::BarrierForRoot<mirror::ReferenceClass, kWithReadBarrier>( - &java_lang_ref_Reference_); - } - static void SetClass(ReferenceClass* klass); - static void ResetClass(void); - static void VisitRoots(RootCallback* callback, void* arg); - private: // Note: This avoids a read barrier, it should only be used by the GC. HeapReference<Object>* GetReferentReferenceAddr() SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) { @@ -106,46 +92,12 @@ class MANAGED Reference : public Object { HeapReference<Reference> queue_next_; // Note this is Java volatile: HeapReference<Object> referent_; // Note this is Java volatile: - static ReferenceClass* java_lang_ref_Reference_; - friend struct art::ReferenceOffsets; // for verifying offset information friend class gc::ReferenceProcessor; friend class gc::ReferenceQueue; DISALLOW_IMPLICIT_CONSTRUCTORS(Reference); }; -// Tightly coupled with the ReferenceProcessor to provide switch for slow/fast path. Consistency -// is maintained by ReferenceProcessor. -class MANAGED ReferenceClass : public Class { - public: - static MemberOffset DisableIntrinsicOffset() { - return OFFSET_OF_OBJECT_MEMBER(ReferenceClass, disable_intrinsic_); - } - static MemberOffset SlowPathEnabledOffset() { - return OFFSET_OF_OBJECT_MEMBER(ReferenceClass, slow_path_enabled_); - } - - void Init() { - disable_intrinsic_ = false; - slow_path_enabled_ = false; - } - - bool GetSlowPathEnabled() const { - return slow_path_enabled_; - } - void SetSlowPathEnabled(bool enabled) { - slow_path_enabled_ = enabled; - } - - private: - int32_t disable_intrinsic_; - int32_t slow_path_enabled_; - // allows runtime to safely enable/disable intrinsics fast path for benchmarking - - friend struct art::ReferenceClassOffsets; // for verifying offset information - DISALLOW_IMPLICIT_CONSTRUCTORS(ReferenceClass); -}; - // C++ mirror of java.lang.ref.FinalizerReference class MANAGED FinalizerReference : public Reference { public: |