Add more VerifyObject calls.
Added verify object calls to SirtRef, IndirectReferenceTable,
ReferenceTable.
Removed un-needed verify object in ScopedObjectAccess / DecodeJObject
since object sources are handled.
Bug: 12934910
Change-Id: I55a46a8ea61fed2a77526eda27fd2cce97a9b125
diff --git a/runtime/sirt_ref.h b/runtime/sirt_ref.h
index 38e652a..2226e17 100644
--- a/runtime/sirt_ref.h
+++ b/runtime/sirt_ref.h
@@ -28,13 +28,8 @@
template<class T>
class SirtRef {
public:
- SirtRef(Thread* self, T* object) : self_(self), sirt_(object) {
- self_->PushSirt(&sirt_);
- }
- ~SirtRef() {
- StackIndirectReferenceTable* top_sirt = self_->PopSirt();
- DCHECK_EQ(top_sirt, &sirt_);
- }
+ SirtRef(Thread* self, T* object);
+ ~SirtRef();
T& operator*() const SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) {
return *get();
@@ -47,11 +42,7 @@
}
// Returns the old reference.
- T* reset(T* object = nullptr) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) {
- T* old_ref = get();
- sirt_.SetReference(0, object);
- return old_ref;
- }
+ T* reset(T* object = nullptr) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
private:
Thread* const self_;