]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
Eradicate grub_list_insert
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Fri, 26 Mar 2010 19:00:06 +0000 (20:00 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Fri, 26 Mar 2010 19:00:06 +0000 (20:00 +0100)
include/grub/list.h
kern/list.c

index 2fd418acac762d2ec7178bc7593772487143468e..73d51be1273fe89aeeac41289b5d2ae3524752e6 100644 (file)
@@ -36,8 +36,6 @@ typedef int (*grub_list_test_t) (grub_list_t new_item, grub_list_t item);
 void EXPORT_FUNC(grub_list_push) (grub_list_t *head, grub_list_t item);
 void * EXPORT_FUNC(grub_list_pop) (grub_list_t *head);
 void EXPORT_FUNC(grub_list_remove) (grub_list_t *head, grub_list_t item);
-void EXPORT_FUNC(grub_list_insert) (grub_list_t *head, grub_list_t item,
-                                   grub_list_test_t test);
 
 #define FOR_LIST_ELEMENTS(var, list) for ((var) = (list); (var); (var) = (var)->next)
 
index 507d13f8657a196f1eea73b1c9a57a37b8c4a6f5..5b0248129209bbeea1648bcc12256b0a29d191fa 100644 (file)
@@ -53,20 +53,6 @@ grub_list_remove (grub_list_t *head, grub_list_t item)
       }
 }
 
-void
-grub_list_insert (grub_list_t *head, grub_list_t item,
-                 grub_list_test_t test)
-{
-  grub_list_t *p, q;
-
-  for (p = head, q = *p; q; p = &(q->next), q = q->next)
-    if (test (item, q))
-      break;
-
-  *p = item;
-  item->next = q;
-}
-
 void *
 grub_named_list_find (grub_named_list_t head, const char *name)
 {
@@ -84,27 +70,30 @@ grub_prio_list_insert (grub_prio_list_t *head, grub_prio_list_t nitem)
 {
   int inactive = 0;
 
-  auto int test (grub_prio_list_t new_item, grub_prio_list_t item);
-  int test (grub_prio_list_t new_item, grub_prio_list_t item)
+  grub_prio_list_t *p, q;
+    
+  for (p = head, q = *p; q; p = &(q->next), q = q->next)
     {
       int r;
 
-      r = grub_strcmp (new_item->name, item->name);
-      if (r)
-       return (r < 0);
+      r = grub_strcmp (nitem->name, q->name);
+      if (r < 0)
+       break;
+      if (r > 0)
+       continue;
 
-      if (new_item->prio >= (item->prio & GRUB_PRIO_LIST_PRIO_MASK))
+      if (nitem->prio >= (q->prio & GRUB_PRIO_LIST_PRIO_MASK))
        {
-         item->prio &= ~GRUB_PRIO_LIST_FLAG_ACTIVE;
-         return 1;
+         q->prio &= ~GRUB_PRIO_LIST_FLAG_ACTIVE;
+         break;
        }
 
       inactive = 1;
-      return 0;
     }
 
-  grub_list_insert (GRUB_AS_LIST_P (head), GRUB_AS_LIST (nitem),
-                   (grub_list_test_t) test);
+  *p = nitem;
+  nitem->next = q;
+
   if (! inactive)
     nitem->prio |= GRUB_PRIO_LIST_FLAG_ACTIVE;
 }