diff --git a/src/kits/app/Handler.cpp b/src/kits/app/Handler.cpp index 988dd89e46..88f2a2b6a3 100644 --- a/src/kits/app/Handler.cpp +++ b/src/kits/app/Handler.cpp @@ -206,6 +206,19 @@ BHandler::BHandler(const char *name) BHandler::~BHandler() { + // remove all filters + if (fFilters) { + int32 count = fFilters->CountItems(); + for (int32 i = 0; i < count; i++) + delete (BMessageFilter*)fFilters->ItemAtFast(i); + delete fFilters; + } + // remove all observers + if (fObserverList) { + // TODO ... ?!? + delete fObserverList; + } + // free rest free(fName); gDefaultTokens.RemoveToken(fToken); }