From d5a8695394f8f6e8f9a66752441623dc31b97660 Mon Sep 17 00:00:00 2001 From: Nicolas Geoffray Date: Tue, 19 Jan 2021 10:35:54 +0000 Subject: Reland "Improve invokeinterface for nterp." This reverts commit f1d06474baa2f7c00761db39099b89ddab71bbe4. Bug: 177554973 Bug: 112676029 Test: test.py Test: 815-invokeinterface-default Test: enable text-to-speech on device, no crash Reason for revert: Fixed issue with recursive default methods Change-Id: I2fb9336adb6c4fc920f39aa19bfe7f0a92ce059a --- compiler/optimizing/instruction_builder.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'compiler/optimizing/instruction_builder.cc') diff --git a/compiler/optimizing/instruction_builder.cc b/compiler/optimizing/instruction_builder.cc index 3b1086e88e..068d3a964b 100644 --- a/compiler/optimizing/instruction_builder.cc +++ b/compiler/optimizing/instruction_builder.cc @@ -1111,6 +1111,7 @@ bool HInstructionBuilder::BuildInvoke(const Instruction& instruction, HInvokeStaticOrDirect::DispatchInfo dispatch_info = HSharpening::SharpenLoadMethod(resolved_method, has_method_id, + /* for_interface_call= */ false, code_generator_); if (dispatch_info.code_ptr_location == CodePtrLocation::kCallCriticalNative) { graph_->SetHasDirectCriticalNativeCall(true); @@ -1147,8 +1148,11 @@ bool HInstructionBuilder::BuildInvoke(const Instruction& instruction, ScopedObjectAccess soa(Thread::Current()); DCHECK(resolved_method->GetDeclaringClass()->IsInterface()); } - MethodLoadKind load_kind = - HSharpening::SharpenLoadMethod(resolved_method, /* has_method_id= */ true, code_generator_) + MethodLoadKind load_kind = HSharpening::SharpenLoadMethod( + resolved_method, + /* has_method_id= */ true, + /* for_interface_call= */ true, + code_generator_) .method_load_kind; invoke = new (allocator_) HInvokeInterface(allocator_, number_of_arguments, -- cgit v1.2.3-59-g8ed1b