Fri May 12 17:51:26 2006 Søren Sandmann <sandmann@redhat.com>

Keep track of the previous item and update its next pointer when deleting
    from the linked list.
This commit is contained in:
Søren Sandmann Pedersen 2006-05-12 21:53:28 +00:00
parent 9e239a0df7
commit 6558ba4e62
2 changed files with 20 additions and 3 deletions

View File

@ -1,3 +1,9 @@
Fri May 12 17:51:26 2006 Søren Sandmann <sandmann@redhat.com>
* Xext/sync.c (SyncDeleteTriggerFromCounter): Keep track of the
previous item and update its next pointer when deleting from the
linked list.
2006-05-11 Matthias Hopf <mhopf@suse.de> 2006-05-11 Matthias Hopf <mhopf@suse.de>
* fb/fbpict.c: (fbComposite): * fb/fbpict.c: (fbComposite):

View File

@ -302,22 +302,33 @@ SyncDeleteTriggerFromCounter(pTrigger)
SyncTrigger *pTrigger; SyncTrigger *pTrigger;
{ {
SyncTriggerList *pCur; SyncTriggerList *pCur;
SyncTriggerList *pPrev;
/* pCounter needs to be stored in pTrigger before calling here. */ /* pCounter needs to be stored in pTrigger before calling here. */
if (!pTrigger->pCounter) if (!pTrigger->pCounter)
return; return;
for (pCur = pTrigger->pCounter->pTriglist; pCur; pCur = pCur->next) pPrev = NULL;
pCur = pTrigger->pCounter->pTriglist;
while (pCur)
{ {
if (pCur->pTrigger == pTrigger) if (pCur->pTrigger == pTrigger)
{ {
pTrigger->pCounter->pTriglist = pCur->next; if (pPrev)
pPrev->next = pCur->next;
else
pTrigger->pCounter->pTriglist = pCur->next;
xfree(pCur); xfree(pCur);
break; break;
} }
pPrev = pCur;
pCur = pCur->next;
} }
if (IsSystemCounter(pTrigger->pCounter)) if (IsSystemCounter(pTrigger->pCounter))
SyncComputeBracketValues(pTrigger->pCounter, /*startOver*/ TRUE); SyncComputeBracketValues(pTrigger->pCounter, /*startOver*/ TRUE);
} }