List:MySQL++« Previous MessageNext Message »
From:Warren Young Date:August 15 2007 6:27am
Subject:Eyeballs needed on new reference counted pointer template
View as plain text  
Smart pointers are tricky, and automatic memory management is even 
trickier, and I just created a template that does both.  I swapped it in 
for existing code in MySQL++ that used value semantics and it passes the 
test suite, but I'd still appreciate someone else taking a look at it.

http://svn.gna.org/viewcvs/mysqlpp/trunk/lib/refcounted.h?view=markup

This is part of a general effort toward improving the way MySQL++ 
handles memory and object copies.

The particular need that sparked the creation of this template is that 
in released MySQL++ versions, you cannot use a Row object after the 
Result/ResUse object that created it is destroyed or reused itself. 
This doesn't seem to catch too many newbies, but we do see it from time 
to time.

I built a similar, but more primitive, mechanism last week for ColData, 
which should improve performance of field access greatly: v2.3 copied 
each field two or three times on every access, because it had to do 
everything with value semantics to avoid similar problems to the one 
described above.  I hope to move ColData's buffer management to this new 
template, but I'm not yet certain how it's going to work yet.

And yes, I am aware that this wheel has already been invented.  It's in 
Boost, for instance, but the last time I brought up the possibility of 
making Boost a dependency of MySQL++, it was shot down so violently that 
the detritus from the explosion settled in a thin even layer of powdery 
ash over six counties.
Thread
Eyeballs needed on new reference counted pointer templateWarren Young15 Aug
  • Re: Eyeballs needed on new reference counted pointer templateChris Frey15 Aug
    • Re: Eyeballs needed on new reference counted pointer templateWarren Young16 Aug
  • Re: Eyeballs needed on new reference counted pointer templateAlex Burton15 Aug
    • Re: Eyeballs needed on new reference counted pointer templateWarren Young16 Aug
  • Re: Eyeballs needed on new reference counted pointer templateJoseph Artsimovich15 Aug
    • Re: Eyeballs needed on new reference counted pointer templateJonathan Wakely16 Aug
      • Re: Eyeballs needed on new reference counted pointer templateWarren Young16 Aug
        • Re: Eyeballs needed on new reference counted pointer templateJonathan Wakely18 Aug
          • Re: Eyeballs needed on new reference counted pointer templateJonathan Wakely18 Aug
          • Re: Eyeballs needed on new reference counted pointer templateWarren Young20 Aug
    • Re: Eyeballs needed on new reference counted pointer templateWarren Young16 Aug
  • RE: Eyeballs needed on new reference counted pointer templateJoel Fielder15 Aug
    • Re: Eyeballs needed on new reference counted pointer templateWarren Young16 Aug
  • Re: Eyeballs needed on new reference counted pointer templateRobert Mecklenburg15 Aug
    • Re: Eyeballs needed on new reference counted pointer templateGraham Reitz15 Aug
    • Re: Eyeballs needed on new reference counted pointer templateGraham Reitz15 Aug
    • Re: Eyeballs needed on new reference counted pointer templateWarren Young16 Aug
  • Re: Eyeballs needed on new reference counted pointer templateGraham Reitz15 Aug