From: <hv...@us...> - 2012-03-30 14:15:18
|
Revision: 54288 http://firebird.svn.sourceforge.net/firebird/?rev=54288&view=rev Author: hvlad Date: 2012-03-30 14:15:08 +0000 (Fri, 30 Mar 2012) Log Message: ----------- Small refactoring Modified Paths: -------------- firebird/trunk/src/common/classes/ImplementHelper.h firebird/trunk/src/common/classes/auto.h Modified: firebird/trunk/src/common/classes/ImplementHelper.h =================================================================== --- firebird/trunk/src/common/classes/ImplementHelper.h 2012-03-30 13:52:11 UTC (rev 54287) +++ firebird/trunk/src/common/classes/ImplementHelper.h 2012-03-30 14:15:08 UTC (rev 54288) @@ -44,17 +44,7 @@ // If you need interface on stack, use template AutoPtr<YourInterface, AutoDisposable> // as second parameter to store it. -class AutoDisposable -{ -public: - static void clear(IDisposable* ptr) - { - if (ptr) - { - ptr->dispose(); - } - } -}; +typedef SimpleDispose<IDisposable> AutoDisposable; // Implement standard interface and plugin functions Modified: firebird/trunk/src/common/classes/auto.h =================================================================== --- firebird/trunk/src/common/classes/auto.h 2012-03-30 13:52:11 UTC (rev 54287) +++ firebird/trunk/src/common/classes/auto.h 2012-03-30 14:15:08 UTC (rev 54288) @@ -69,6 +69,21 @@ } }; + +template <typename T> +class SimpleDispose +{ +public: + static void clear(T* ptr) + { + if (ptr) + { + ptr->dispose(); + } + } +}; + + template <typename Where, typename Clear = SimpleDelete<Where> > class AutoPtr { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |