diff options
author | aph <aph@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-03-12 16:13:19 +0000 |
---|---|---|
committer | aph <aph@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-03-12 16:13:19 +0000 |
commit | 266321f1a78a43c4656090581fe82d47049b4bee (patch) | |
tree | 85e76fa462fd32f7f907ccc1061b8ba0e8be06d9 /libjava/java/lang | |
parent | 57183b55f4acaabaf095302c6ffda8cd73869417 (diff) | |
download | gcc-266321f1a78a43c4656090581fe82d47049b4bee.tar.gz |
2009-03-11 Andrew Haley <aph@redhat.com>
* java/lang/natClassLoader.cc (_Jv_RegisterClassHookDefault): Clear
INTERPRETED access modifier.
2009-03-11 Tom Tromey <tromey@redhat.com>
* link.cc (_Jv_Linker::find_field): Pass the field_type to
_Jv_CheckOrCreateLoadingConstraint, not the class that is
requesting the field.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144818 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/lang')
-rw-r--r-- | libjava/java/lang/natClassLoader.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libjava/java/lang/natClassLoader.cc b/libjava/java/lang/natClassLoader.cc index fac1e4dede0..237e038d1e7 100644 --- a/libjava/java/lang/natClassLoader.cc +++ b/libjava/java/lang/natClassLoader.cc @@ -380,6 +380,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; |