Go to the FreeLists Home Page Home Signup Help Login
 



[openbeosnetteam] || [Date Prev] [11-2002 Date Index] [Date Next] || [Thread Prev] [11-2002 Thread Index] [Thread Next]

[openbeosnetteam] Re: NetDebug.h break BC

  • From: Scott Mansfield <ThePhantom@xxxxxxx>
  • To: openbeosnetteam@xxxxxxxxxxxxx
  • Date: Wed, 13 Nov 2002 09:32:35 -0800
On Wednesday 13 November 2002 09:02 am, Philippe Houdoin wrote:
> Quoting Scott Mansfield:
> > And so will NetAddress and NetDebug, and NetEndpoint (which I haven't
> > submitted to Philippe yet) be similarily broken.
>
> Hum, NetDebug.h seem to be BC. Short as this class is, it's a gift!
> ;-)

Doh!  You're right, my bad.

> Dunno yet about NetAddress.h, but yeah, I guess it break BC too.

Trust me, it will be.  :-/

> > > - the protected status_t m_init should be somewhere.
> > > I guess fInitialized make a good candidate to be replace by
> >
> > m_init...
> >
> > Yes, you are correct, I was following the opentracker coding standard as
> > suggested by the project pages.
>
> Yes, that unfortunate, but protected variables should keep their name.
> Mixed m_* and f* variables names. Glup.
> Bah.



> > My understanding is that private methods and data can be changed at will
> > without breaking binary compatibility.  Honestly, though, I don't
> > remember whether private virtual methods will show up in the
> > vtable or not.  I'll do a little digging when I get home tonight.
>
> Welcome onboard, I did know nothing about BC until last or two weeks ago!
> When Marcus tell me about NetBuffer.h broken BC.
> It's not like these classes are the most used and wanted.
> Many OBOS interface and app classes have broken BC too.
>
> The good news is: when BC issues raise, we're getting closer, that's for
> sure.
>
> > > - And what about the newly added protected variables fData,
> >
> > fDataSize,
> >
> > > fStackSize, fCapacity? No issue here?
> >
> > What I did was to add these variables and at the same time, decrease the
> > number of elements in the private member array (the name escapes me at
> > the moment).  The binary size of the class would remain the same.
>
> AFAIR, the size remains the same.
> But why making these 4 variables protected instead of private?
> Does your BNetEndpoint implementation exploit these protected members
> in some way?

No, BNetEndpoint doesn't.

I made these protected for convenience of implementation and inheritance -- 
should someone decide to extend this class with their own implementation and 
need access to the stack controllers.  Since, in the interest of binary 
compatibility, I couldn't write accessors and mutators for these member 
variables (which is, AFAIK, the generally accepted way to allow access to 
member data; please correct me if I'm wrong here) without breaking the class' 
signature, I made them protected.

If you want, I'll fix 'em.  After all, I'm the idiot that broke them in the 
first place...

> -Philippe "mailing-list awaker :-p" Houdoin

Scott "still workin' on my morning coffee" Mansfield





[ Home | Signup | Help | Login | Archives | Lists ]

All trademarks and copyrights within the FreeLists archives are owned by their respective owners.
Everything else ©2007 Avenir Technologies, LLC.