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/thread.cc b/runtime/thread.cc
index a50fa00..3a70613 100644
--- a/runtime/thread.cc
+++ b/runtime/thread.cc
@@ -1203,9 +1203,11 @@
     if (LIKELY(SirtContains(obj))) {
       // Read from SIRT.
       result = reinterpret_cast<StackReference<mirror::Object>*>(obj)->AsMirrorPtr();
+      VerifyObject(result);
     } else if (Runtime::Current()->GetJavaVM()->work_around_app_jni_bugs) {
       // Assume an invalid local reference is actually a direct pointer.
       result = reinterpret_cast<mirror::Object*>(obj);
+      VerifyObject(result);
     } else {
       result = kInvalidIndirectRefObject;
     }
@@ -1225,10 +1227,6 @@
 
   if (UNLIKELY(result == nullptr)) {
     JniAbortF(nullptr, "use of deleted %s %p", ToStr<IndirectRefKind>(kind).c_str(), obj);
-  } else {
-    if (result != kInvalidIndirectRefObject) {
-      VerifyObject(result);
-    }
   }
   return result;
 }