Merge "Fix shutdown when the current thread has been manually detached." into ics-mr1-plus-art
diff --git a/src/compiler_llvm/runtime_support_llvm.cc b/src/compiler_llvm/runtime_support_llvm.cc
index 917b57e..59b8efb 100644
--- a/src/compiler_llvm/runtime_support_llvm.cc
+++ b/src/compiler_llvm/runtime_support_llvm.cc
@@ -419,7 +419,7 @@
}
//----------------------------------------------------------------------------
-// RTTI
+// Type checking, in the nature of casting
//----------------------------------------------------------------------------
int32_t art_is_assignable_from_code(const Class* dest_type, const Class* src_type) {
@@ -429,7 +429,7 @@
}
void art_check_cast_from_code(const Class* dest_type, const Class* src_type) {
- DCHECK(dest_type->IsClass()) << PrettyClass(dest_type);
+DCHECK(dest_type->IsClass()) << PrettyClass(dest_type);
DCHECK(src_type->IsClass()) << PrettyClass(src_type);
if (UNLIKELY(!dest_type->IsAssignableFrom(src_type))) {
Thread::Current()->ThrowNewExceptionF("Ljava/lang/ClassCastException;",
diff --git a/src/object.cc b/src/object.cc
index ad0f6b9..2cf8a6c 100644
--- a/src/object.cc
+++ b/src/object.cc
@@ -559,8 +559,10 @@
void Method::Invoke(Thread* self, Object* receiver, JValue* args, JValue* result) const {
// Push a transition back into managed code onto the linked list in thread.
CHECK_EQ(Thread::kRunnable, self->GetState());
+#if !defined(ART_USE_LLVM_COMPILER)
NativeToManagedRecord record;
self->PushNativeToManagedRecord(&record);
+#endif
// Call the invoke stub associated with the method.
// Pass everything as arguments.
@@ -588,8 +590,10 @@
}
}
+#if !defined(ART_USE_LLVM_COMPILER)
// Pop transition.
self->PopNativeToManagedRecord(record);
+#endif
}
bool Method::IsRegistered() const {