OSDN Git Service

2007-05-31 Andrew Haley <aph@redhat.com>
authoraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 31 May 2007 09:30:39 +0000 (09:30 +0000)
committeraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 31 May 2007 09:30:39 +0000 (09:30 +0000)
        * 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

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

index 9794017..b0c7127 100644 (file)
@@ -1,3 +1,8 @@
+2007-05-31  Andrew Haley  <aph@redhat.com>
+
+       * java/lang/natClassLoader.cc (_Jv_NewClassFromInitializer): Clear
+       INTERPRETED access modifier.
+
 2007-05-31  Paolo Bonzini  <bonzini@gnu.org>
 
        PR libjava/32098
index e62c6d3..9a687ff 100644 (file)
@@ -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;