summaryrefslogtreecommitdiff
path: root/compiler/driver/compiler_driver.cc
diff options
context:
space:
mode:
author Mathieu Chartier <mathieuc@google.com> 2016-04-27 21:03:42 +0000
committer Mathieu Chartier <mathieuc@google.com> 2016-04-28 15:18:10 -0700
commitd23d7d145c86975acbcc75505b8a323337066ac0 (patch)
treea62d4397dd54fa1ee65ce870e3c0b0b965f43868 /compiler/driver/compiler_driver.cc
parent85e47976a483844177eb486d6e501fa070fbe6e2 (diff)
Revert "Write conflict tables in image"
Some strange issues on angler. This reverts commit cda9386add68d94697449c6cb08b356747e55c21. (cherry picked from commit 8e2478d23e89a7022c93ddc608dcbba7b29b91e6) Change-Id: Iffd25c5fb732ff72b58c787c107dc33c56f8c8d4
Diffstat (limited to 'compiler/driver/compiler_driver.cc')
-rw-r--r--compiler/driver/compiler_driver.cc14
1 files changed, 4 insertions, 10 deletions
diff --git a/compiler/driver/compiler_driver.cc b/compiler/driver/compiler_driver.cc
index e84faff941..be82956e76 100644
--- a/compiler/driver/compiler_driver.cc
+++ b/compiler/driver/compiler_driver.cc
@@ -2440,7 +2440,7 @@ void CompilerDriver::InitializeClasses(jobject jni_class_loader,
context.ForAll(0, dex_file.NumClassDefs(), &visitor, init_thread_count);
}
-class InitializeArrayClassesAndCreateConflictTablesVisitor : public ClassVisitor {
+class InitializeArrayClassVisitor : public ClassVisitor {
public:
virtual bool operator()(mirror::Class* klass) OVERRIDE SHARED_REQUIRES(Locks::mutator_lock_) {
if (klass->IsArrayClass()) {
@@ -2450,10 +2450,6 @@ class InitializeArrayClassesAndCreateConflictTablesVisitor : public ClassVisitor
true,
true);
}
- // Create the conflict tables.
- if (klass->ShouldHaveEmbeddedImtAndVTable()) {
- Runtime::Current()->GetClassLinker()->FillIMTAndConflictTables(klass);
- }
return true;
}
};
@@ -2466,15 +2462,13 @@ void CompilerDriver::InitializeClasses(jobject class_loader,
CHECK(dex_file != nullptr);
InitializeClasses(class_loader, *dex_file, dex_files, timings);
}
- if (image_classes_ != nullptr) {
+ {
// Make sure that we call EnsureIntiailized on all the array classes to call
// SetVerificationAttempted so that the access flags are set. If we do not do this they get
// changed at runtime resulting in more dirty image pages.
- // Also create conflict tables.
- // Only useful if we are compiling an image (image_classes_ is not null).
ScopedObjectAccess soa(Thread::Current());
- InitializeArrayClassesAndCreateConflictTablesVisitor visitor;
- Runtime::Current()->GetClassLinker()->VisitClassesWithoutClassesLock(&visitor);
+ InitializeArrayClassVisitor visitor;
+ Runtime::Current()->GetClassLinker()->VisitClasses(&visitor);
}
if (IsBootImage()) {
// Prune garbage objects created during aborted transactions.