From 2e95a6c3583cd414ac3fe60fa42f779a07acd3c7 Mon Sep 17 00:00:00 2001 From: Andrew Haley Date: Thu, 12 Mar 2009 16:13:19 +0000 Subject: [multiple changes] 2009-03-11 Andrew Haley * java/lang/natClassLoader.cc (_Jv_RegisterClassHookDefault): Clear INTERPRETED access modifier. 2009-03-11 Tom Tromey * link.cc (_Jv_Linker::find_field): Pass the field_type to _Jv_CheckOrCreateLoadingConstraint, not the class that is requesting the field. From-SVN: r144818 --- libjava/java/lang/natClassLoader.cc | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'libjava/java') 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; -- cgit v1.1