Merge "Check IsStatic() on special accessor fields."
diff --git a/runtime/thread.cc b/runtime/thread.cc
index 6c3e7ee..9797a48 100644
--- a/runtime/thread.cc
+++ b/runtime/thread.cc
@@ -1145,14 +1145,13 @@
return managed_stack_.ShadowFramesContain(sirt_entry);
}
-void Thread::SirtVisitRoots(RootCallback* visitor, void* arg) {
- uint32_t tid = GetTid();
+void Thread::SirtVisitRoots(RootCallback* visitor, void* arg, uint32_t thread_id) {
for (StackIndirectReferenceTable* cur = top_sirt_; cur; cur = cur->GetLink()) {
size_t num_refs = cur->NumberOfReferences();
for (size_t j = 0; j < num_refs; ++j) {
mirror::Object* object = cur->GetReference(j);
if (object != nullptr) {
- mirror::Object* new_obj = visitor(object, arg, tid, kRootNativeStack);
+ mirror::Object* new_obj = visitor(object, arg, thread_id, kRootNativeStack);
DCHECK(new_obj != nullptr);
if (new_obj != object) {
cur->SetReference(j, new_obj);
@@ -1998,7 +1997,7 @@
}
jni_env_->locals.VisitRoots(visitor, arg, thread_id, kRootJNILocal);
jni_env_->monitors.VisitRoots(visitor, arg, thread_id, kRootJNIMonitor);
- SirtVisitRoots(visitor, arg);
+ SirtVisitRoots(visitor, arg, thread_id);
// Visit roots on this thread's stack
Context* context = GetLongJumpContext();
RootCallbackVisitor visitorToCallback(visitor, arg, thread_id);
@@ -2025,7 +2024,7 @@
void Thread::VerifyStackImpl() {
UniquePtr<Context> context(Context::Create());
- RootCallbackVisitor visitorToCallback(VerifyRoot, Runtime::Current()->GetHeap(), GetTid());
+ RootCallbackVisitor visitorToCallback(VerifyRoot, Runtime::Current()->GetHeap(), GetThreadId());
ReferenceMapVisitor<RootCallbackVisitor> mapper(this, context.get(), visitorToCallback);
mapper.WalkStack();
}
diff --git a/runtime/thread.h b/runtime/thread.h
index daffc92..a3a77bb 100644
--- a/runtime/thread.h
+++ b/runtime/thread.h
@@ -503,7 +503,7 @@
// Is the given obj in this thread's stack indirect reference table?
bool SirtContains(jobject obj) const;
- void SirtVisitRoots(RootCallback* visitor, void* arg)
+ void SirtVisitRoots(RootCallback* visitor, void* arg, uint32_t thread_id)
SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
void PushSirt(StackIndirectReferenceTable* sirt) {