summaryrefslogtreecommitdiff
path: root/compiler/jit/jit_compiler.cc
diff options
context:
space:
mode:
author Nicolas Geoffray <ngeoffray@google.com> 2015-11-02 11:57:11 +0000
committer Nicolas Geoffray <ngeoffray@google.com> 2015-11-02 15:21:41 +0000
commit22cf3d361695ff1d585a8a412ebeade69749811f (patch)
treebff30bc41f6f85d0758934a9eeeb3511c2a0fc44 /compiler/jit/jit_compiler.cc
parent43c6d31c43c05d97511bb9658964fd3d2f32b915 (diff)
Fix tests flakiness with jit when using Proxy classes.
We cannot copy the entry point between ArtMethod when the entry point has been JITted. We put the interpreter bridge instead. bug:25334878 Change-Id: I65a50cc1f10a5a152733807f8c85fb3ed81c5829
Diffstat (limited to 'compiler/jit/jit_compiler.cc')
-rw-r--r--compiler/jit/jit_compiler.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/compiler/jit/jit_compiler.cc b/compiler/jit/jit_compiler.cc
index c1b87c9cd0..d520208d32 100644
--- a/compiler/jit/jit_compiler.cc
+++ b/compiler/jit/jit_compiler.cc
@@ -192,7 +192,10 @@ bool JitCompiler::CompileMethod(Thread* self, ArtMethod* method) {
CompiledMethod* compiled_method = nullptr;
{
TimingLogger::ScopedTiming t2("Compiling", &logger);
- compiled_method = compiler_driver_->CompileArtMethod(self, method);
+ // If we get a request to compile a proxy method, we pass the actual Java method
+ // of that proxy method, as the compiler does not expect a proxy method.
+ ArtMethod* method_to_compile = method->GetInterfaceMethodIfProxy(sizeof(void*));
+ compiled_method = compiler_driver_->CompileArtMethod(self, method_to_compile);
}
// Trim maps to reduce memory usage.