[openbeos] Re: screen saver kit bin incompatibility

On 2004-02-09 at 22:58:29 [+0100], François Revol wrote:
> > "François Revol" <revol@xxxxxxx> wrote:
> > > And our implementation uses those mangled names...
> > > This obviously won't work.
> > 
> > Where does it use them?
> In the addons !
> Really no idea why they need those, isn't ld suppose to only undefine
> things that are needed ?
> 
> [revol@patrick ~/devel/SS]$ nm /boot/home/config/add-ons/Screen\ Savers
> /AttackOfTheKillerBAlerts|grep ReservedScreen
>          U ReservedScreenSaver1__12BScreenSaver
>          U ReservedScreenSaver2__12BScreenSaver
>          U ReservedScreenSaver3__12BScreenSaver
>          U ReservedScreenSaver4__12BScreenSaver
>          U ReservedScreenSaver5__12BScreenSaver
>          U ReservedScreenSaver6__12BScreenSaver
>          U ReservedScreenSaver7__12BScreenSaver
>          U ReservedScreenSaver8__12BScreenSaver

When you subclass a class all slots in the vtable of your derived class 
must be filled in. So, if you don't override those methods (which you can't 
do without hacking, since they are private) the vtable will refer to the 
base classes symbols. That's one of the points where care must be taken, 
when designing a class that shall be binary compatibility-wise 
future-proof: You have to override any method that you potentially want to 
override in the future.

But I still don't see what the original problem is.

CU, Ingo

Other related posts: