aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libjava/ChangeLog11
-rw-r--r--libjava/java/lang/natClassLoader.cc9
-rw-r--r--libjava/link.cc2
3 files changed, 21 insertions, 1 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 2408ebffd74..6d33fdda55f 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,14 @@
+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.
+
2009-03-03 Andrew John Hughes <ahughes@redhat.com>
* Makefile.am:
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;
diff --git a/libjava/link.cc b/libjava/link.cc
index c07b6e15c1c..25114085bfc 100644
--- a/libjava/link.cc
+++ b/libjava/link.cc
@@ -248,7 +248,7 @@ _Jv_Linker::find_field (jclass klass, jclass owner,
// Note that the field returned by find_field_helper is always
// resolved. However, we still use the constraint mechanism
// because this may affect other lookups.
- _Jv_CheckOrCreateLoadingConstraint (klass, (*found_class)->loader);
+ _Jv_CheckOrCreateLoadingConstraint (field_type, (*found_class)->loader);
}
else
{