From 12e989bdf35c2fbac00b8056df1de21701851816 Mon Sep 17 00:00:00 2001 From: Peter Most Date: Tue, 16 Sep 2014 12:50:57 +0000 Subject: [PATCH] Re-added wxQtPointer smart pointer for easier memory management. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77714 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/qt/private/pointer.h | 43 +++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 include/wx/qt/private/pointer.h diff --git a/include/wx/qt/private/pointer.h b/include/wx/qt/private/pointer.h new file mode 100644 index 0000000000..6079a66cd8 --- /dev/null +++ b/include/wx/qt/private/pointer.h @@ -0,0 +1,43 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: wx/qt/private/pointer.h +// Author: Peter Most +// Copyright: (c) Peter Most +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#ifndef _WX_QT_POINTER_H_ +#define _WX_QT_POINTER_H_ + +#include + +// Extend QPointer with the ability to delete the object in its destructor. The +// normal behaviour of the QPointer makes sure that this is safe, because if somebody +// has deleted the object, then data() returns NULL and delete does nothing. + +template < typename T > +class wxQtPointer : public QPointer< T > +{ +public: + inline wxQtPointer() + : QPointer< T >() + { + } + + inline wxQtPointer( T *p ) + : QPointer< T >( p ) + { + } + + inline wxQtPointer< T > &operator = ( T *p ) + { + QPointer< T >::operator = ( p ); + return *this; + } + + inline ~wxQtPointer() + { + delete QPointer< T >::data(); + } +}; + +#endif // _WX_QT_POINTER_H_