Fix memory leaks.

This commit is contained in:
castano
2007-08-06 19:48:52 +00:00
parent 6cdfaaca58
commit ee28a5a37b
4 changed files with 24 additions and 14 deletions

View File

@ -29,10 +29,11 @@ class AutoPtr
NV_FORBID_HEAPALLOC();
public:
/** Ctor. */
explicit AutoPtr( T * p ) {
m_ptr = p;
}
/// Default ctor.
AutoPtr() : m_ptr(NULL) { }
/// Ctor.
explicit AutoPtr( T * p ) : m_ptr(p) { }
/** Dtor. Deletes owned pointer. */
~AutoPtr() {
@ -69,13 +70,23 @@ public:
}
/** Const pointer equal comparation. */
bool operator == (const T * const p) const {
return (m_ptr == p);
friend bool operator == (const AutoPtr<T> & ap, const T * const p) {
return (ap.ptr() == p);
}
/** Const pointer nequal comparation. */
bool operator != (const T * const p) const {
return (m_ptr != p);
friend bool operator != (const AutoPtr<T> & ap, const T * const p) {
return (ap.ptr() != p);
}
/** Const pointer equal comparation. */
friend bool operator == (const T * const p, const AutoPtr<T> & ap) {
return (ap.ptr() == p);
}
/** Const pointer nequal comparation. */
friend bool operator != (const T * const p, const AutoPtr<T> & ap) {
return (ap.ptr() != p);
}
private: