summaryrefslogtreecommitdiffstats
path: root/libjava/java
diff options
context:
space:
mode:
authoraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>2007-05-31 09:30:39 +0000
committeraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>2007-05-31 09:30:39 +0000
commite35a896c27f353077e67562e7ad5682cc00caea6 (patch)
tree51eef6a9f1e6fdb65739ec14d6ca75fa4e7e1cab /libjava/java
parent5bae129abaa0c6a149d0c6028c7cd36568ddb40b (diff)
downloadppe42-gcc-e35a896c27f353077e67562e7ad5682cc00caea6.tar.gz
ppe42-gcc-e35a896c27f353077e67562e7ad5682cc00caea6.zip
2007-05-31 Andrew Haley <aph@redhat.com>
* 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
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/lang/natClassLoader.cc11
1 files changed, 10 insertions, 1 deletions
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;
OpenPOWER on IntegriCloud