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
This commit is contained in:
parent
cde3018236
commit
12e989bdf3
43
include/wx/qt/private/pointer.h
Normal file
43
include/wx/qt/private/pointer.h
Normal file
@ -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 <QtCore/QPointer>
|
||||||
|
|
||||||
|
// 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_
|
Loading…
Reference in New Issue
Block a user