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
diff --git a/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc b/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc
index 197e8ef..49dfba6 100644
--- a/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc
+++ b/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc
@@ -2447,6 +2447,7 @@
DCHECK(!interface_method->GetDeclaringClass()->IsObjectClass());
DCHECK(interface_method->GetDeclaringClass()->IsInterface());
DCHECK(!interface_method->IsRuntimeMethod());
+ DCHECK(!interface_method->IsCopied());
ObjPtr<mirror::Object> obj_this = raw_this_object;
ObjPtr<mirror::Class> cls = obj_this->GetClass();