From 08f753d5859936f8d3524e9e4faa6cee353873ea Mon Sep 17 00:00:00 2001 From: Ian Rogers Date: Fri, 24 Aug 2012 14:35:25 -0700 Subject: Avoid compile time rewriting of dex code by verifier. Compile time rewriting of dex code leads to dead code that is causing issues with the LLVM compiler. Make instantiation and incompatible class change errors be detected in slow path field and invoke logic so its safe for the compile time verification just to softly fail the effected classes. This change places incompatible class change logic into the class linkers ResolveMethod and consequently changes a number of APIs. Change-Id: Ifb25f09accea348d15180f6ff041e38dfe0d536e --- src/compiler_llvm/compiler_llvm.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/compiler_llvm/compiler_llvm.cc') diff --git a/src/compiler_llvm/compiler_llvm.cc b/src/compiler_llvm/compiler_llvm.cc index e52478bc1a..b30486c6cc 100644 --- a/src/compiler_llvm/compiler_llvm.cc +++ b/src/compiler_llvm/compiler_llvm.cc @@ -188,13 +188,13 @@ extern "C" void ArtUnInitCompilerContext(art::Compiler& compiler) { delete ContextOf(compiler); compiler.SetCompilerContext(NULL); } - extern "C" art::CompiledMethod* ArtCompileMethod(art::Compiler& compiler, const art::DexFile::CodeItem* code_item, - uint32_t access_flags, uint32_t method_idx, + uint32_t access_flags, + art::InvokeType invoke_type, + uint32_t method_idx, jobject class_loader, - const art::DexFile& dex_file) -{ + const art::DexFile& dex_file) { art::ClassLinker *class_linker = art::Runtime::Current()->GetClassLinker(); art::OatCompilationUnit oat_compilation_unit( -- cgit v1.2.3-59-g8ed1b