Paul Sandoz wrote:
> That could be true. I did not think of that. I am not sure what the
> difference in calling would be between an abstract method and an
> interface method, or even a overridden non-final method. I know that
> making methods final, or the concrete class final, can make a difference.
I think the methods on the abstract class can be called like
struct Object {
class* clazz;
}
struct clazz {
void* methodTable[];
}
pObj->clazz.methodTable[<%methodIndex%>];
but the method on an interface needs to be called as
pObj->clazz.getMethodTable(<%interfaceType%>)[<%methodIndex%>];
So there's additional indirection involved here. (I'm just guessing though).
> We can measure the performance difference between two different builds
> to see if it makes a difference.
Don't worry. I think your change is a better design.
>> I didn't see your commit messages to the jaxb2-sources project. Are
>> these changes committed?
>>
>
> Not yet, I was waiting for a reply from you to say it was A-OK :-) For
> now i will avoid committing any direct FI functionality. I will do this
> today.
Thanks.
--
Kohsuke Kawaguchi
Sun Microsystems kohsuke.kawaguchi_at_sun.com