Proxy implementation
This rounds out the proxy implementation by adding missing pieces to the
class linker, extending tests and fixing issues in the runtime support.
There are also some tweaks for performance and to clean up Method/Object
a little.
A unit test of the functionality is "art/test/run-test 044"
Change-Id: Id94102d10b81cd9b12b95ba8618f6187490204c4
diff --git a/src/class_linker.h b/src/class_linker.h
index 37802ae..91d6259 100644
--- a/src/class_linker.h
+++ b/src/class_linker.h
@@ -227,7 +227,7 @@
void VerifyClass(Class* klass);
Class* CreateProxyClass(String* name, ObjectArray<Class>* interfaces, ClassLoader* loader,
- ObjectArray<Method>* methods, ObjectArray<Object>* throws);
+ ObjectArray<Method>* methods, ObjectArray<ObjectArray<Class> >* throws);
private:
ClassLinker(InternTable*);
@@ -347,7 +347,7 @@
}
Method* CreateProxyConstructor(Class* klass);
- Method* CreateProxyMethod(Class* klass, Method* prototype, Object* throws);
+ Method* CreateProxyMethod(Class* klass, Method* prototype, ObjectArray<Class>* throws);
// lock to protect ClassLinker state
mutable Mutex lock_;
@@ -377,6 +377,7 @@
kJavaLangReflectConstructor,
kJavaLangReflectField,
kJavaLangReflectMethod,
+ kJavaLangReflectProxy,
kJavaLangClassLoader,
kDalvikSystemBaseDexClassLoader,
kDalvikSystemPathClassLoader,