From f53dea81d4ba165a92f447cc2d2eb49656a54a2c Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Sat, 26 May 2012 14:18:34 +0200 Subject: [PATCH] CtdlUnregisterRoomHook(): second try. --- citadel/serv_extensions.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/citadel/serv_extensions.c b/citadel/serv_extensions.c index fe15aa785..0553e34a9 100644 --- a/citadel/serv_extensions.c +++ b/citadel/serv_extensions.c @@ -758,10 +758,9 @@ void CtdlRegisterRoomHook(int (*fcn_ptr)(struct ctdlroom *)) void CtdlUnregisterRoomHook(int (*fcn_ptr)(struct ctdlroom *)) { RoomFunctionHook *cur, *p, *last; - - for (last = NULL, cur = RoomHookTable; - cur != NULL; - cur = cur->next) + last = NULL; + cur = RoomHookTable; + while (cur != NULL) { if (fcn_ptr == cur->fcn_ptr) { MODM_syslog(LOG_DEBUG, "Unregistered room function\n"); @@ -774,8 +773,12 @@ void CtdlUnregisterRoomHook(int (*fcn_ptr)(struct ctdlroom *)) last->next = p; else RoomHookTable = p; + cur = p; } last = cur; + if (cur != NULL) + cur = cur->next; + } } -- 2.30.2