]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
natClassLoader.cc (_Jv_RegisterClassHookDefault): Clear INTERPRETED access modifier.
authorAndrew Haley <aph@redhat.com>
Fri, 13 Mar 2009 18:19:59 +0000 (18:19 +0000)
committerAndrew Haley <aph@gcc.gnu.org>
Fri, 13 Mar 2009 18:19:59 +0000 (18:19 +0000)
2009-03-13  Andrew Haley  <aph@redhat.com>

* java/lang/natClassLoader.cc (_Jv_RegisterClassHookDefault): Clear
INTERPRETED access modifier.

From-SVN: r144845

libjava/ChangeLog
libjava/java/lang/natClassLoader.cc

index 9ff203c35c8055f7a2a0a8649f13bff93d38bcad..d47c9fd1c953f6a6631ef2cd1ae224e9361cd97d 100644 (file)
@@ -1,3 +1,8 @@
+2009-03-13  Andrew Haley  <aph@redhat.com>
+
+       * java/lang/natClassLoader.cc (_Jv_RegisterClassHookDefault): Clear
+       INTERPRETED access modifier.
+
 2009-01-24  Release Manager
 
        * GCC 4.3.3 released.
index 9a687ff9105b893b2d136d5055e106ac9dfa9157..78bee43641c3ca6827462959c12e4d8d8c04d047 100644 (file)
@@ -325,6 +325,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;