This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Ranjit> 2. Miranda methods are needed to work with older buggy VMs Ranjit> that need an implicit method declaration in an abstract Ranjit> class for a method from an implemented interface (right?).
An abstract class isn't required to declare methods inherited from
interfaces. However, when we build vtables these methods have to
come from somewhere. So, we introduce these fake Miranda methods to
make vtable construction work out right. We do this in the compiler
when generating .o files and in the runtime for other classes. So,
it isn't a compatibility thing -- it is really needed.
I'm not totally sure, but can't this be treated in the way that
multiple inheritance is in the C++ ABI? (Of which I know zilch,
so never mind...)
Ranjit> However, layout_class_methods() calls add_miranda_methods() Ranjit> anyways - so isn't the call on line 2097 made redundant by his Ranjit> patch?
I don't know, but it would appear so.
Hmmm... Bryce/Andrew - what're your thoughts on this?
I removed that line (i.e. 2097 in class.c) and recompiled
libjava and ran the testsuite (including Jacks), without
any regressions. Would anyone have any objections to
removing it?
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |