natVMProxy.cc (ncode_closure.meth): Delete.

2007-03-05  Andrew Haley  <aph@redhat.com>

	* java/lang/reflect/natVMProxy.cc (ncode_closure.meth): Delete.
	(generateProxyClass): Don't pass method to ncode.
	(run_proxy): Call _Jv_GetReflectedMethod to find the proxy method.
	* java/lang/reflect/Method.h: Rebuild.
	* java/lang/reflect/Method.java (internalGetParameterTypes,
	internalGetExceptionTypes): New methods.
	* headers.txt (class java/lang/reflect/Method): Declare
	_Jv_GetReflectedMethod.  Be its friend.
	* java/lang/natClass.cc (_Jv_GetReflectedMethod): New method.
	* java/lang/Class.h: Declare it.  Be its friend.

From-SVN: r122554
This commit is contained in:
Andrew Haley
2007-03-05 16:06:27 +00:00
committed by Andrew Haley
parent f4a2a1deec
commit a29114a3be
8 changed files with 83 additions and 13 deletions
+20
View File
@@ -1630,6 +1630,26 @@ _Jv_LookupDeclaredMethod (jclass klass, _Jv_Utf8Const *name,
return NULL;
}
java::lang::reflect::Method *
_Jv_GetReflectedMethod (jclass klass, _Jv_Utf8Const *name,
_Jv_Utf8Const *signature)
{
for (; klass; klass = klass->getSuperclass())
{
_Jv_Method *meth = _Jv_GetMethodLocal (klass, name, signature);
if (meth)
{
using namespace java::lang::reflect;
Method *rmethod = new Method ();
rmethod->offset = (char*) meth - (char*) klass->methods;
rmethod->declaringClass = klass;
return rmethod;
}
}
return NULL;
}
#ifdef HAVE_TLS
// NOTE: MCACHE_SIZE should be a power of 2 minus one.