summaryrefslogtreecommitdiff
path: root/libpager
diff options
context:
space:
mode:
authorMiles Bader <miles@gnu.org>1996-03-06 23:10:30 +0000
committerMiles Bader <miles@gnu.org>1996-03-06 23:10:30 +0000
commit2644dff68f07d9bf27bf3a1c7936e48aae282fac (patch)
tree04441f39ddafa822148928ed64444518adbe2d76 /libpager
parent5aea9288fa4ab2c1fee38f6226f214e11e5a9984 (diff)
(pager_change_attributes):
Correctly remove AR from P's linked list of attribute change requests.
Diffstat (limited to 'libpager')
-rw-r--r--libpager/pager-attr.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libpager/pager-attr.c b/libpager/pager-attr.c
index 762bb971..cbc1533f 100644
--- a/libpager/pager-attr.c
+++ b/libpager/pager-attr.c
@@ -1,5 +1,5 @@
/* Changing pager attributes synchronously
- Copyright (C) 1994 Free Software Foundation
+ Copyright (C) 1994, 1996 Free Software Foundation
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
@@ -84,9 +84,12 @@ pager_change_attributes (struct pager *p,
{
while (ar->attrs_pending)
condition_wait (&p->wakeup, &p->interlock);
- if (!--ar->threads_waiting)
+
+ if (! --ar->threads_waiting)
{
*ar->prevp = ar->next;
+ if (ar->next)
+ ar->next->prevp = ar->prevp;
free (ar);
}
}