Lines Matching refs:soa

97   void BuildArgArrayFromVarArgs(const ScopedObjectAccessAlreadyRunnable& soa,  in BuildArgArrayFromVarArgs()  argument
117 Append(soa.Decode<mirror::Object*>(va_arg(ap, jobject))); in BuildArgArrayFromVarArgs()
133 void BuildArgArrayFromJValues(const ScopedObjectAccessAlreadyRunnable& soa, in BuildArgArrayFromJValues() argument
159 Append(soa.Decode<mirror::Object*>(args[args_offset].l)); in BuildArgArrayFromJValues()
426 static void InvokeWithArgArray(const ScopedObjectAccessAlreadyRunnable& soa, in InvokeWithArgArray() argument
431 if (UNLIKELY(soa.Env()->check_jni)) { in InvokeWithArgArray()
432 CheckMethodArguments(soa.Vm(), method->GetInterfaceMethodIfProxy(sizeof(void*)), args); in InvokeWithArgArray()
434 method->Invoke(soa.Self(), args, arg_array->GetNumBytes(), result, shorty); in InvokeWithArgArray()
437 JValue InvokeWithVarArgs(const ScopedObjectAccessAlreadyRunnable& soa, jobject obj, jmethodID mid, in InvokeWithVarArgs() argument
443 if (UNLIKELY(__builtin_frame_address(0) < soa.Self()->GetStackEnd())) { in InvokeWithVarArgs()
444 ThrowStackOverflowError(soa.Self()); in InvokeWithVarArgs()
448 ArtMethod* method = soa.DecodeMethod(mid); in InvokeWithVarArgs()
452 method = soa.DecodeMethod(WellKnownClasses::StringInitToStringFactoryMethodID(mid)); in InvokeWithVarArgs()
454 mirror::Object* receiver = method->IsStatic() ? nullptr : soa.Decode<mirror::Object*>(obj); in InvokeWithVarArgs()
459 arg_array.BuildArgArrayFromVarArgs(soa, receiver, args); in InvokeWithVarArgs()
460 InvokeWithArgArray(soa, method, &arg_array, &result, shorty); in InvokeWithVarArgs()
463 UpdateReference(soa.Self(), obj, result.GetL()); in InvokeWithVarArgs()
468 JValue InvokeWithJValues(const ScopedObjectAccessAlreadyRunnable& soa, jobject obj, jmethodID mid, in InvokeWithJValues() argument
473 if (UNLIKELY(__builtin_frame_address(0) < soa.Self()->GetStackEnd())) { in InvokeWithJValues()
474 ThrowStackOverflowError(soa.Self()); in InvokeWithJValues()
478 ArtMethod* method = soa.DecodeMethod(mid); in InvokeWithJValues()
482 method = soa.DecodeMethod(WellKnownClasses::StringInitToStringFactoryMethodID(mid)); in InvokeWithJValues()
484 mirror::Object* receiver = method->IsStatic() ? nullptr : soa.Decode<mirror::Object*>(obj); in InvokeWithJValues()
489 arg_array.BuildArgArrayFromJValues(soa, receiver, args); in InvokeWithJValues()
490 InvokeWithArgArray(soa, method, &arg_array, &result, shorty); in InvokeWithJValues()
493 UpdateReference(soa.Self(), obj, result.GetL()); in InvokeWithJValues()
498 JValue InvokeVirtualOrInterfaceWithJValues(const ScopedObjectAccessAlreadyRunnable& soa, in InvokeVirtualOrInterfaceWithJValues() argument
503 if (UNLIKELY(__builtin_frame_address(0) < soa.Self()->GetStackEnd())) { in InvokeVirtualOrInterfaceWithJValues()
504 ThrowStackOverflowError(soa.Self()); in InvokeVirtualOrInterfaceWithJValues()
508 mirror::Object* receiver = soa.Decode<mirror::Object*>(obj); in InvokeVirtualOrInterfaceWithJValues()
509 ArtMethod* method = FindVirtualMethod(receiver, soa.DecodeMethod(mid)); in InvokeVirtualOrInterfaceWithJValues()
513 method = soa.DecodeMethod(WellKnownClasses::StringInitToStringFactoryMethodID(mid)); in InvokeVirtualOrInterfaceWithJValues()
520 arg_array.BuildArgArrayFromJValues(soa, receiver, args); in InvokeVirtualOrInterfaceWithJValues()
521 InvokeWithArgArray(soa, method, &arg_array, &result, shorty); in InvokeVirtualOrInterfaceWithJValues()
524 UpdateReference(soa.Self(), obj, result.GetL()); in InvokeVirtualOrInterfaceWithJValues()
529 JValue InvokeVirtualOrInterfaceWithVarArgs(const ScopedObjectAccessAlreadyRunnable& soa, in InvokeVirtualOrInterfaceWithVarArgs() argument
534 if (UNLIKELY(__builtin_frame_address(0) < soa.Self()->GetStackEnd())) { in InvokeVirtualOrInterfaceWithVarArgs()
535 ThrowStackOverflowError(soa.Self()); in InvokeVirtualOrInterfaceWithVarArgs()
539 mirror::Object* receiver = soa.Decode<mirror::Object*>(obj); in InvokeVirtualOrInterfaceWithVarArgs()
540 ArtMethod* method = FindVirtualMethod(receiver, soa.DecodeMethod(mid)); in InvokeVirtualOrInterfaceWithVarArgs()
544 method = soa.DecodeMethod(WellKnownClasses::StringInitToStringFactoryMethodID(mid)); in InvokeVirtualOrInterfaceWithVarArgs()
551 arg_array.BuildArgArrayFromVarArgs(soa, receiver, args); in InvokeVirtualOrInterfaceWithVarArgs()
552 InvokeWithArgArray(soa, method, &arg_array, &result, shorty); in InvokeVirtualOrInterfaceWithVarArgs()
555 UpdateReference(soa.Self(), obj, result.GetL()); in InvokeVirtualOrInterfaceWithVarArgs()
560 jobject InvokeMethod(const ScopedObjectAccessAlreadyRunnable& soa, jobject javaMethod, in InvokeMethod() argument
566 soa.Self()->GetStackEndForInterpreter(true))) { in InvokeMethod()
567 ThrowStackOverflowError(soa.Self()); in InvokeMethod()
571 auto* abstract_method = soa.Decode<mirror::AbstractMethod*>(javaMethod); in InvokeMethod()
577 StackHandleScope<1> hs(soa.Self()); in InvokeMethod()
579 if (!Runtime::Current()->GetClassLinker()->EnsureInitialized(soa.Self(), h_class, true, true)) { in InvokeMethod()
589 jmethodID mid = soa.EncodeMethod(m); in InvokeMethod()
590 m = soa.DecodeMethod(WellKnownClasses::StringInitToStringFactoryMethodID(mid)); in InvokeMethod()
594 receiver = soa.Decode<mirror::Object*>(javaReceiver); in InvokeMethod()
605 auto* objects = soa.Decode<mirror::ObjectArray<mirror::Object>*>(javaArgs); in InvokeMethod()
618 if (!accessible && !VerifyAccess(soa.Self(), receiver, declaring_class, m->GetAccessFlags(), in InvokeMethod()
636 CHECK(soa.Self()->IsExceptionPending()); in InvokeMethod()
640 InvokeWithArgArray(soa, m, &arg_array, &result, shorty); in InvokeMethod()
643 if (soa.Self()->IsExceptionPending()) { in InvokeMethod()
645 jthrowable th = soa.Env()->ExceptionOccurred(); in InvokeMethod()
646 soa.Self()->ClearException(); in InvokeMethod()
647 jclass exception_class = soa.Env()->FindClass("java/lang/reflect/InvocationTargetException"); in InvokeMethod()
649 soa.Self()->AssertPendingOOMException(); in InvokeMethod()
652 jmethodID mid = soa.Env()->GetMethodID(exception_class, "<init>", "(Ljava/lang/Throwable;)V"); in InvokeMethod()
654 jobject exception_instance = soa.Env()->NewObject(exception_class, mid, th); in InvokeMethod()
656 soa.Self()->AssertPendingOOMException(); in InvokeMethod()
659 soa.Env()->Throw(reinterpret_cast<jthrowable>(exception_instance)); in InvokeMethod()
664 return soa.AddLocalReference<jobject>(BoxPrimitive(Primitive::GetType(shorty[0]), result)); in InvokeMethod()
716 ScopedObjectAccessUnchecked soa(Thread::Current()); in BoxPrimitive() local
717 DCHECK_EQ(soa.Self()->GetState(), kRunnable); in BoxPrimitive()
727 soa.DecodeMethod(m)->Invoke(soa.Self(), arg_array.GetArray(), arg_array.GetNumBytes(), in BoxPrimitive()