[devhelp] BookManager: remove book from list *before* sending ::book-deleted



commit 07a34cd2e12c6984b7b606d24f523b08b391ba34
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Fri Apr 6 17:53:12 2018 +0200

    BookManager: remove book from list *before* sending ::book-deleted
    
    It is more logical in that order. Ideally there should be a vfunc and it would
    be the object method handler which removes the DhBook from the list (since it's
    a G_SIGNAL_RUN_LAST signal). But I'm planning to refactor DhBookManager soon
    with DhBookSelection, so it is not worth it.
    
    Before commit f36eed21b8f14b09df23fbb4488b29cc63e781bb everything was
    fine I think in the Devhelp application.
    
    commit f36eed21b8f14b09df23fbb4488b29cc63e781bb changed DhPreferences
    and calls dh_book_manager_get_books() inside its ::book-deleted handler.
    So there was a bug. It is now fixed.

 devhelp/dh-book-manager.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
---
diff --git a/devhelp/dh-book-manager.c b/devhelp/dh-book-manager.c
index 69c5ef6..813a880 100644
--- a/devhelp/dh-book-manager.c
+++ b/devhelp/dh-book-manager.c
@@ -283,12 +283,13 @@ remove_book (DhBookManager *book_manager,
         node = g_list_find (priv->books, book);
 
         if (node != NULL) {
+                priv->books = g_list_delete_link (priv->books, node);
+
                 g_signal_emit (book_manager,
                                signals[SIGNAL_BOOK_DELETED],
                                0,
                                book);
 
-                priv->books = g_list_delete_link (priv->books, node);
                 g_object_unref (book);
         }
 }


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