Lines Matching refs:descriptor
133 static bool HasInitWithString(Thread* self, ClassLinker* class_linker, const char* descriptor) in HasInitWithString() argument
139 ObjPtr<mirror::Class> exception_class = class_linker->FindClass(self, descriptor, class_loader); in HasInitWithString()
176 const char* descriptor = obj->AsClass()->GetDescriptor(&temp); in HandleEarlierVerifyError() local
178 if (HasInitWithString(self, class_linker, descriptor)) { in HandleEarlierVerifyError()
179 self->ThrowNewException(descriptor, c->PrettyDescriptor().c_str()); in HandleEarlierVerifyError()
181 self->ThrowNewException(descriptor, nullptr); in HandleEarlierVerifyError()
373 void ClassLinker::CheckSystemClass(Thread* self, Handle<mirror::Class> c1, const char* descriptor) { in CheckSystemClass() argument
374 ObjPtr<mirror::Class> c2 = FindSystemClass(self, descriptor); in CheckSystemClass()
376 LOG(FATAL) << "Could not find class " << descriptor; in CheckSystemClass()
383 LOG(FATAL) << "InitWithoutImage: Class mismatch for " << descriptor in CheckSystemClass()
2299 const char* descriptor, in EnsureResolved() argument
2328 klass = LookupClass(self, descriptor, h_class.Get()->GetClassLoader()); in EnsureResolved()
2378 ClassPathEntry FindInClassPath(const char* descriptor, in FindInClassPath() argument
2381 const DexFile::ClassDef* dex_class_def = OatDexFile::FindClassDef(*dex_file, descriptor, hash); in FindInClassPath()
2391 const char* descriptor, in FindClassInBaseDexClassLoader() argument
2398 ClassPathEntry pair = FindInClassPath(descriptor, hash, boot_class_path_); in FindClassInBaseDexClassLoader()
2400 ObjPtr<mirror::Class> klass = LookupClass(self, descriptor, hash, nullptr); in FindClassInBaseDexClassLoader()
2402 *result = EnsureResolved(self, descriptor, klass); in FindClassInBaseDexClassLoader()
2405 descriptor, in FindClassInBaseDexClassLoader()
2412 CHECK(self->IsExceptionPending()) << descriptor; in FindClassInBaseDexClassLoader()
2438 descriptor, in FindClassInBaseDexClassLoader()
2485 LOG(WARNING) << "Null DexFile::mCookie for " << descriptor; in FindClassInBaseDexClassLoader()
2494 OatDexFile::FindClassDef(*cp_dex_file, descriptor, hash); in FindClassInBaseDexClassLoader()
2497 descriptor, in FindClassInBaseDexClassLoader()
2503 CHECK(self->IsExceptionPending()) << descriptor; in FindClassInBaseDexClassLoader()
2523 const char* descriptor, in FindClass() argument
2525 DCHECK_NE(*descriptor, '\0') << "descriptor is empty string"; in FindClass()
2529 if (descriptor[1] == '\0') { in FindClass()
2532 return FindPrimitiveClass(descriptor[0]); in FindClass()
2534 const size_t hash = ComputeModifiedUtf8Hash(descriptor); in FindClass()
2536 ObjPtr<mirror::Class> klass = LookupClass(self, descriptor, hash, class_loader.Get()); in FindClass()
2538 return EnsureResolved(self, descriptor, klass); in FindClass()
2541 if (descriptor[0] != '[' && class_loader == nullptr) { in FindClass()
2543 ClassPathEntry pair = FindInClassPath(descriptor, hash, boot_class_path_); in FindClass()
2546 descriptor, in FindClass()
2563 if (descriptor[0] == '[') { in FindClass()
2564 result_ptr = CreateArrayClass(self, descriptor, hash, class_loader); in FindClass()
2566 DCHECK(result_ptr == nullptr || result_ptr->DescriptorEquals(descriptor)); in FindClass()
2571 FindClassInBaseDexClassLoader(soa, self, descriptor, hash, class_loader, &result_ptr); in FindClass()
2577 DCHECK(result_ptr->DescriptorEquals(descriptor)); in FindClass()
2603 size_t descriptor_length = strlen(descriptor); in FindClass()
2604 if (UNLIKELY(descriptor[0] != 'L') || in FindClass()
2605 UNLIKELY(descriptor[descriptor_length - 1] != ';') || in FindClass()
2606 UNLIKELY(memchr(descriptor + 1, '.', descriptor_length - 2) != nullptr)) { in FindClass()
2607 ThrowNoClassDefFoundError("Invalid descriptor: %s.", descriptor); in FindClass()
2610 std::string class_name_string(descriptor + 1, descriptor_length - 2); in FindClass()
2637 descriptor_equals = (result_ptr != nullptr) && result_ptr->DescriptorEquals(descriptor); in FindClass()
2644 result_ptr = LookupClass(self, descriptor, hash, class_loader.Get()); in FindClass()
2647 return EnsureResolved(self, descriptor, result_ptr); in FindClass()
2657 old = class_table->Lookup(descriptor, hash); in FindClass()
2674 << DescriptorToDot(descriptor) << "\")."; in FindClass()
2675 return EnsureResolved(self, descriptor, old); in FindClass()
2686 DescriptorToDot(descriptor).c_str()); in FindClass()
2694 const char* descriptor, in DefineClass() argument
2705 if (strcmp(descriptor, "Ljava/lang/Object;") == 0) { in DefineClass()
2707 } else if (strcmp(descriptor, "Ljava/lang/Class;") == 0) { in DefineClass()
2709 } else if (strcmp(descriptor, "Ljava/lang/String;") == 0) { in DefineClass()
2711 } else if (strcmp(descriptor, "Ljava/lang/ref/Reference;") == 0) { in DefineClass()
2713 } else if (strcmp(descriptor, "Ljava/lang/DexCache;") == 0) { in DefineClass()
2715 } else if (strcmp(descriptor, "Ldalvik/system/ClassExt;") == 0) { in DefineClass()
2737 Runtime::Current()->GetRuntimeCallbacks()->ClassPreDefine(descriptor, in DefineClass()
2758 if (strcmp(descriptor, "Ljava/lang/String;") == 0) { in DefineClass()
2769 ObjPtr<mirror::Class> existing = InsertClass(descriptor, klass.Get(), hash); in DefineClass()
2773 return EnsureResolved(self, descriptor, existing); in DefineClass()
2812 if (!LinkClass(self, descriptor, klass, interfaces, &h_new_class)) { in DefineClass()
2820 CHECK(h_new_class != nullptr) << descriptor; in DefineClass()
2821 CHECK(h_new_class->IsResolved() && !h_new_class->IsErroneousResolved()) << descriptor; in DefineClass()
2875 const char* descriptor = dex_file.GetFieldTypeDescriptor(field_id); in SizeOfClassWithoutEmbeddedTables() local
2876 char c = descriptor[0]; in SizeOfClassWithoutEmbeddedTables()
3104 const char* descriptor = dex_file.GetClassDescriptor(dex_class_def); in SetupClass() local
3105 CHECK(descriptor != nullptr); in SetupClass()
3599 const char* descriptor = Primitive::Descriptor(type); in InitializePrimitiveClass() local
3600 ObjPtr<mirror::Class> existing = InsertClass(descriptor, in InitializePrimitiveClass()
3602 ComputeModifiedUtf8Hash(descriptor)); in InitializePrimitiveClass()
3620 mirror::Class* ClassLinker::CreateArrayClass(Thread* self, const char* descriptor, size_t hash, in CreateArrayClass() argument
3623 CHECK_EQ('[', descriptor[0]); in CreateArrayClass()
3625 MutableHandle<mirror::Class> component_type(hs.NewHandle(FindClass(self, descriptor + 1, in CreateArrayClass()
3630 const size_t component_hash = ComputeModifiedUtf8Hash(descriptor + 1); in CreateArrayClass()
3631 component_type.Assign(LookupClass(self, descriptor + 1, component_hash, class_loader.Get())); in CreateArrayClass()
3662 LookupClass(self, descriptor, hash, component_type->GetClassLoader()); in CreateArrayClass()
3679 if (strcmp(descriptor, "[Ljava/lang/Class;") == 0) { in CreateArrayClass()
3681 } else if (strcmp(descriptor, "[Ljava/lang/Object;") == 0) { in CreateArrayClass()
3683 } else if (strcmp(descriptor, GetClassRootDescriptor(kJavaLangStringArrayClass)) == 0) { in CreateArrayClass()
3685 } else if (strcmp(descriptor, "[C") == 0) { in CreateArrayClass()
3687 } else if (strcmp(descriptor, "[I") == 0) { in CreateArrayClass()
3689 } else if (strcmp(descriptor, "[J") == 0) { in CreateArrayClass()
3750 ObjPtr<mirror::Class> existing = InsertClass(descriptor, new_class.Get(), hash); in CreateArrayClass()
3798 mirror::Class* ClassLinker::InsertClass(const char* descriptor, ObjPtr<mirror::Class> klass, size_t… in InsertClass() argument
3806 LOG(INFO) << "Loaded class " << descriptor << source; in InsertClass()
3812 ObjPtr<mirror::Class> existing = class_table->Lookup(descriptor, hash); in InsertClass()
3854 const char* descriptor, in LookupClass() argument
3860 ObjPtr<mirror::Class> result = class_table->Lookup(descriptor, hash); in LookupClass()
3892 LookupClassesVisitor(const char* descriptor, in LookupClassesVisitor() argument
3895 : descriptor_(descriptor), in LookupClassesVisitor()
3915 void ClassLinker::LookupClasses(const char* descriptor, in LookupClasses() argument
3920 const size_t hash = ComputeModifiedUtf8Hash(descriptor); in LookupClasses()
3921 ObjPtr<mirror::Class> klass = boot_class_table_.Lookup(descriptor, hash); in LookupClasses()
3926 LookupClassesVisitor visitor(descriptor, hash, &result); in LookupClasses()
4311 std::string descriptor(GetDescriptorForProxy(temp_klass.Get())); in CreateProxyClass() local
4312 const size_t hash = ComputeModifiedUtf8Hash(descriptor.c_str()); in CreateProxyClass()
4321 ObjPtr<mirror::Class> existing = InsertClass(descriptor.c_str(), temp_klass.Get(), hash); in CreateProxyClass()
4393 if (!LinkClass(self, descriptor.c_str(), temp_klass, h_interfaces, &klass)) { in CreateProxyClass()
5232 const char* descriptor, in LinkClass() argument
5335 ObjPtr<mirror::Class> existing = table->UpdateClass(descriptor, h_new_class.Get(), in LinkClass()
5336 ComputeModifiedUtf8Hash(descriptor)); in LinkClass()
7874 const char* descriptor = dex_file.StringByTypeIdx(type_idx); in LookupResolvedType() local
7875 DCHECK_NE(*descriptor, '\0') << "descriptor is empty string"; in LookupResolvedType()
7876 if (descriptor[1] == '\0') { in LookupResolvedType()
7879 type = FindPrimitiveClass(descriptor[0]); in LookupResolvedType()
7883 const size_t hash = ComputeModifiedUtf8Hash(descriptor); in LookupResolvedType()
7885 type = LookupClass(self, descriptor, hash, class_loader.Ptr()); in LookupResolvedType()
7923 const char* descriptor = dex_file.StringByTypeIdx(type_idx); in ResolveType() local
7924 resolved = FindClass(self, descriptor, class_loader); in ResolveType()
7932 << "Expected pending exception for failed resolution of: " << descriptor; in ResolveType()
7939 ThrowNoClassDefFoundError("Failed resolution of: %s", descriptor); in ResolveType()
8658 const char* descriptor = class_roots_descriptors[class_root]; in GetClassRootDescriptor() local
8659 CHECK(descriptor != nullptr); in GetClassRootDescriptor()
8660 return descriptor; in GetClassRootDescriptor()
8958 const char* descriptor = dex_file->GetTypeDescriptor(type_id); in GetClassDescriptorsForResolvedClasses() local
8959 ret.insert(descriptor); in GetClassDescriptorsForResolvedClasses()