D pointers

George Staikos staikos at kde.org
Mon Oct 3 22:28:37 BST 2005


On Monday 03 October 2005 16:55, Michael Pyne wrote:
> On Monday 03 October 2005 12:11, George Staikos wrote:
> > On Monday 03 October 2005 05:47, Simon Hausmann wrote:
> > > Besides that it probably doesn't hurt for integers and other primitive
> > > types, but if you have more complex types you still waste constructor
> > > and destructor time on them even if they're unused.
> >
> >    You can replace them with POD filler.
>
> How do you ensure that the POD filler is always the same size as the object
> being replaced on all platforms though?

 Here's an example from KApplication:

  struct oldPixmapType { QPixmap a, b; };
  mutable union {
    struct {
      QPixmap *icon, *miniIcon;
    } pm;
    char unused[sizeof(oldPixmapType)];
  } aIconPixmap; // KDE4: remove me

  Here we were even able to reuse the space so we didn't need to add to the 
d-pointer.

-- 
George Staikos
KDE Developer				http://www.kde.org/
Staikos Computing Services Inc.		http://www.staikos.net/




More information about the kde-core-devel mailing list