diff options
author | 2016-12-15 21:50:00 +0000 | |
---|---|---|
committer | 2016-12-15 21:50:00 +0000 | |
commit | 2c43590dc2bb7fb4a3a015b1b65543bb8705ffe8 (patch) | |
tree | b43632311dfbd253464d968a97e93e3b30d195ba /compiler/optimizing/instruction_simplifier.cc | |
parent | e9f3269b5417806987dc1b3e56e05767cad0716d (diff) | |
parent | ab2270f8f7ecd93c7ba353dd4e300669de3e7aee (diff) |
Merge "Fixed signal 11 bug by not testing resolved method first."
Diffstat (limited to 'compiler/optimizing/instruction_simplifier.cc')
-rw-r--r-- | compiler/optimizing/instruction_simplifier.cc | 3 |
1 files changed, 2 insertions, 1 deletions
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()) { |