diff options
author | Andrew Haley <aph@redhat.com> | 2007-05-31 09:30:39 +0000 |
---|---|---|
committer | Andrew Haley <aph@gcc.gnu.org> | 2007-05-31 09:30:39 +0000 |
commit | 3e69b919de23c7d6427d1c73d598757d99657f29 (patch) | |
tree | 51eef6a9f1e6fdb65739ec14d6ca75fa4e7e1cab | |
parent | 10c1d4af2f3020e5ed8ff7356f06802668e78324 (diff) | |
download | gcc-3e69b919de23c7d6427d1c73d598757d99657f29.zip gcc-3e69b919de23c7d6427d1c73d598757d99657f29.tar.gz gcc-3e69b919de23c7d6427d1c73d598757d99657f29.tar.bz2 |
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: r125218
-rw-r--r-- | libjava/ChangeLog | 5 | ||||
-rw-r--r-- | libjava/java/lang/natClassLoader.cc | 11 |
2 files changed, 15 insertions, 1 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 9794017..b0c7127 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-31 Paolo Bonzini <bonzini@gnu.org> PR libjava/32098 diff --git a/libjava/java/lang/natClassLoader.cc b/libjava/java/lang/natClassLoader.cc index e62c6d3..9a687ff 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; |