mirror of
https://gcc.gnu.org/git/gcc.git
synced 2025-01-25 22:04:07 +08:00
Class.h (_getDeclaredMethod): Declare.
* java/lang/Class.h (_getDeclaredMethod): Declare. (_getMethod): Now private. * java/lang/natClass.cc (_getDeclaredMethod): Renamed from getDeclaredMethod. Now returns NULL on failure. * java/lang/Class.java (_getDeclaredMethod): Declare. (getDeclaredMethod): No longer native; implements access checks. From-SVN: r56772
This commit is contained in:
parent
57016b4723
commit
f470196114
@ -1,3 +1,12 @@
|
||||
2002-09-03 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* java/lang/Class.h (_getDeclaredMethod): Declare.
|
||||
(_getMethod): Now private.
|
||||
* java/lang/natClass.cc (_getDeclaredMethod): Renamed from
|
||||
getDeclaredMethod. Now returns NULL on failure.
|
||||
* java/lang/Class.java (_getDeclaredMethod): Declare.
|
||||
(getDeclaredMethod): No longer native; implements access checks.
|
||||
|
||||
2002-09-01 Mark Wielaard <mark@klomp.org>
|
||||
|
||||
* gnu/gcj/runtime/NameFinder.java (remove_interpreter): New field.
|
||||
|
@ -160,6 +160,9 @@ private:
|
||||
java::lang::reflect::Method *getPrivateMethod (jstring, JArray<jclass> *);
|
||||
java::security::ProtectionDomain *getProtectionDomain0 ();
|
||||
|
||||
java::lang::reflect::Method *_getMethod (jstring, JArray<jclass> *);
|
||||
java::lang::reflect::Method *_getDeclaredMethod (jstring, JArray<jclass> *);
|
||||
|
||||
public:
|
||||
JArray<java::lang::reflect::Field *> *getFields (void);
|
||||
|
||||
@ -167,7 +170,6 @@ public:
|
||||
|
||||
void getSignature (java::lang::StringBuffer *buffer);
|
||||
static jstring getSignature (JArray<jclass> *, jboolean is_constructor);
|
||||
java::lang::reflect::Method *_getMethod (jstring, JArray<jclass> *);
|
||||
JArray<java::lang::reflect::Method *> *getMethods (void);
|
||||
|
||||
inline jint getModifiers (void)
|
||||
|
@ -65,9 +65,31 @@ public final class Class implements Serializable
|
||||
public native Field getDeclaredField (String fieldName)
|
||||
throws NoSuchFieldException, SecurityException;
|
||||
public native Field[] getDeclaredFields () throws SecurityException;
|
||||
public native Method getDeclaredMethod (String methodName,
|
||||
Class[] parameterTypes)
|
||||
throws NoSuchMethodException, SecurityException;
|
||||
|
||||
private native Method _getDeclaredMethod (String methodName,
|
||||
Class[] parameterTypes);
|
||||
|
||||
public Method getDeclaredMethod (String methodName, Class[] parameterTypes)
|
||||
throws NoSuchMethodException, SecurityException
|
||||
{
|
||||
SecurityManager sm = System.getSecurityManager();
|
||||
if (sm != null)
|
||||
{
|
||||
sm.checkMemberAccess(this, Member.DECLARED);
|
||||
Package p = getPackage();
|
||||
if (p != null)
|
||||
sm.checkPackageAccess(p.getName());
|
||||
}
|
||||
|
||||
if ("<init>".equals(methodName) || "<clinit>".equals(methodName))
|
||||
throw new NoSuchMethodException(methodName);
|
||||
|
||||
Method m = _getDeclaredMethod(methodName, parameterTypes);
|
||||
if (m == null)
|
||||
throw new NoSuchMethodException (methodName);
|
||||
return m;
|
||||
}
|
||||
|
||||
public native Method[] getDeclaredMethods () throws SecurityException;
|
||||
|
||||
// This is marked as unimplemented in the JCL book.
|
||||
|
@ -315,8 +315,8 @@ java::lang::Class::getSignature (JArray<jclass> *param_types,
|
||||
}
|
||||
|
||||
java::lang::reflect::Method *
|
||||
java::lang::Class::getDeclaredMethod (jstring name,
|
||||
JArray<jclass> *param_types)
|
||||
java::lang::Class::_getDeclaredMethod (jstring name,
|
||||
JArray<jclass> *param_types)
|
||||
{
|
||||
jstring partial_sig = getSignature (param_types, false);
|
||||
jint p_len = partial_sig->length();
|
||||
@ -324,7 +324,6 @@ java::lang::Class::getDeclaredMethod (jstring name,
|
||||
int i = isPrimitive () ? 0 : method_count;
|
||||
while (--i >= 0)
|
||||
{
|
||||
// FIXME: access checks.
|
||||
if (_Jv_equalUtf8Consts (methods[i].name, utf_name)
|
||||
&& _Jv_equaln (methods[i].signature, partial_sig, p_len))
|
||||
{
|
||||
@ -336,7 +335,7 @@ java::lang::Class::getDeclaredMethod (jstring name,
|
||||
return rmethod;
|
||||
}
|
||||
}
|
||||
throw new java::lang::NoSuchMethodException;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
JArray<java::lang::reflect::Method *> *
|
||||
|
Loading…
Reference in New Issue
Block a user