Commit 2e95a6c3 by Andrew Haley

[multiple changes]

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.

From-SVN: r144818
parent bbb52802
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> 2009-03-03 Andrew John Hughes <ahughes@redhat.com>
* Makefile.am: * Makefile.am:
......
...@@ -380,6 +380,15 @@ _Jv_RegisterClassHookDefault (jclass klass) ...@@ -380,6 +380,15 @@ _Jv_RegisterClassHookDefault (jclass klass)
if (! klass->engine) if (! klass->engine)
klass->engine = &_Jv_soleCompiledEngine; 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) if (system_class_list != SYSTEM_LOADER_INITIALIZED)
{ {
unsigned long abi = (unsigned long) klass->next_or_version; unsigned long abi = (unsigned long) klass->next_or_version;
......
...@@ -248,7 +248,7 @@ _Jv_Linker::find_field (jclass klass, jclass owner, ...@@ -248,7 +248,7 @@ _Jv_Linker::find_field (jclass klass, jclass owner,
// Note that the field returned by find_field_helper is always // Note that the field returned by find_field_helper is always
// resolved. However, we still use the constraint mechanism // resolved. However, we still use the constraint mechanism
// because this may affect other lookups. // because this may affect other lookups.
_Jv_CheckOrCreateLoadingConstraint (klass, (*found_class)->loader); _Jv_CheckOrCreateLoadingConstraint (field_type, (*found_class)->loader);
} }
else else
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment