From 731b9ac77caa0c62fa01da543ef83ac5007dcfe2 Mon Sep 17 00:00:00 2001 From: Karsten Heimrich Date: Fri, 11 Jul 2008 20:07:00 +0000 Subject: [PATCH] * If a handler goes away that has an looper, we should remove us from the loppers fHandlers list, otherwise we might end up with a dangeling pointer. This should fix the crashes seen in Cortex and Icon-O-Matic on app close. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26383 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/app/Handler.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/kits/app/Handler.cpp b/src/kits/app/Handler.cpp index 5896cce3c1..163a37909e 100644 --- a/src/kits/app/Handler.cpp +++ b/src/kits/app/Handler.cpp @@ -131,6 +131,11 @@ BHandler::BHandler(const char *name) BHandler::~BHandler() { + if (LockLooper()) { + Looper()->RemoveHandler(this); + UnlockLooper(); + } + // remove all filters if (fFilters) { int32 count = fFilters->CountItems();