Lines Matching refs:dex
565 *error_msg = "Null dex file.";
1010 // Append opened dex files at the end.
1041 // Null dex file means it was probably a jar with no dex files, return a null string.
1076 // DexPathList has an array dexElements of Elements[] which each contain a dex file.
1087 *error_msg = StringPrintf("Null dex element at index %d", i);
1092 *error_msg = StringPrintf("Invalid dex path list element at index %d", i);
1238 // Add image classes into the class table for the class loader, and fixup the dex caches and
1241 // Dex cache array fixup is all or nothing, we must reject app images that have mixed since we
1242 // rely on clobering the dex cache arrays in the image to forward to bss.
1256 // Reject application image since we cannot forward only some of the dex cache arrays.
1259 *out_error_msg = StringPrintf("Dex caches in bss does not match total: %zu vs %zu",
1271 // If the oat file expects the dex cache arrays to be in the BSS, then allocate there and
1429 ScopedTrace timing("Fixup ArtMethod dex cache arrays");
1476 *error_msg = StringPrintf("Failed to open dex file %s from within oat file %s error '%s'",
1622 // expected_class == null means we are a dex cache.
1649 // expected_class == null means we are a dex cache.
1722 *error_msg = "Dex cache count and dex file count mismatch while trying to initialize from "
1747 // The current dex file field is bogus, overwrite it so that we can get the dex file in the
1764 // Register dex files, keep track of existing ones that are conflicts.
1773 // Image class loader [A][B][C][image dex files]
1774 // Class loader = [???][dex_elements][image dex files]
1777 // for PathClassLoader does this by looping through the array of dex files. To ensure they
1779 // and check that the dex file names are the same.
1797 // Add the temporary dex path list elements at the end.
1809 // Ignore the number of image dex files since we are adding those to the class loader anyways.
1813 // Check that the dex file names match.
1823 VLOG(image) << "Image dex files " << image_dex_file_names.size();
1827 VLOG(image) << "Loader dex files " << loader_dex_file_names.size();
1892 // forward_dex_cache_arrays is true iff we copied all of the dex cache arrays into the .bss.
1893 // In this case, madvise away the dex cache arrays section of the image to reduce RAM usage and
1903 VLOG(image) << "Released and protected dex cache array image section from "
1926 // Check that all non-primitive classes in dex caches are also in the class table.
1969 // This case needs to call visit VisitNativeRoots in case the classes or dex cache arrays move.
2132 // TODO: it may be possible to avoid secondary storage if we iterate over dex caches. The problem
2424 // PathClassLoader is the most common case, so it's the one we check first. For secondary dex
2433 // Handles as RegisterDexFile may allocate dex caches (and cause thread suspension).
2465 // DexPathList has an array dexElements of Elements[] which each contain a dex file.
2505 // TODO: Is it really right to break here, and not check the other dex files?
2531 // for primitive classes that aren't backed by dex files.
2702 // Load the class from the dex file.
2731 // Get the real dex file. This will return the input if there aren't any callbacks or they do
3351 << klass->PrettyDescriptor() << " in dex file " << dex_file.GetLocation();
3364 CHECK(dex_cache != nullptr) << "Failed to allocate dex cache for " << dex_file.GetLocation();
3381 // For app images, the dex cache location may be a suffix of the dex file location since the
3382 // dex file location is an absolute path.
3394 // dex file location is /system/priv-app/SettingsProvider/SettingsProvider.apk
3396 // Clean up pass to remove null dex caches.
3397 // Null dex caches can occur due to class unloading and we are lazily removing null entries.
3433 "Attempt to register dex file %s with multiple class loaders",
3474 // Do InitializeDexCache while holding dex lock to make sure two threads don't call it at the
3475 // same time with the same dex cache. Since the .bss is shared this can cause failing DCHECK
3487 // Another thread managed to initialize the dex cache faster, so use that DexCache.
3527 LOG(FATAL_WITHOUT_ABORT) << "Registered dex file " << data.dex_file->GetLocation();
3538 // Search assuming unique-ness of dex file.
3540 // Avoid decoding (and read barriers) other unrelated dex caches.
3553 // Search assuming unique-ness of dex file.
3555 // Avoid decoding (and read barriers) other unrelated dex caches.
4459 // on which front-end compiler was used to build the libcore DEX files.
4467 // Ensure constructor is in dex cache so that we can use the dex cache to look up the overridden
4490 // Ensure prototype is in dex cache so that we can use the dex cache to look up the overridden
4493 // Avoid dirtying the dex cache unless we need to.
4528 // The proxy method doesn't have its own dex cache or dex file and so it steals those of its
4537 // More complex sanity - via dex cache
4951 dex::TypeIndex return_type_idx = proto_id.return_type_idx_;
4969 dex::TypeIndex arg_type_idx)
5056 dex::TypeIndex param_type_idx = types1->GetTypeItem(i).type_idx_;
5064 dex::TypeIndex other_param_type_idx = types2->GetTypeItem(i).type_idx_;
5445 // Counters for current dex file.
5452 // Counters for compile-time dex file.
5507 // Quick check 2) different dex cache? Breaks can only occur for different dex files,
5508 // which is implied by different dex cache.
5510 // Now comes the expensive part: things can be broken if (a) the klass' dex file has a
5512 // are referenced from the dex file, so do (b) first. Only relevant if we have oat files.
5563 dex::TypeIndex super_class_idx = class_def.superclass_idx_;
5601 dex::TypeIndex idx = interfaces->GetTypeItem(i).type_idx_;
5709 // avoids the use of handles, if it didn't then rather than compare dex files we could compare dex
5746 // Dex file for the method to compare against.
5750 // Lazily computed name from the dex file's strings.
6161 // The verifier should have caught the non-public method for dex version 37. Just warn and
6894 // Check that there are no stale methods are in the dex cache array.
6906 << "Obsolete method " << m->PrettyMethod() << " is in dex cache!";
7232 // fields are references into the dex file the method was defined in. Since the ArtMethod
7428 // it -- otherwise it would use the same vtable slot. In .dex files
7610 // Same basic group? Then sort by dex field index. This is guaranteed to be sorted
7773 // but it's valid Java/dex bytecode and for example proguard can generate such bytecode.
7833 dex::StringIndex string_idx,
7851 dex::StringIndex string_idx,
7869 dex::TypeIndex type_idx,
7878 // for primitive classes that aren't backed by dex files.
7900 dex::TypeIndex type_idx,
7909 dex::TypeIndex type_idx,
7957 // Check for hit in the dex cache.
7977 // Scan using method_idx, this saves string compares but will only hit for matching dex
7986 // We have to check whether the method id really belongs to an interface (dex static bytecode
8032 // Search by name, which works across dex files.
8059 // Be a good citizen and update the dex cache to speed subsequent calls.
8341 const dex::TypeIndex type_idx = it.GetTypeIdx();
8471 const dex::TypeIndex type_idx = it.GetTypeIdx();
8882 LOG(INFO) << "Dex location " << resolved_classes.GetDexLocation()
8937 // There could be duplicates if two dex files with the same location are mapped.
8947 VLOG(profiler) << "Found opened dex file for " << dex_file->GetLocation() << " with "
8950 for (dex::TypeIndex type_idx : info.GetClasses()) {
8954 << type_idx.index_ << " in dex " << location;
8962 VLOG(class_linker) << "Failed to find opened dex file for location " << location;