[kaffe] circular linking difficulties
rob at kaffe.org
rob at kaffe.org
Mon Jun 28 14:17:35 PDT 2004
Hi Helmer,
For some reason your response didn't reach my mailboxes. It is here:
http://www.kaffe.org/pipermail/kaffe/2004-June/098608.html
I've copied the points that I'm going to respond to here.
mergeTypes() contains the following snippet:
mergeSupersets(v, t1, t2);
if (v->supertypes->count == 1) {
*t2 = *TOBJ;
}
else {
t2->tinfo = TINFO_SUPERTYPES;
t2->data.supertypes = v->supertypes;
return true;
}
Is this really correct? If supertypes->count is 1, this means
that both classes have a common superclass and that should be
the result of the merge, shouldn't it?
Good point. Fixed. Thanks!
> What puzzles me is that we already have the CSTATE_DOING_LINK phase
> during class loading, which seems to be what you want
[ rest of paragraph deleted ]
I agree, but it doesn't seem to be working. Kaffe is definitely choking
when a getClassFromSignature call calles loadClass to be called on a class
that is in the process of verification already. I have no idea why the
CSTATE_DOING_LINK isn't working...
> [have you tried setting "class->processingThread = THREAD_NATIVE ();"
> just after the "SET_CLASS_STATE(CSTATE_DOING_LINK);" in classMethod.c?]
Just tried it, and it didn't seem to help. In my previous post, I pointed
to a link where Tim had to actually create a new thread to get it to
work...it seems like something screwy is going on in the core, and I'm
having real trouble putting my finger on it :(
Rob
More information about the kaffe
mailing list