From 3e69b919de23c7d6427d1c73d598757d99657f29 Mon Sep 17 00:00:00 2001 From: Andrew Haley Date: Thu, 31 May 2007 09:30:39 +0000 Subject: natClassLoader.cc (_Jv_NewClassFromInitializer): Clear INTERPRETED access modifier. 2007-05-31 Andrew Haley * java/lang/natClassLoader.cc (_Jv_NewClassFromInitializer): Clear INTERPRETED access modifier. From-SVN: r125218 --- libjava/java/lang/natClassLoader.cc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'libjava/java') 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; -- cgit v1.1