[gnome-photos] item-manager: Assert an invariant



commit 1908e529812e946b7b6d5e6fd534814f76e1392a
Author: Debarshi Ray <debarshir gnome org>
Date:   Mon Sep 5 22:36:35 2016 +0200

    item-manager: Assert an invariant
    
    This had to be adjusted due to the changes in the previous commit.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=770342

 src/photos-item-manager.c |   18 ++++++++++++------
 1 files changed, 12 insertions(+), 6 deletions(-)
---
diff --git a/src/photos-item-manager.c b/src/photos-item-manager.c
index 5286c48..fd094de 100644
--- a/src/photos-item-manager.c
+++ b/src/photos-item-manager.c
@@ -835,6 +835,7 @@ photos_item_manager_clear (PhotosItemManager *self, PhotosWindowMode mode)
 {
   GHashTable *items;
   GHashTableIter iter;
+  PhotosBaseItem *item;
   PhotosBaseManager *item_mngr_chld;
   const gchar *id;
 
@@ -847,9 +848,9 @@ photos_item_manager_clear (PhotosItemManager *self, PhotosWindowMode mode)
   items = photos_base_manager_get_objects (item_mngr_chld);
 
   g_hash_table_iter_init (&iter, items);
-  while (g_hash_table_iter_next (&iter, (gpointer *) &id, NULL))
+  while (g_hash_table_iter_next (&iter, (gpointer *) &id, (gpointer *) &item))
     {
-      PhotosBaseItem *item = NULL;
+      PhotosBaseItem *item1 = NULL;
       guint i;
 
       for (i = 1; self->item_mngr_chldrn[i] != NULL; i++)
@@ -857,13 +858,18 @@ photos_item_manager_clear (PhotosItemManager *self, PhotosWindowMode mode)
           if (item_mngr_chld == self->item_mngr_chldrn[i])
             continue;
 
-          item = PHOTOS_BASE_ITEM (photos_base_manager_get_object_by_id (self->item_mngr_chldrn[i], id));
-          if (item != NULL)
+          item1 = PHOTOS_BASE_ITEM (photos_base_manager_get_object_by_id (self->item_mngr_chldrn[i], id));
+          if (item1 != NULL)
             break;
         }
 
-      if (item == NULL)
-        photos_base_manager_remove_object_by_id (self->item_mngr_chldrn[0], id);
+      if (item1 == NULL)
+        {
+          item1 = PHOTOS_BASE_ITEM (photos_base_manager_get_object_by_id (self->item_mngr_chldrn[0], id));
+          g_assert_true (item == item1);
+
+          photos_base_manager_remove_object_by_id (self->item_mngr_chldrn[0], id);
+        }
     }
 
   photos_base_manager_clear (item_mngr_chld);


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