Patch: FYI: PR 5670 patch
Tom Tromey
tromey@redhat.com
Thu Feb 14 09:48:00 GMT 2002
I'm checking this in.
This is a slightly modified version of the patch from PR 5670.
I've already checked in a Mauve verifier test for this.
Tom
Index: ChangeLog
from Todd Stock <toddastock@yahoo.com>
Fix for PR libgcj/5670:
* verify.cc (is_assignable_from_slow): If `source' is interface,
recursively look for merge with `target'.
Index: verify.cc
===================================================================
RCS file: /cvs/gcc/gcc/libjava/verify.cc,v
retrieving revision 1.36
diff -u -r1.36 verify.cc
--- verify.cc 2002/02/13 17:12:27 1.36
+++ verify.cc 2002/02/14 17:46:32
@@ -259,10 +259,22 @@
if (source == NULL)
return false;
}
+ else if (source->isInterface ())
+ {
+ for (int i = 0; i < target->interface_count; ++i)
+ {
+ // We use a recursive call because we also need to
+ // check superinterfaces.
+ if (is_assignable_from_slow (target->interfaces[i], source))
+ return true;
+ }
+ target = target->getSuperclass ();
+ if (target == NULL)
+ return false;
+ }
else if (target == &java::lang::Object::class$)
return true;
- else if (source->isInterface ()
- || source == &java::lang::Object::class$)
+ else if (source == &java::lang::Object::class$)
return false;
else
source = source->getSuperclass ();
More information about the Java-patches
mailing list