aboutsummaryrefslogtreecommitdiff
path: root/libjava/java
diff options
context:
space:
mode:
authorAndrew Haley <aph@gcc.gnu.org>2009-03-12 16:13:19 +0000
committerAndrew Haley <aph@gcc.gnu.org>2009-03-12 16:13:19 +0000
commit2e95a6c3583cd414ac3fe60fa42f779a07acd3c7 (patch)
tree85e76fa462fd32f7f907ccc1061b8ba0e8be06d9 /libjava/java
parentbbb52802a1e636e8eecece65c600ef1bc4dcf6aa (diff)
downloadgcc-2e95a6c3583cd414ac3fe60fa42f779a07acd3c7.zip
gcc-2e95a6c3583cd414ac3fe60fa42f779a07acd3c7.tar.gz
gcc-2e95a6c3583cd414ac3fe60fa42f779a07acd3c7.tar.bz2
[multiple changes]
2009-03-11 Andrew Haley <aph@redhat.com> * java/lang/natClassLoader.cc (_Jv_RegisterClassHookDefault): Clear INTERPRETED access modifier. 2009-03-11 Tom Tromey <tromey@redhat.com> * link.cc (_Jv_Linker::find_field): Pass the field_type to _Jv_CheckOrCreateLoadingConstraint, not the class that is requesting the field. From-SVN: r144818
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/lang/natClassLoader.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/libjava/java/lang/natClassLoader.cc b/libjava/java/lang/natClassLoader.cc
index fac1e4d..237e038 100644
--- a/libjava/java/lang/natClassLoader.cc
+++ b/libjava/java/lang/natClassLoader.cc
@@ -380,6 +380,15 @@ _Jv_RegisterClassHookDefault (jclass klass)
if (! klass->engine)
klass->engine = &_Jv_soleCompiledEngine;
+ /* FIXME: Way back before the dawn of time, we overloaded the
+ SYNTHETIC class access modifier to mean INTERPRETED. This was a
+ Bad Thing, but it didn't matter then because classes were never
+ marked synthetic. However, it is possible to redeem the
+ situation: _Jv_RegisterClassHookDefault is only called from
+ compiled classes, so we clear the INTERPRETED flag. This is a
+ kludge! */
+ klass->accflags &= ~java::lang::reflect::Modifier::INTERPRETED;
+
if (system_class_list != SYSTEM_LOADER_INITIALIZED)
{
unsigned long abi = (unsigned long) klass->next_or_version;