diff --git a/headers/private/shared/AutoDeleter.h b/headers/private/shared/AutoDeleter.h index 2c2c9d5cf7..429443b029 100644 --- a/headers/private/shared/AutoDeleter.h +++ b/headers/private/shared/AutoDeleter.h @@ -180,42 +180,32 @@ struct CObjectDeleter // MethodDeleter -template +template struct MethodDelete { inline void operator()(Type *object) { - if (fDestructor && object != NULL) - (object->*fDestructor)(); + if (object != NULL) + (object->*Destructor)(); } - - template - inline void operator=(Destructor destructor) - { - fDestructor = destructor; - } - -private: - DestructorReturnType (Type::*fDestructor)(); }; -template +template struct MethodDeleter - : AutoDeleter > + : AutoDeleter > { - typedef AutoDeleter > Base; + typedef AutoDeleter > Base; - template - MethodDeleter(Destructor destructor) : Base() + MethodDeleter() : Base() { - Base::fDelete = destructor; } - template - MethodDeleter(Type *object, Destructor destructor) : Base(object) + MethodDeleter(Type *object) : Base(object) { - Base::fDelete = destructor; } };