summaryrefslogtreecommitdiff
path: root/runtime/runtime_callbacks_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/runtime_callbacks_test.cc')
-rw-r--r--runtime/runtime_callbacks_test.cc56
1 files changed, 28 insertions, 28 deletions
diff --git a/runtime/runtime_callbacks_test.cc b/runtime/runtime_callbacks_test.cc
index 302d57e74b..c38bd6156e 100644
--- a/runtime/runtime_callbacks_test.cc
+++ b/runtime/runtime_callbacks_test.cc
@@ -35,7 +35,7 @@
#include "dex/class_reference.h"
#include "handle.h"
#include "handle_scope-inl.h"
-#include "mirror/class-inl.h"
+#include "mirror/class-alloc-inl.h"
#include "mirror/class_loader.h"
#include "monitor-inl.h"
#include "nativehelper/scoped_local_ref.h"
@@ -164,40 +164,40 @@ TEST_F(ThreadLifecycleCallbackRuntimeCallbacksTest, ThreadLifecycleCallbackJava)
cb_.state = CallbackState::kBase; // Ignore main thread attach.
- {
- ScopedObjectAccess soa(self);
- MakeExecutable(WellKnownClasses::ToClass(WellKnownClasses::java_lang_Thread));
- }
-
- JNIEnv* env = self->GetJniEnv();
+ ScopedObjectAccess soa(self);
+ MakeExecutable(WellKnownClasses::java_lang_Thread_init->GetDeclaringClass());
- ScopedLocalRef<jobject> thread_name(env,
- env->NewStringUTF("ThreadLifecycleCallback test thread"));
- ASSERT_TRUE(thread_name.get() != nullptr);
+ StackHandleScope<2u> hs(self);
+ Handle<mirror::String> thread_name = hs.NewHandle(
+ mirror::String::AllocFromModifiedUtf8(self, "ThreadLifecycleCallback test thread"));
+ ASSERT_TRUE(thread_name != nullptr);
- ScopedLocalRef<jobject> thread(env, env->AllocObject(WellKnownClasses::java_lang_Thread));
- ASSERT_TRUE(thread.get() != nullptr);
+ DCHECK(WellKnownClasses::java_lang_Thread_init->GetDeclaringClass()->IsInitialized());
+ Handle<mirror::Object> thread = hs.NewHandle(
+ WellKnownClasses::java_lang_Thread_init->GetDeclaringClass()->AllocObject(self));
+ ASSERT_TRUE(thread != nullptr);
- env->CallNonvirtualVoidMethod(thread.get(),
- WellKnownClasses::java_lang_Thread,
- WellKnownClasses::java_lang_Thread_init,
- runtime_->GetMainThreadGroup(),
- thread_name.get(),
- kMinThreadPriority,
- JNI_FALSE);
- ASSERT_FALSE(env->ExceptionCheck());
+ WellKnownClasses::java_lang_Thread_init->InvokeInstance<'V', 'L', 'L', 'I', 'Z'>(
+ self,
+ thread.Get(),
+ soa.Decode<mirror::Object>(runtime_->GetMainThreadGroup()),
+ thread_name.Get(),
+ kMinThreadPriority,
+ /*daemon=*/ 0u);
+ ASSERT_FALSE(self->IsExceptionPending());
- jmethodID start_id = env->GetMethodID(WellKnownClasses::java_lang_Thread, "start", "()V");
- ASSERT_TRUE(start_id != nullptr);
+ ArtMethod* start_method =
+ thread->GetClass()->FindClassMethod("start", "()V", kRuntimePointerSize);
+ ASSERT_TRUE(start_method != nullptr);
- env->CallVoidMethod(thread.get(), start_id);
- ASSERT_FALSE(env->ExceptionCheck());
+ start_method->InvokeVirtual<'V'>(self, thread.Get());
+ ASSERT_FALSE(self->IsExceptionPending());
- jmethodID join_id = env->GetMethodID(WellKnownClasses::java_lang_Thread, "join", "()V");
- ASSERT_TRUE(join_id != nullptr);
+ ArtMethod* join_method = thread->GetClass()->FindClassMethod("join", "()V", kRuntimePointerSize);
+ ASSERT_TRUE(join_method != nullptr);
- env->CallVoidMethod(thread.get(), join_id);
- ASSERT_FALSE(env->ExceptionCheck());
+ join_method->InvokeFinal<'V'>(self, thread.Get());
+ ASSERT_FALSE(self->IsExceptionPending());
EXPECT_EQ(cb_.state, CallbackState::kDied);
}