From mboxrd@z Thu Jan 1 00:00:00 1970 From: rmccabe@sourceware.org Date: 4 Sep 2007 18:30:47 -0000 Subject: [Cluster-devel] conga/ricci/include counting_auto_ptr.cpp coun ... Message-ID: <20070904183047.20978.qmail@sourceware.org> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit CVSROOT: /cvs/cluster Module name: conga Changes by: rmccabe at sourceware.org 2007-09-04 18:30:46 Modified files: ricci/include : counting_auto_ptr.cpp counting_auto_ptr.h Log message: don't dynamically allocate the reference counter int on the heap Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/include/counting_auto_ptr.cpp.diff?cvsroot=cluster&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/include/counting_auto_ptr.h.diff?cvsroot=cluster&r1=1.2&r2=1.3 --- conga/ricci/include/counting_auto_ptr.cpp 2007/08/31 13:32:36 1.2 +++ conga/ricci/include/counting_auto_ptr.cpp 2007/09/04 18:30:46 1.3 @@ -29,7 +29,7 @@ _ptr(ptr) { try { - _counter = new int(1); + _counter = 1; } catch ( ... ) { delete _ptr; throw; @@ -39,7 +39,6 @@ _mutex = new Mutex(); } catch ( ... ) { delete _ptr; - delete _counter; throw; } }; @@ -51,7 +50,7 @@ _ptr = o._ptr; _mutex = o._mutex; _counter = o._counter; - (*_counter)++; + _counter++; }; template @@ -64,7 +63,7 @@ _ptr = o._ptr; _mutex = o._mutex; _counter = o._counter; - (*_counter)++; + _counter++; } return *this; }; @@ -82,11 +81,10 @@ bool last = false; { MutexLocker l(*_mutex); - last = (--(*_counter) == 0); + last = (--_counter == 0); } if (last) { - delete _counter; delete _ptr; delete _mutex; } --- conga/ricci/include/counting_auto_ptr.h 2007/08/31 13:32:36 1.2 +++ conga/ricci/include/counting_auto_ptr.h 2007/09/04 18:30:46 1.3 @@ -47,7 +47,7 @@ private: X* _ptr; Mutex* _mutex; - int* _counter; + int _counter; void decrease_counter(); };