diff options
Diffstat (limited to 'compiler/driver/compiler_driver_test.cc')
-rw-r--r-- | compiler/driver/compiler_driver_test.cc | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/compiler/driver/compiler_driver_test.cc b/compiler/driver/compiler_driver_test.cc index e73d0724c9..dd2b3abe14 100644 --- a/compiler/driver/compiler_driver_test.cc +++ b/compiler/driver/compiler_driver_test.cc @@ -24,7 +24,7 @@ #include "art_method-inl.h" #include "base/casts.h" #include "class_linker-inl.h" -#include "common_compiler_test.h" +#include "common_compiler_driver_test.h" #include "compiler_callbacks.h" #include "dex/dex_file.h" #include "dex/dex_file_types.h" @@ -40,7 +40,7 @@ namespace art { -class CompilerDriverTest : public CommonCompilerTest { +class CompilerDriverTest : public CommonCompilerDriverTest { protected: void CompileAllAndMakeExecutable(jobject class_loader) REQUIRES(!Locks::mutator_lock_) { TimingLogger timings("CompilerDriverTest::CompileAllAndMakeExecutable", false, false); @@ -77,6 +77,20 @@ class CompilerDriverTest : public CommonCompilerTest { } } + void MakeExecutable(ArtMethod* method) REQUIRES_SHARED(Locks::mutator_lock_) { + CHECK(method != nullptr); + + const CompiledMethod* compiled_method = nullptr; + if (!method->IsAbstract()) { + mirror::DexCache* dex_cache = method->GetDeclaringClass()->GetDexCache(); + const DexFile& dex_file = *dex_cache->GetDexFile(); + compiled_method = + compiler_driver_->GetCompiledMethod(MethodReference(&dex_file, + method->GetDexMethodIndex())); + } + CommonCompilerTest::MakeExecutable(method, compiled_method); + } + void MakeDexFileExecutable(jobject class_loader, const DexFile& dex_file) { ClassLinker* class_linker = Runtime::Current()->GetClassLinker(); for (size_t i = 0; i < dex_file.NumClassDefs(); i++) { |