Lines Matching refs:dex
85 const dex::TypeIndex& type_idx) {
112 // Transform the actual dex location into relative paths.
262 * Classes are grouped per their dex files and the line
282 // Dex files must be written in the order of their profile index. This
293 // Note that we allow dex files without any methods or classes, so that
294 // inline caches can refer valid dex files.
347 // Add the dex pc.
369 SafeMap<uint8_t, std::vector<dex::TypeIndex>> dex_to_classes_map;
370 // Group the classes by dex. We expect that most of the classes will come from
371 // the same dex, so this will be more efficient than encoding the dex index
374 // Add the dex map size.
378 const std::vector<dex::TypeIndex>& dex_classes = dex_it.second;
379 // Add the dex profile index.
381 // Add the the number of classes for each dex profile index.
399 SafeMap<uint8_t, std::vector<dex::TypeIndex>> dex_to_classes_map;
403 size += sizeof(uint8_t); // dex profile index
405 const std::vector<dex::TypeIndex>& dex_classes = dex_it.second;
415 /*out*/SafeMap<uint8_t, std::vector<dex::TypeIndex>>* dex_to_classes_map) {
427 // Allow only 255 dex files to be profiled. This allows us to save bytes
430 LOG(ERROR) << "Exceeded the maximum number of dex files (255). Something went wrong";
444 // DCHECK that profile info map key is consistent with the one stored in the dex file data.
450 // This may different if for example the dex file was updated and
453 LOG(WARNING) << "Checksum mismatch for dex " << profile_key;
571 dex::TypeIndex type_idx) {
622 dex_pc_data->AddClass(dex_profile_index, dex::TypeIndex(type_index));
656 dex::TypeIndex(type_index))) {
732 sizeof(uint8_t); // number of dex files
750 *error = "Cannot read the number of dex files";
849 // TODO(calin): fail fast if the dex checksums don't match.
912 LOG(WARNING) << "Checksum mismatch for dex " << other_dex_data->profile_key;
918 // The other profile might have a different indexing of dex files.
919 // That is because each dex files gets a 'dex_profile_index' on a first come first served basis.
923 // data from multiple splits. This means that a profile may contain a classes2.dex from split-A
927 // This will make sure that the ClassReferences will point to the correct dex file.
933 return false; // Could happen if we exceed the number of allowed dex files.
1023 bool ProfileCompilationInfo::ContainsClass(const DexFile& dex_file, dex::TypeIndex type_idx) const {
1029 const ArenaSet<dex::TypeIndex>& classes = dex_data->class_set;
1078 const std::string kFirstDexFileKeySubstitute = ":classes.dex";
1136 std::set<dex::TypeIndex>* class_set,
1147 for (const dex::TypeIndex& type_index : dex_data->class_set) {
1182 LOG(ERROR) << "Dex checksum mismatch when getting resolved classes from profile for "
1203 // The limits are defined by the dex specification.
1233 info.AddClassIndex(profile_key, 0, dex::TypeIndex(type_idx));
1250 // Randomly add a class from the dex file (with 50% chance).
1252 info.AddClassIndex(location, checksum, dex::TypeIndex(dex_file->GetClassDef(i).class_idx_));
1256 // Randomly add a method from the dex file (with 50% chance).
1271 // We can't use a simple equality test because we need to match the dex files