From: Wilfried Goesgens Date: Sat, 26 May 2012 12:18:34 +0000 (+0200) Subject: CtdlUnregisterRoomHook(): second try. X-Git-Tag: v8.12~56 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=f53dea81d4ba165a92f447cc2d2eb49656a54a2c CtdlUnregisterRoomHook(): second try. --- 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; + } }