X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=libjava%2Fjava%2Flang%2FnatClassLoader.cc;h=9a687ff9105b893b2d136d5055e106ac9dfa9157;hp=e62c6d392818b702e5b0a23c59af16b62be6b511;hb=e35a896c27f353077e67562e7ad5682cc00caea6;hpb=5bae129abaa0c6a149d0c6028c7cd36568ddb40b 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;