From 682b88ac644be23e8927f65c4884cd6671097282 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Thu, 20 Jan 2005 20:13:36 +0100 Subject: [PATCH] Updated change_backend_for_box() to unlink the box from the old backend. Rev: src/backend.cmod:1.163 --- src/backend.cmod | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/backend.cmod b/src/backend.cmod index cbb86a9c41..4cf8ec37f6 100644 --- a/src/backend.cmod +++ b/src/backend.cmod @@ -5,7 +5,7 @@ */ /* - * $Id: backend.cmod,v 1.162 2005/01/20 18:26:46 grubba Exp $ + * $Id: backend.cmod,v 1.163 2005/01/20 19:13:36 grubba Exp $ * * Backend object. */ @@ -1866,6 +1866,17 @@ PIKECLASS Backend if (old != new) { if (box->fd >= 0) update_fd_set (old, box->fd, box->events, 0); remove_fd_box (box); + if (box->next) { + /* The box is active in the old backend. Unlink it. */ + struct fd_callback_box *pred = box->next; + /* Find the predecessor. */ + while (pred->next != box) { + pred = pred->next; + } + pred->next = box->next; + box->next = NULL; + if (box->ref_obj) free_object(box->ref_obj); + } box->backend = new; add_fd_box (box); if (box->fd >= 0) update_fd_set (new, box->fd, 0, box->events); -- GitLab