summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShih-wei Liao <sliao@google.com>2012-04-02 19:22:28 -0700
committerShih-wei Liao <sliao@google.com>2012-04-02 23:36:14 -0700
commit9e0e54daee9d171c7f54f1b739bb9beca4cb631b (patch)
tree22cda1dd4541cf79ad7e818377a45f23478ee776
parentc5f40bf576e2acc148366b84a22842f321290aab (diff)
downloadart-9e0e54daee9d171c7f54f1b739bb9beca4cb631b.zip
art-9e0e54daee9d171c7f54f1b739bb9beca4cb631b.tar.gz
art-9e0e54daee9d171c7f54f1b739bb9beca4cb631b.tar.bz2
Should not call PushNativeToManagedRecord.
Change-Id: Ib1e7e7c6cc6953575e3e1d4d02222837e9460be9
-rw-r--r--src/compiler_llvm/runtime_support_llvm.cc4
-rw-r--r--src/object.cc4
2 files changed, 6 insertions, 2 deletions
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 @@ Object* art_decode_jobject_in_thread(Thread* thread, jobject obj) {
}
//----------------------------------------------------------------------------
-// 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 @@ int32_t art_is_assignable_from_code(const Class* dest_type, const Class* src_typ
}
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 @@ uint32_t Method::FindCatchBlock(Class* exception_type, uint32_t dex_pc) const {
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 @@ void Method::Invoke(Thread* self, Object* receiver, JValue* args, JValue* result
}
}
+#if !defined(ART_USE_LLVM_COMPILER)
// Pop transition.
self->PopNativeToManagedRecord(record);
+#endif
}
bool Method::IsRegistered() const {