diff options
| author | Mathieu Chartier <mathieuc@google.com> | 2018-02-20 16:19:28 -0800 |
|---|---|---|
| committer | Mathieu Chartier <mathieuc@google.com> | 2018-02-22 10:37:31 -0800 |
| commit | 2daa13448d5caeb7eb4f7fd3981c0d430264c7c3 (patch) | |
| tree | 547222519fc7627a99eae914fbaa39eb294a82c6 /libdexfile/dex/compact_offset_table_test.cc | |
| parent | b2f1edc3d1f162bd9007f10bc66009eac5b2daab (diff) | |
| download | art-2daa13448d5caeb7eb4f7fd3981c0d430264c7c3.tar.gz art-2daa13448d5caeb7eb4f7fd3981c0d430264c7c3.tar.bz2 art-2daa13448d5caeb7eb4f7fd3981c0d430264c7c3.zip | |
Fix unquickening logic for quickened input dexes
In the case where an input dex is already quickened (i.e.
obfuscation), do not attempt to unquicken it. This is done by
switching the quicken info table to the compact offset table (used by
cdex debug infos).
Added test.
Posssible to get a bit of extra savings by deleting the quicken info
num entries field.
Quicken filter size regression average on golem: -0.14%.
Bug: 72608794
Bug: 63756964
Test: test-art-host-gtest-dex2oat_test -j64
Change-Id: I5534a7509b4c718a9b959fa43b82bde857e0b59e
Diffstat (limited to 'libdexfile/dex/compact_offset_table_test.cc')
| -rw-r--r-- | libdexfile/dex/compact_offset_table_test.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libdexfile/dex/compact_offset_table_test.cc b/libdexfile/dex/compact_offset_table_test.cc index 7eb01569f5..724978dc9e 100644 --- a/libdexfile/dex/compact_offset_table_test.cc +++ b/libdexfile/dex/compact_offset_table_test.cc @@ -74,6 +74,16 @@ TEST(CompactOffsetTableTest, TestBuildAndAccess) { << " table size " << data.size() << " sorted table size " << sorted_data.size(); } + + // Test constructor and accessor that serialize/read offsets. + { + std::vector<uint8_t> data2; + CompactOffsetTable::Build(offsets, /*out*/ &data2); + CompactOffsetTable::Accessor accessor2(&data2[0]); + for (size_t i = 0; i < offsets.size(); ++i) { + EXPECT_EQ(offsets[i], accessor2.GetOffset(i)); + } + } } } // namespace art |
