From: aph Date: Thu, 31 May 2007 09:30:39 +0000 (+0000) Subject: 2007-05-31 Andrew Haley X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=commitdiff_plain;h=e35a896c27f353077e67562e7ad5682cc00caea6;hp=5bae129abaa0c6a149d0c6028c7cd36568ddb40b 2007-05-31 Andrew Haley * java/lang/natClassLoader.cc (_Jv_NewClassFromInitializer): Clear INTERPRETED access modifier. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125218 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 9794017b257..b0c7127cbe8 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,8 @@ +2007-05-31 Andrew Haley + + * java/lang/natClassLoader.cc (_Jv_NewClassFromInitializer): Clear + INTERPRETED access modifier. + 2007-05-31 Paolo Bonzini PR libjava/32098 diff --git a/libjava/java/lang/natClassLoader.cc b/libjava/java/lang/natClassLoader.cc index e62c6d39281..9a687ff9105 100644 --- a/libjava/java/lang/natClassLoader.cc +++ b/libjava/java/lang/natClassLoader.cc @@ -281,7 +281,16 @@ _Jv_NewClassFromInitializer (const char *class_initializer) memcpy (dst, src, len); new_class->engine = &_Jv_soleIndirectCompiledEngine; - + + /* 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_NewClassFromInitializer is only called from + compiled classes, so we clear the INTERPRETED flag. This is a + kludge! */ + new_class->accflags &= ~java::lang::reflect::Modifier::INTERPRETED; + (*_Jv_RegisterClassHook) (new_class); return new_class;