List:MySQL++« Previous MessageNext Message »
From:Warren Young Date:December 1 2007 6:36am
Subject:Re: Eyeballs needed on new reference counted pointer template
View as plain text  
Jonathan Wakely wrote:
> On 29/11/2007, Warren Young <mysqlpp@stripped> wrote:
>>   And in
>> the assign(T*) case, I'm pretty sure assigning the same pointer will
>> result in a double-delete.  I've added explicit checks to both assign()
>> overloads.
> 
> Forgot to answer this bit ... that can only happen as a result of a
> stupid programming error, you'd have to say:   p1.assign( p2.get() )
> so it's pretty obvious you've just made p1 and p2 own the same
> resource, but without sharing a refcount. 

Oh, crumb...This is the very error I foresaw when I decided the guard 
was necessary for the T* case, but in processing your previous message, 
I convinced myself it couldn't happen.

Actually, I conceived of it happening a little more verbosely:

	Foo* bar = something_that_makes_foos();
	... many fascinating and interesting things happen here ...
	RefCountedPointer<Foo> qux(bar);
	... still other stuff happens ...
	qux = bar;	// who knows why, but say you do this...

Still unlikely, I admit...

I guess I'm satisfied leaving it unprotected until a need for protection 
is demonstrated.

> I probably should have added comments to explain some of the code ...

It's always a third party that tells you how extensive the documentation 
needs to be.  I'd only expect excellent documentation from you on these 
patches about six months from now when you are new to it again.

I discover lapses and even outright errors in the userman, for example, 
almost every time I reread a section of it.  That's one reason I do it.
Thread
Re: Eyeballs needed on new reference counted pointer templateWarren Young29 Nov
  • Re: Eyeballs needed on new reference counted pointer templateJoseph Artsimovich29 Nov
    • Re: Eyeballs needed on new reference counted pointer templateWarren Young29 Nov
      • Re: Eyeballs needed on new reference counted pointer templateJonathan Wakely30 Nov
        • Re: Eyeballs needed on new reference counted pointer templateWarren Young1 Dec
  • Re: Eyeballs needed on new reference counted pointer templateJonathan Wakely30 Nov
    • Re: Eyeballs needed on new reference counted pointer templateWarren Young1 Dec
  • Re: Eyeballs needed on new reference counted pointer templateJonathan Wakely30 Nov
    • Re: Eyeballs needed on new reference counted pointer templateWarren Young1 Dec