[gtk/wip/chergert/fix-out-of-range-index] singleselection: check model range before getting item




commit 0173fef8b648318694e211e90679dbe9605f0c52
Author: Christian Hergert <chergert redhat com>
Date:   Tue May 25 14:18:41 2021 -0700

    singleselection: check model range before getting item
    
    It is invalid to request an item from a model outside the range of the
    selection. In some cases, we can avoid the check since we know there was
    an item added to the model.

 gtk/gtksingleselection.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
---
diff --git a/gtk/gtksingleselection.c b/gtk/gtksingleselection.c
index 8990ce3e62..39c6202398 100644
--- a/gtk/gtksingleselection.c
+++ b/gtk/gtksingleselection.c
@@ -182,7 +182,9 @@ gtk_single_selection_items_changed_cb (GListModel         *model,
     {
       if (self->autoselect)
         {
-          self->selected_item = g_list_model_get_item (self->model, 0);
+          if (added > 0 || g_list_model_get_n_items (self->model) > 0)
+            self->selected_item = g_list_model_get_item (self->model, 0);
+
           if (self->selected_item)
             {
               self->selected = 0;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]