diff options
| author | 2016-04-27 21:03:42 +0000 | |
|---|---|---|
| committer | 2016-04-28 15:18:10 -0700 | |
| commit | d23d7d145c86975acbcc75505b8a323337066ac0 (patch) | |
| tree | a62d4397dd54fa1ee65ce870e3c0b0b965f43868 /compiler/driver/compiler_driver.cc | |
| parent | 85e47976a483844177eb486d6e501fa070fbe6e2 (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.cc | 14 |
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. |