[haiku-commits] Re: r37275 - in haiku/trunk: headers/os/opengl src/kits/opengl

  • From: "Axel Dörfler" <axeld@xxxxxxxxxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 28 Jun 2010 10:36:32 +0200

Philippe Houdoin <philippe.houdoin@xxxxxxxxx> wrote:
> > Don't remember such an instance, but didn't Be itself change a 
> > char* to
> > const char* in one of the BMessage methods for Dano and that didn't 
> > break
> > binary compatibility?
> Would be interresting to see how they did it then.
> Maybe they just publish both constructors, but I fail to see how the
> compiler could allow way too similars constructor prototypes.

It's pretty easy to do, actually, at least if the method is non-
virtual; you change the signature, but you still have to export the 
former symbol manually.
In this case, you would probably make the old constructor private, and 
simply add the new one.

> > I thought "const" in particular is purely a hint for
> > the compiler regarding what is allowed and what isn't, but I have 
> > no clue.
> IIRC, the const attribute is mangled as K prefix letter.
> I'll check with gcc 4, but I can't with gcc 2.95.3 until tonigh.

It's definitely part of the signature - you can have a look at the 
demangle tool, or just use "nm" (without the demangling option) to see 
how a C++ name is mangled.

Bye,
   Axel.


Other related posts: