summaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorAndrew Haley <aph@redhat.com>2007-05-31 09:43:55 +0000
committerAndrew Haley <aph@gcc.gnu.org>2007-05-31 09:43:55 +0000
commit7e55d48701a1b4373ac583c26076c176388c4877 (patch)
tree5bc648e67499198cf7ecfd6e12956c2fc30ee5fe /libjava
parentca9b8e1f21e3ccfc3e3f6765241855ac24f9a994 (diff)
downloadgcc-7e55d48701a1b4373ac583c26076c176388c4877.tar.gz
natClassLoader.cc (_Jv_NewClassFromInitializer): Clear INTERPRETED access modifier.
2007-05-31 Andrew Haley <aph@redhat.com> * java/lang/natClassLoader.cc (_Jv_NewClassFromInitializer): Clear INTERPRETED access modifier. From-SVN: r125221
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog5
-rw-r--r--libjava/java/lang/natClassLoader.cc9
2 files changed, 14 insertions, 0 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index a1549dfa9d7..4d854e7e871 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,8 @@
+2007-05-31 Andrew Haley <aph@redhat.com>
+
+ * java/lang/natClassLoader.cc (_Jv_NewClassFromInitializer): Clear
+ INTERPRETED access modifier.
+
2007-05-13 Release Manager
* GCC 4.2.0 released.
diff --git a/libjava/java/lang/natClassLoader.cc b/libjava/java/lang/natClassLoader.cc
index b05c0b1045b..2400e0ce24e 100644
--- a/libjava/java/lang/natClassLoader.cc
+++ b/libjava/java/lang/natClassLoader.cc
@@ -235,6 +235,15 @@ _Jv_NewClassFromInitializer (const char *class_initializer)
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;
+
if (_Jv_CheckABIVersion ((unsigned long) new_class->next_or_version))
(*_Jv_RegisterClassHook) (new_class);