diff options
Diffstat (limited to 'libjava/java/lang/reflect/natField.cc')
-rw-r--r-- | libjava/java/lang/reflect/natField.cc | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/libjava/java/lang/reflect/natField.cc b/libjava/java/lang/reflect/natField.cc index b107ab851b7..734f653168b 100644 --- a/libjava/java/lang/reflect/natField.cc +++ b/libjava/java/lang/reflect/natField.cc @@ -74,11 +74,6 @@ static void* getAddr (java::lang::reflect::Field* field, jclass caller, jobject obj, jboolean checkFinal) { - // FIXME: we know CALLER is NULL here. At one point we planned to - // have the compiler insert the caller as a hidden argument in some - // calls. However, we never implemented that, so we have to find - // the caller by hand instead. - using namespace java::lang::reflect; jfieldID fld = _Jv_FromReflectedField (field); @@ -97,7 +92,8 @@ getAddr (java::lang::reflect::Field* field, jclass caller, jobject obj, // Check accessibility, if required. if (! (Modifier::isPublic (flags) || field->isAccessible())) { - caller = _Jv_StackTrace::GetCallingClass (&Field::class$); + if (! caller) + caller = _Jv_StackTrace::GetCallingClass (&Field::class$); if (! _Jv_CheckAccess (caller, field->getDeclaringClass(), flags)) throw new java::lang::IllegalAccessException; } |