summaryrefslogtreecommitdiff
path: root/dexlayout/dex_ir_builder.cc
diff options
context:
space:
mode:
Diffstat (limited to 'dexlayout/dex_ir_builder.cc')
-rw-r--r--dexlayout/dex_ir_builder.cc49
1 files changed, 3 insertions, 46 deletions
diff --git a/dexlayout/dex_ir_builder.cc b/dexlayout/dex_ir_builder.cc
index c38e563f18..947d3d5297 100644
--- a/dexlayout/dex_ir_builder.cc
+++ b/dexlayout/dex_ir_builder.cc
@@ -170,7 +170,6 @@ class BuilderMaps {
void AddAnnotationsFromMapListSection(const DexFile& dex_file,
uint32_t start_offset,
uint32_t count);
- void AddHiddenapiClassDataFromMapListSection(const DexFile& dex_file, uint32_t offset);
void CheckAndSetRemainingOffsets(const DexFile& dex_file, const Options& options);
@@ -409,10 +408,6 @@ void BuilderMaps::CheckAndSetRemainingOffsets(const DexFile& dex_file, const Opt
case DexFile::kDexTypeAnnotationsDirectoryItem:
header_->AnnotationsDirectoryItems().SetOffset(item->offset_);
break;
- case DexFile::kDexTypeHiddenapiClassData:
- header_->HiddenapiClassDatas().SetOffset(item->offset_);
- AddHiddenapiClassDataFromMapListSection(dex_file, item->offset_);
- break;
default:
LOG(ERROR) << "Unknown map list item type.";
}
@@ -629,44 +624,6 @@ void BuilderMaps::AddAnnotationsFromMapListSection(const DexFile& dex_file,
}
}
-void BuilderMaps::AddHiddenapiClassDataFromMapListSection(const DexFile& dex_file,
- uint32_t offset) {
- const DexFile::HiddenapiClassData* hiddenapi_class_data =
- dex_file.GetHiddenapiClassDataAtOffset(offset);
- DCHECK(hiddenapi_class_data == dex_file.GetHiddenapiClassData());
-
- for (size_t i = 0; i < dex_file.NumClassDefs(); ++i) {
- ClassDef* class_def = header_->ClassDefs()[i];
- ClassData* class_data = class_def->GetClassData();
- const uint8_t* ptr = hiddenapi_class_data->GetFlagsPointer(i);
-
- std::unique_ptr<HiddenapiFlagsMap> flags = nullptr;
- if (ptr != nullptr) {
- DCHECK(class_data != nullptr);
- flags = std::make_unique<HiddenapiFlagsMap>();
- for (const dex_ir::FieldItem& field : *class_data->StaticFields()) {
- flags->emplace(&field, DecodeUnsignedLeb128(&ptr));
- }
- for (const dex_ir::FieldItem& field : *class_data->InstanceFields()) {
- flags->emplace(&field, DecodeUnsignedLeb128(&ptr));
- }
- for (const dex_ir::MethodItem& method : *class_data->DirectMethods()) {
- flags->emplace(&method, DecodeUnsignedLeb128(&ptr));
- }
- for (const dex_ir::MethodItem& method : *class_data->VirtualMethods()) {
- flags->emplace(&method, DecodeUnsignedLeb128(&ptr));
- }
- }
-
- CreateAndAddIndexedItem(header_->HiddenapiClassDatas(),
- header_->HiddenapiClassDatas().GetOffset() +
- hiddenapi_class_data->flags_offset_[i],
- i,
- class_def,
- std::move(flags));
- }
-}
-
AnnotationItem* BuilderMaps::CreateAnnotationItem(const DexFile& dex_file,
const DexFile::AnnotationItem* annotation) {
const uint8_t* const start_data = reinterpret_cast<const uint8_t*>(annotation);
@@ -951,13 +908,13 @@ ClassData* BuilderMaps::CreateClassData(const DexFile& dex_file,
FieldItemVector* static_fields = new FieldItemVector();
for (const ClassAccessor::Field& field : accessor.GetStaticFields()) {
FieldId* field_item = header_->FieldIds()[field.GetIndex()];
- uint32_t access_flags = field.GetAccessFlags();
+ uint32_t access_flags = field.GetRawAccessFlags();
static_fields->emplace_back(access_flags, field_item);
}
FieldItemVector* instance_fields = new FieldItemVector();
for (const ClassAccessor::Field& field : accessor.GetInstanceFields()) {
FieldId* field_item = header_->FieldIds()[field.GetIndex()];
- uint32_t access_flags = field.GetAccessFlags();
+ uint32_t access_flags = field.GetRawAccessFlags();
instance_fields->emplace_back(access_flags, field_item);
}
// Direct methods.
@@ -1223,7 +1180,7 @@ void BuilderMaps::ReadEncodedValue(const DexFile& dex_file,
MethodItem BuilderMaps::GenerateMethodItem(const DexFile& dex_file,
const ClassAccessor::Method& method) {
MethodId* method_id = header_->MethodIds()[method.GetIndex()];
- uint32_t access_flags = method.GetAccessFlags();
+ uint32_t access_flags = method.GetRawAccessFlags();
const DexFile::CodeItem* disk_code_item = method.GetCodeItem();
// Temporary hack to prevent incorrectly deduping code items if they have the same offset since
// they may have different debug info streams.