summaryrefslogtreecommitdiffstats
path: root/libjava/java/lang/reflect/natField.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java/lang/reflect/natField.cc')
-rw-r--r--libjava/java/lang/reflect/natField.cc8
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;
}
OpenPOWER on IntegriCloud