Revert "lambda: Add support for invoke-interface for boxed innate lambdas"

955-lambda is flaky

Bug: 24618608
Bug: 25107649

This reverts commit 457e874459ae638145cab6d572e34d48480e39d2.

Change-Id: I24884344d21d7a4262e53e3f5dba57032687ddb7
diff --git a/runtime/stack.cc b/runtime/stack.cc
index 2ff9fd2..9098d38 100644
--- a/runtime/stack.cc
+++ b/runtime/stack.cc
@@ -172,23 +172,12 @@
     } else {
       return cur_shadow_frame_->GetVRegReference(0);
     }
-  } else if (m->IsReflectProxyMethod()) {
+  } else if (m->IsProxyMethod()) {
     if (cur_quick_frame_ != nullptr) {
       return artQuickGetProxyThisObject(cur_quick_frame_);
     } else {
       return cur_shadow_frame_->GetVRegReference(0);
     }
-  } else if (m->IsLambdaProxyMethod()) {
-    if (cur_quick_frame_ != nullptr) {
-      // XX: Should be safe to return null here, the lambda proxies
-      // don't set up their own quick frame because they don't need to spill any registers.
-      // By the time we are executing inside of the final target of the proxy invoke,
-      // the original 'this' reference is no longer live.
-      LOG(WARNING) << "Lambda proxies don't have a quick frame, do they?!";
-      return nullptr;
-    } else {
-      return cur_shadow_frame_->GetVRegReference(0);
-    }
   } else {
     const DexFile::CodeItem* code_item = m->GetCodeItem();
     if (code_item == nullptr) {
@@ -825,27 +814,7 @@
     // compiled method without any stubs. Therefore the method must have a OatQuickMethodHeader.
     DCHECK(!method->IsDirect() && !method->IsConstructor())
         << "Constructors of proxy classes must have a OatQuickMethodHeader";
-
-    if (method->IsReflectProxyMethod()) {
-      return runtime->GetCalleeSaveMethodFrameInfo(Runtime::kRefsAndArgs);
-    } else if (method->IsLambdaProxyMethod()) {
-      // Set this to true later once every stub works without a frame.
-      // This is currently 'false' because using a closure as a "long"
-      // requires a quick frame to be set up on 32-bit architectures.
-      constexpr bool kLambdaProxyStubsSupportFrameless = false;
-      if (kIsDebugBuild || !kLambdaProxyStubsSupportFrameless) {
-        // When debugging we always use the 'RefAndArgs' quick frame to allow us
-        // to see a runtime stub when unwinding.
-        return runtime->GetCalleeSaveMethodFrameInfo(Runtime::kRefsAndArgs);
-      } else {
-        // Lambda proxies don't bother setting up a quick frame for release builds.
-        LOG(FATAL) << "Requested QuickMethodFrameInfo for a lambda proxy,"
-                   << "but it doesn't have one, for method: " << PrettyMethod(method);
-        UNREACHABLE();
-      }
-    } else {
-      LOG(FATAL) << "Unknown type of proxy method " << PrettyMethod(method);
-    }
+    return runtime->GetCalleeSaveMethodFrameInfo(Runtime::kRefsAndArgs);
   }
 
   // The only remaining case is if the method is native and uses the generic JNI stub.