Do not update method's entrypoint in resolution trampoline.
For correctness, the entrypoint cannot be updated until the
class is visibly initialized and this is already handled by
ClassLinker::EnsureInitialized(), both ensuring that the
class eventually becomes visibly initialized and updating
static method entrypoints when it does.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Test: aosp_taimen-userdebug boots.
Bug: 18161648
Change-Id: Iee574b0f736e79620456f9e6ef31b50b5cfc58c8
diff --git a/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc b/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc
index 5ac9152..d237586 100644
--- a/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc
+++ b/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc
@@ -1394,11 +1394,6 @@
DCHECK_EQ(invoke_type, kStatic);
// Go to JIT or oat and grab code.
code = linker->GetQuickOatCodeFor(called);
- if (called_class->IsInitialized()) {
- // Only update the entrypoint once the class is initialized. Other
- // threads still need to go through the resolution stub.
- Runtime::Current()->GetInstrumentation()->UpdateMethodsCode(called, code);
- }
}
}
} else {