diff options
| author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-03-23 19:15:44 +0000 |
|---|---|---|
| committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-03-23 19:15:44 +0000 |
| commit | e87dd429b4f2649989226014cd6a282f41417e26 (patch) | |
| tree | 28774e5e29803dc3ce69073c0dcf0c60c43a6982 /libjava/java/lang/reflect/natField.cc | |
| parent | 46b4391221355bb4dd57ecdc685e8f9c0cca9fa2 (diff) | |
| download | ppe42-gcc-e87dd429b4f2649989226014cd6a282f41417e26.tar.gz ppe42-gcc-e87dd429b4f2649989226014cd6a282f41417e26.zip | |
* jni.cc (_Jv_JNI_GetAnyFieldID): Handle unresolved fields.
* java/lang/reflect/natField.cc (getType): Use _Jv_ResolveField
unconditionally.
* include/jvm.h (_Jv_ResolveField): Declare.
* include/java-interp.h (_Jv_ResolveField): Don't declare.
* resolve.cc (_Jv_ResolveField): No longer conditional on
INTERPRETER.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40785 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/lang/reflect/natField.cc')
| -rw-r--r-- | libjava/java/lang/reflect/natField.cc | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/libjava/java/lang/reflect/natField.cc b/libjava/java/lang/reflect/natField.cc index 57421d690b4..0aedc4ea363 100644 --- a/libjava/java/lang/reflect/natField.cc +++ b/libjava/java/lang/reflect/natField.cc @@ -1,6 +1,6 @@ // natField.cc - Implementation of java.lang.reflect.Field native methods. -/* Copyright (C) 1998, 1999, 2000 Free Software Foundation +/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation This file is part of libgcj. @@ -44,17 +44,8 @@ jclass java::lang::reflect::Field::getType () { jfieldID fld = _Jv_FromReflectedField (this); - if (! fld->isResolved()) - { - JvSynchronize sync (declaringClass); - if (! fld->isResolved()) - { - fld->type - = _Jv_FindClassFromSignature(((Utf8Const*) (fld->type))->data, - declaringClass->getClassLoader()); - fld->flags &= ~_Jv_FIELD_UNRESOLVED_FLAG; - } - } + JvSynchronize sync (declaringClass); + _Jv_ResolveField (fld, declaringClass->getClassLoader ()); return fld->type; } |

