diff options
author | 2018-06-04 17:19:02 -0700 | |
---|---|---|
committer | 2018-06-07 22:13:48 -0700 | |
commit | 18e2687c4126d66870d61d6548abc2c7661a66cc (patch) | |
tree | 06eff605df9259dde8170c8efb48b11df4108eb3 /libdexfile/dex/class_accessor.h | |
parent | 2607d6c47114a18ccf4a532b20e1099d1dd8fcca (diff) |
Refactor ClassAccessor to use an index instead of ClassDef pointer
Removes a separate class_def_idx being required for getting the index
of a ClassAccessor foreach loop.
Bug: 79758018
Test: test-art-host-gtest
Change-Id: Ie3010a17669f24cf492c678b55bdddba7ec62ea8
Diffstat (limited to 'libdexfile/dex/class_accessor.h')
-rw-r--r-- | libdexfile/dex/class_accessor.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/libdexfile/dex/class_accessor.h b/libdexfile/dex/class_accessor.h index 4f0fd32e31..34c7e0756b 100644 --- a/libdexfile/dex/class_accessor.h +++ b/libdexfile/dex/class_accessor.h @@ -248,6 +248,8 @@ class ClassAccessor { ClassAccessor(const DexFile& dex_file, const DexFile::ClassDef& class_def); + ClassAccessor(const DexFile& dex_file, uint32_t class_def_index); + // Return the code item for a method. const DexFile::CodeItem* GetCodeItem(const Method& method) const; @@ -315,9 +317,7 @@ class ClassAccessor { const char* GetDescriptor() const; - dex::TypeIndex GetClassIdx() const { - return descriptor_index_; - } + dex::TypeIndex GetClassIdx() const; const DexFile& GetDexFile() const { return dex_file_; @@ -327,6 +327,10 @@ class ClassAccessor { return ptr_pos_ != nullptr; } + uint32_t GetClassDefIndex() const { + return class_def_index_; + } + protected: // Template visitor to reduce copy paste for visiting elements. // No thread safety analysis since the visitor may require capabilities. @@ -341,7 +345,7 @@ class ClassAccessor { IterationRange<DataIterator<Method>> GetMethodsInternal(size_t count) const; const DexFile& dex_file_; - const dex::TypeIndex descriptor_index_ = {}; + const uint32_t class_def_index_; const uint8_t* ptr_pos_ = nullptr; // Pointer into stream of class_data_item. const uint32_t num_static_fields_ = 0u; const uint32_t num_instance_fields_ = 0u; |