summaryrefslogtreecommitdiff
path: root/runtime/class_table.cc
diff options
context:
space:
mode:
author Mathieu Chartier <mathieuc@google.com> 2016-09-20 15:33:31 -0700
committer Mathieu Chartier <mathieuc@google.com> 2016-09-23 15:27:26 -0700
commit496577fb4d6d7baea9c093d35d17e208c831bbca (patch)
tree1da9976883a8fea0dc05a58ec9bbd347b010fc19 /runtime/class_table.cc
parent304533ed8475e9438e6ca7ef5fa644fd5dab5e97 (diff)
Smarter image layout
Put strings in the dex file that resolves them. Depth first traversal with overrides for class and dex cache. The work list keeps track of what oat_index with each pushed item. This means the static fields of a class will usually be in the same image. Added layout test to image_test to make sure things are somewhat reasonably attributed. Bug: 28640955 Test: test-art-host (cherry picked from commit 4e9c4e746617bad6a012d799d2f5cf9e01d24ea2) Change-Id: I67a536c33aeed603b252d8e0f75622c9efbf2559
Diffstat (limited to 'runtime/class_table.cc')
-rw-r--r--runtime/class_table.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/runtime/class_table.cc b/runtime/class_table.cc
index 55ff73d0a6..0600876122 100644
--- a/runtime/class_table.cc
+++ b/runtime/class_table.cc
@@ -113,6 +113,10 @@ void ClassTable::Insert(mirror::Class* klass) {
classes_.back().Insert(GcRoot<mirror::Class>(klass));
}
+void ClassTable::InsertWithoutLocks(mirror::Class* klass) {
+ classes_.back().Insert(GcRoot<mirror::Class>(klass));
+}
+
void ClassTable::InsertWithHash(mirror::Class* klass, size_t hash) {
WriterMutexLock mu(Thread::Current(), lock_);
classes_.back().InsertWithHash(GcRoot<mirror::Class>(klass), hash);