From 335005e2b3a179f26b7a8ae64ca60a1406b669bd Mon Sep 17 00:00:00 2001 From: Nicolas Geoffray Date: Thu, 25 Jun 2015 10:01:47 +0100 Subject: Only do some checks when compiling against the core image. This will avoid false negatives when running dex2oatd on apks. bug:21865473 Change-Id: Id8eacaefae0bcf07a2ada8aedd7951854cdb5c4f --- compiler/optimizing/optimizing_compiler.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'compiler/optimizing/optimizing_compiler.cc') diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc index 1944ba663a..1e515307b4 100644 --- a/compiler/optimizing/optimizing_compiler.cc +++ b/compiler/optimizing/optimizing_compiler.cc @@ -614,7 +614,8 @@ CompiledMethod* OptimizingCompiler::TryCompile(const DexFile::CodeItem* code_ite { PassScope scope(HGraphBuilder::kBuilderPassName, &pass_observer); if (!builder.BuildGraph(*code_item)) { - CHECK(!shouldCompile) << "Could not build graph in optimizing compiler"; + DCHECK(!(IsCompilingWithCoreImage() && shouldCompile)) + << "Could not build graph in optimizing compiler"; pass_observer.SetGraphInBadState(); return nullptr; } @@ -705,4 +706,9 @@ Compiler* CreateOptimizingCompiler(CompilerDriver* driver) { return new OptimizingCompiler(driver); } +bool IsCompilingWithCoreImage() { + const std::string& image = Runtime::Current()->GetImageLocation(); + return EndsWith(image, "core.art") || EndsWith(image, "core-optimizing.art"); +} + } // namespace art -- cgit v1.2.3-59-g8ed1b