On 04/01/11 18:48, Adriano dos Santos Fernandes wrote:
> On 01-04-2011 06:32, Alex Peshkoff wrote:
>>  On 04/01/11 07:15, Adriano dos Santos Fernandes wrote:
>>> On 31-03-2011 10:44, alexpeshk...@users.sourceforge.net wrote:
>>>> Modified: firebird/trunk/src/common/classes/ImplementHelper.h
>>>>  
>>>>  template <class C, int V, typename S = GlobalStorage>
>>>> -class StdIface : public Versioned<C, V, S>
>>>> +class StdIface : public C, public S
>>>>  {
>>>>  public:
>>>> -  StdIface() : refCounter(1) { }
>>>> +  StdIface() : refCounter(0) { }
>>>>  
>>> In my opinion this change makes ref counter even bad that it is. Objects
>>> must be created live, and not depend from addRef from the caller.
>> Adriano, what about this change - it's absolutely correct. New object
>> must be created by operator new with zero reference counter. Appropriate
>> addRef() is done when functions returns an object.
>>
> Why?
>
> Are you going also to make users call this to use the object:
> ITransaction* tra = attachment->startTransaction();
> tra->addRef();
>
> ?
Certainly not: addRef() is done by function, returning an object, i.e.
startTransaction().
 

------------------------------------------------------------------------------
Create and publish websites with WebMatrix
Use the most popular FREE web apps or write code yourself; 
WebMatrix provides all the features you need to develop and 
publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to