summaryrefslogtreecommitdiff
path: root/libjava/java
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-03-13 10:05:52 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-03-13 10:05:52 +0000
commitf841d957fa13c022a4d429dbd1175eaf99e71f7e (patch)
treeace5efda332ae3167aaba2dba9f9dd0caaf93f67 /libjava/java
parentb85138f664a42a39b0a062dc01d845e0f1c140e0 (diff)
downloadgcc-f841d957fa13c022a4d429dbd1175eaf99e71f7e.tar.gz
2009-03-13 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk r144830 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@144832 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/lang/natClassLoader.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/libjava/java/lang/natClassLoader.cc b/libjava/java/lang/natClassLoader.cc
index fac1e4dede0..237e038d1e7 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;