summaryrefslogtreecommitdiffstats
path: root/runtime/mirror/reference.h
diff options
context:
space:
mode:
authorSebastien Hertz <shertz@google.com>2014-07-11 10:09:13 +0000
committerSebastien Hertz <shertz@google.com>2014-07-11 10:09:13 +0000
commit9e82bd3f0ce9e5f5777bea2f752ff3e251d32f9f (patch)
treeb2d65f4668793fab5652dfe41dcf13c913fee3a8 /runtime/mirror/reference.h
parentd4415e8bd04c4a9367744ff0149597b4f37a0e0a (diff)
downloadart-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.h48
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: