From: Andrew Haley Date: Fri, 13 Mar 2009 18:19:59 +0000 (+0000) Subject: natClassLoader.cc (_Jv_RegisterClassHookDefault): Clear INTERPRETED access modifier. X-Git-Tag: releases/gcc-4.3.4~277 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8fcb81051c54e9f10f768a6bfc2074b796a8de9f;p=thirdparty%2Fgcc.git natClassLoader.cc (_Jv_RegisterClassHookDefault): Clear INTERPRETED access modifier. 2009-03-13 Andrew Haley * java/lang/natClassLoader.cc (_Jv_RegisterClassHookDefault): Clear INTERPRETED access modifier. From-SVN: r144845 --- diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 9ff203c35c80..d47c9fd1c953 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,8 @@ +2009-03-13 Andrew Haley + + * java/lang/natClassLoader.cc (_Jv_RegisterClassHookDefault): Clear + INTERPRETED access modifier. + 2009-01-24 Release Manager * GCC 4.3.3 released. diff --git a/libjava/java/lang/natClassLoader.cc b/libjava/java/lang/natClassLoader.cc index 9a687ff9105b..78bee43641c3 100644 --- a/libjava/java/lang/natClassLoader.cc +++ b/libjava/java/lang/natClassLoader.cc @@ -325,6 +325,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;