Revert "Fix issue with proxy invocation on default methods"
This reverts commit ec3b7ab8f008f36f1072d4ba03da204229b95976.
Change-Id: Idfb2c63c246cc5dae7670503e70ad3f62bb1e1eb
diff --git a/runtime/class_linker.cc b/runtime/class_linker.cc
index 72e40c2..d51a1f7 100644
--- a/runtime/class_linker.cc
+++ b/runtime/class_linker.cc
@@ -4216,14 +4216,10 @@
DCHECK(out != nullptr);
out->CopyFrom(prototype, image_pointer_size_);
- // Set class to be the concrete proxy class.
+ // Set class to be the concrete proxy class and clear the abstract flag, modify exceptions to
+ // the intersection of throw exceptions as defined in Proxy
out->SetDeclaringClass(klass.Get());
- // Clear the abstract, default and conflict flags to ensure that defaults aren't picked in
- // preference to the invocation handler.
- const uint32_t kRemoveFlags = kAccAbstract | kAccDefault | kAccDefaultConflict;
- // Make the method final.
- const uint32_t kAddFlags = kAccFinal;
- out->SetAccessFlags((out->GetAccessFlags() & ~kRemoveFlags) | kAddFlags);
+ out->SetAccessFlags((out->GetAccessFlags() & ~kAccAbstract) | kAccFinal);
// At runtime the method looks like a reference and argument saving method, clone the code
// related parameters from this method.