From ab2270f8f7ecd93c7ba353dd4e300669de3e7aee Mon Sep 17 00:00:00 2001 From: Aart Bik Date: Thu, 15 Dec 2016 09:36:31 -0800 Subject: Fixed signal 11 bug by not testing resolved method first. Test: test-art-host Bug: 33656359 Change-Id: Idb1afccf811a2fbf7500fc1d953e118981ad36d4 --- compiler/optimizing/instruction_simplifier.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'compiler/optimizing/instruction_simplifier.cc') diff --git a/compiler/optimizing/instruction_simplifier.cc b/compiler/optimizing/instruction_simplifier.cc index c615df1f1d..439e3b66db 100644 --- a/compiler/optimizing/instruction_simplifier.cc +++ b/compiler/optimizing/instruction_simplifier.cc @@ -1897,7 +1897,8 @@ void InstructionSimplifierVisitor::SimplifyReturnThis(HInvoke* invoke) { static bool NoEscapeForStringBufferReference(HInstruction* reference, HInstruction* user) { if (user->IsInvokeStaticOrDirect()) { // Any constructor on StringBuffer is okay. - return user->AsInvokeStaticOrDirect()->GetResolvedMethod()->IsConstructor() && + return user->AsInvokeStaticOrDirect()->GetResolvedMethod() != nullptr && + user->AsInvokeStaticOrDirect()->GetResolvedMethod()->IsConstructor() && user->InputAt(0) == reference; } else if (user->IsInvokeVirtual()) { switch (user->AsInvokeVirtual()->GetIntrinsic()) { -- cgit v1.2.3-59-g8ed1b