]> Pileus Git - ~andy/gtk/commitdiff
Provide a fast path returning NULL when the limit is set to 0.
authorEmmanuele Bassi <ebassi@gnome.org>
Thu, 16 Nov 2006 09:57:45 +0000 (09:57 +0000)
committerEmmanuele Bassi <ebassi@src.gnome.org>
Thu, 16 Nov 2006 09:57:45 +0000 (09:57 +0000)
2006-11-16  Emmanuele Bassi  <ebassi@gnome.org>

* gtk/gtkrecentmanager.c: Provide a fast path returning
NULL when the limit is set to 0.

* gtk/gtkrecentchooserdefault.c:
* gtk/gtkrecentchoosermenu.c: Add the same fast path
inside the RecentChooser implementation; add a check
in the list clamping code. (#373466 and duplicates)

ChangeLog
gtk/gtkrecentchooserdefault.c
gtk/gtkrecentchoosermenu.c
gtk/gtkrecentmanager.c

index 5c5ccd61a8e99935a647c56190648be1542d4082..4b2d6bd8a58a5f95c054c8152206e1020f749002 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2006-11-16  Emmanuele Bassi  <ebassi@gnome.org>
+
+       * gtk/gtkrecentmanager.c: Provide a fast path returning
+       NULL when the limit is set to 0.
+
+       * gtk/gtkrecentchooserdefault.c:
+       * gtk/gtkrecentchoosermenu.c: Add the same fast path
+       inside the RecentChooser implementation; add a check
+       in the list clamping code. (#373466 and duplicates)
+
 2006-11-15  Matthias Clasen  <mclasen@redhat.com>
 
        * modules/printbackends/cups/gtkprintbackendcups.c (cups_printer_get_options): 
index fe8575e2850b18207dbd32a0ea26744622f7e8ff..9a64f80d13dbdaf4f8b0c468849b527731df92a1 100644 (file)
@@ -1302,8 +1302,10 @@ gtk_recent_chooser_default_get_items (GtkRecentChooser *chooser)
     return NULL;
  
   limit = gtk_recent_chooser_get_limit (chooser);
-  sort_type = gtk_recent_chooser_get_sort_type (chooser);
+  if (limit == 0)
+    return NULL;
 
+  sort_type = gtk_recent_chooser_get_sort_type (chooser);
   switch (sort_type)
     {
     case GTK_RECENT_SORT_NONE:
@@ -1335,6 +1337,8 @@ gtk_recent_chooser_default_get_items (GtkRecentChooser *chooser)
       GList *clamp, *l;
       
       clamp = g_list_nth (items, limit - 1);
+      if (!clamp)
+        return items;
       
       l = clamp->next;
       clamp->next = NULL;
index a72d60e04b55ac94557e0e093cf4c3dae6683123..8413633a07697e58d4e5cf02d240c575ce711ab4 100644 (file)
@@ -607,8 +607,10 @@ gtk_recent_chooser_menu_get_items (GtkRecentChooser *chooser)
     return NULL;
   
   limit = gtk_recent_chooser_get_limit (chooser);
-  sort_type = gtk_recent_chooser_get_sort_type (chooser);
+  if (limit == 0)
+    return NULL;
 
+  sort_type = gtk_recent_chooser_get_sort_type (chooser);
   switch (sort_type)
     {
     case GTK_RECENT_SORT_NONE:
@@ -641,6 +643,8 @@ gtk_recent_chooser_menu_get_items (GtkRecentChooser *chooser)
       GList *clamp, *l;
 
       clamp = g_list_nth (items, limit - 1);
+      if (!clamp)
+        return items;
 
       l = clamp->next;
       clamp->next = NULL;      
index aadeb60418647df16e6abf6daa2045769cfc5e22..24baf5d772da684472963276ccf83378e0d831ae 100644 (file)
@@ -1322,6 +1322,9 @@ gtk_recent_manager_get_items (GtkRecentManager *manager)
   priv = manager->priv;
   if (!priv->recent_items)
     return NULL;
+
+  if (priv->limit == 0)
+    return NULL;
   
   uris = g_bookmark_file_get_uris (priv->recent_items, &uris_len);
   for (i = 0; i < uris_len; i++)