]> jfr.im git - irc/blitzed-org/libopm.git/commitdiff
list_remove no longer searches for node in list
authorstrtok <redacted>
Thu, 19 Jun 2003 23:13:20 +0000 (23:13 +0000)
committerstrtok <redacted>
Thu, 19 Jun 2003 23:13:20 +0000 (23:13 +0000)
src/list.c

index 92146db1794dfdbf7e4c56bf3c5ae265de882695..72ad43485eb6d05b1d4652a8168b2a188aa6ea8f 100644 (file)
@@ -93,34 +93,21 @@ OPM_NODE_T *libopm_list_remove(OPM_LIST_T *list, OPM_NODE_T *node)
          node->next->prev = NULL;
       else
          list->tail = NULL;
-      list->elements--;
-
-      return node;
    }
    else if(node == list->tail)
    {
       list->tail = list->tail->prev;
       list->tail->next = NULL;
-  
-      list->elements--;
-
-      return node;
    }
-
-
-   for(p = list->head; p != NULL; p = p->next)
+   else
    {
-      if(p == node)
-      {        
-         p->prev->next = p->next;
-         p->next->prev = p->prev;
-         list->elements--;
-         return p;
-      }
+      node->prev->next = node->next;
+      node->next->prev = node->prev;
+      list->elements--;
    }
 
-   return NULL;
+   list->elements--;
+   return node;
 }
 
 void libopm_list_free(OPM_LIST_T *list)