Lines Matching defs:method
52 #include "mirror/method.h"
344 auto* method = arr->GetElementPtrSize<ArtMethod*>(i, target_ptr_size_);
345 if (method != nullptr && !method->IsRuntimeMethod()) {
346 auto* klass = method->GetDeclaringClass();
642 auto* method = resolved_methods->GetElementPtrSize<ArtMethod*>(i, target_ptr_size_);
643 if (method != nullptr) {
644 auto* declaring_class = method->GetDeclaringClass();
646 // declaring class which is an image class. Set it to the resolution method to be safe and
648 if (method->IsMiranda() || !IsImageClass(declaring_class)) {
870 void ImageWriter::AssignMethodOffset(ArtMethod* method, Bin bin) {
871 auto it = native_object_reloc_.find(method);
872 CHECK(it == native_object_reloc_.end()) << "Method " << method << " already assigned "
873 << PrettyMethod(method);
874 native_object_reloc_.emplace(method, NativeObjectReloc { bin_slot_sizes_[bin], bin });
985 // Add method section.
1021 ArtMethod* ImageWriter::GetImageMethodAddress(ArtMethod* method) {
1022 auto it = native_object_reloc_.find(method);
1023 CHECK(it != native_object_reloc_.end()) << PrettyMethod(method) << " @ " << method;
1077 // Fixup the image method roots.
1143 auto* method = reinterpret_cast<ArtMethod*>(elem);
1144 LOG(FATAL) << "No relocation entry for ArtMethod " << PrettyMethod(method) << " @ "
1145 << method << " idx=" << i << "/" << num_elements << " with declaring class "
1146 << PrettyClass(method->GetDeclaringClass());
1248 // Update direct / virtual method arrays.
1309 if (klass == mirror::Method::StaticClass() || klass == mirror::Constructor::StaticClass()) {
1325 const uint8_t* ImageWriter::GetQuickCode(ArtMethod* method, bool* quick_is_interpreted) {
1326 DCHECK(!method->IsResolutionMethod() && !method->IsImtConflictMethod() &&
1327 !method->IsImtUnimplementedMethod() && !method->IsAbstract()) << PrettyMethod(method);
1334 method->GetEntryPointFromQuickCompiledCodePtrSize(target_ptr_size_));
1337 if (quick_code != nullptr && (!method->IsStatic() || method->IsConstructor() ||
1338 method->GetDeclaringClass()->IsInitialized())) {
1339 // We have code for a non-static or initialized method, just use the code.
1341 } else if (quick_code == nullptr && method->IsNative() &&
1342 (!method->IsStatic() || method->GetDeclaringClass()->IsInitialized())) {
1343 // Non-static or initialized native method missing compiled code, use generic JNI version.
1346 } else if (quick_code == nullptr && !method->IsNative()) {
1347 // We don't have code at all for a non-native method, use the interpreter.
1352 CHECK(!method->GetDeclaringClass()->IsInitialized());
1353 // We have code for a static method, but need to go through the resolution stub for class
1361 const uint8_t* ImageWriter::GetQuickEntryPoint(ArtMethod* method) {
1363 // The resolution method has a special trampoline to call.
1365 if (UNLIKELY(method == runtime->GetResolutionMethod())) {
1367 } else if (UNLIKELY(method == runtime->GetImtConflictMethod() ||
1368 method == runtime->GetImtUnimplementedMethod())) {
1374 if (UNLIKELY(method->IsAbstract())) {
1378 return GetQuickCode(method, &quick_is_interpreted);
1393 // The resolution method has a special trampoline to call.
1411 CHECK(found_one) << "Expected to find callee save method but got " << PrettyMethod(orig);
1430 // The native method's pointer is set to a stub to lookup via dlsym.