diff --git a/glib/glist.c b/glib/glist.c index f75e2af1a..91794d993 100644 --- a/glib/glist.c +++ b/glib/glist.c @@ -310,28 +310,24 @@ g_list_insert (GList *list, { GList *new_list; GList *tmp_list; - + if (position < 0) return g_list_append (list, data); else if (position == 0) return g_list_prepend (list, data); - + tmp_list = g_list_nth (list, position); if (!tmp_list) return g_list_append (list, data); - + new_list = _g_list_alloc (); new_list->data = data; new_list->prev = tmp_list->prev; - if (tmp_list->prev) - tmp_list->prev->next = new_list; + tmp_list->prev->next = new_list; new_list->next = tmp_list; tmp_list->prev = new_list; - - if (tmp_list == list) - return new_list; - else - return list; + + return list; } /** diff --git a/glib/gslist.c b/glib/gslist.c index 6a11669c5..e99971e8e 100644 --- a/glib/gslist.c +++ b/glib/gslist.c @@ -316,16 +316,8 @@ g_slist_insert (GSList *list, tmp_list = tmp_list->next; } - if (prev_list) - { - new_list->next = prev_list->next; - prev_list->next = new_list; - } - else - { - new_list->next = list; - list = new_list; - } + new_list->next = prev_list->next; + prev_list->next = new_list; return list; }