diff --git a/headers/private/shared/AutoDeleter.h b/headers/private/shared/AutoDeleter.h index 24825dd765..2c2c9d5cf7 100644 --- a/headers/private/shared/AutoDeleter.h +++ b/headers/private/shared/AutoDeleter.h @@ -149,41 +149,31 @@ struct MemoryDeleter : AutoDeleter // CObjectDeleter -template +template struct CObjectDelete { inline void operator()(Type *object) { - if (fDestructor != NULL && object != NULL) - fDestructor(object); + if (object != NULL) + Destructor(object); } - - template - inline void operator=(Destructor destructor) - { - fDestructor = destructor; - } - -private: - DestructorReturnType (*fDestructor)(Type*); }; -template +template struct CObjectDeleter - : AutoDeleter > + : AutoDeleter > { - typedef AutoDeleter > Base; + typedef AutoDeleter > Base; - template - CObjectDeleter(Destructor destructor) : Base() + CObjectDeleter() : Base() { - Base::fDelete = destructor; } - template - CObjectDeleter(Type *object, Destructor destructor) : Base(object) + CObjectDeleter(Type *object) : Base(object) { - Base::fDelete = destructor; } };