summaryrefslogtreecommitdiffstats
path: root/libjava/java/lang/reflect/natMethod.cc
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2002-08-27 23:57:17 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2002-08-27 23:57:17 +0000
commit8986597fbd6f3f7ec28be3222edbacbd1ae8a552 (patch)
tree8a4500dc40ccf200051295523ea06e24d9d8fc2a /libjava/java/lang/reflect/natMethod.cc
parentf61c60981d8807089e1e8a8834d1d363e722476e (diff)
downloadppe42-gcc-8986597fbd6f3f7ec28be3222edbacbd1ae8a552.tar.gz
ppe42-gcc-8986597fbd6f3f7ec28be3222edbacbd1ae8a552.zip
* java/lang/reflect/natConstructor.cc (newInstance): Initialize
class. * java/lang/reflect/natMethod.cc (invoke): Initialize class. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56624 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/lang/reflect/natMethod.cc')
-rw-r--r--libjava/java/lang/reflect/natMethod.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/libjava/java/lang/reflect/natMethod.cc b/libjava/java/lang/reflect/natMethod.cc
index 8e3b7b2140d..95801e87570 100644
--- a/libjava/java/lang/reflect/natMethod.cc
+++ b/libjava/java/lang/reflect/natMethod.cc
@@ -156,6 +156,13 @@ java::lang::reflect::Method::invoke (jobject obj, jobjectArray args)
// of the object.
meth = _Jv_LookupDeclaredMethod (k, meth->name, meth->signature);
}
+ else
+ {
+ // We have to initialize a static class. It is safe to do this
+ // here and not in _Jv_CallAnyMethodA because JNI initializes a
+ // class whenever a method lookup is done.
+ _Jv_InitClass (declaringClass);
+ }
return _Jv_CallAnyMethodA (obj, return_type, meth, false,
parameter_types, args);
@@ -405,8 +412,6 @@ _Jv_CallAnyMethodA (jobject obj,
p += tsize;
}
- // FIXME: initialize class here.
-
using namespace java::lang;
using namespace java::lang::reflect;
OpenPOWER on IntegriCloud