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:
committed by
Andrew Haley
parent
f4a2a1deec
commit
a29114a3be
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user