[balsa/wip/gtk4: 157/351] Assert that class getters do not return NULL



commit c88be42ac40c07b9cabf89ae412bc240e75c7b34
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date:   Thu Feb 8 14:14:50 2018 -0500

    Assert that class getters do not return NULL
    
    Assert that FOO_GET_CLASS macros do not return NULL values, to silence
    scan-build whining.

 libbalsa/address-book.c  |    8 +++++
 libbalsa/body.c          |    1 +
 libbalsa/mailbox.c       |   68 ++++++++++++++++++++++++++++++++++++++-------
 libbalsa/mailbox_local.c |   36 +++++++++++++++++-------
 src/main-window.c        |    2 +
 5 files changed, 94 insertions(+), 21 deletions(-)
---
diff --git a/libbalsa/address-book.c b/libbalsa/address-book.c
index ce37e11..7daf350 100644
--- a/libbalsa/address-book.c
+++ b/libbalsa/address-book.c
@@ -155,6 +155,7 @@ libbalsa_address_book_load(LibBalsaAddressBook * ab,
                            gpointer closure)
 {
     g_return_val_if_fail(LIBBALSA_IS_ADDRESS_BOOK(ab), LBABERR_OK);
+    g_assert(LIBBALSA_ADDRESS_BOOK_GET_CLASS(ab) != NULL);
 
     return LIBBALSA_ADDRESS_BOOK_GET_CLASS(ab)->load(ab, filter, callback,
                                                      closure);
@@ -166,6 +167,7 @@ libbalsa_address_book_add_address(LibBalsaAddressBook * ab,
 {
     g_return_val_if_fail(LIBBALSA_IS_ADDRESS_BOOK(ab), LBABERR_OK);
     g_return_val_if_fail(LIBBALSA_IS_ADDRESS(address), LBABERR_OK);
+    g_assert(LIBBALSA_ADDRESS_BOOK_GET_CLASS(ab) != NULL);
 
     return LIBBALSA_ADDRESS_BOOK_GET_CLASS(ab)->add_address(ab, address);
 }
@@ -176,6 +178,7 @@ libbalsa_address_book_remove_address(LibBalsaAddressBook * ab,
 {
     g_return_val_if_fail(LIBBALSA_IS_ADDRESS_BOOK(ab), LBABERR_OK);
     g_return_val_if_fail(LIBBALSA_IS_ADDRESS(address), LBABERR_OK);
+    g_assert(LIBBALSA_ADDRESS_BOOK_GET_CLASS(ab) != NULL);
 
     return LIBBALSA_ADDRESS_BOOK_GET_CLASS(ab)->remove_address(ab,
                                                                address);
@@ -190,6 +193,7 @@ libbalsa_address_book_modify_address(LibBalsaAddressBook * ab,
 
     g_return_val_if_fail(LIBBALSA_IS_ADDRESS_BOOK(ab), LBABERR_OK);
     g_return_val_if_fail(LIBBALSA_IS_ADDRESS(address), LBABERR_OK);
+    g_assert(LIBBALSA_ADDRESS_BOOK_GET_CLASS(ab) != NULL);
 
     res =
         LIBBALSA_ADDRESS_BOOK_GET_CLASS(ab)->modify_address(ab, address,
@@ -214,6 +218,7 @@ libbalsa_address_book_save_config(LibBalsaAddressBook * ab,
                                   const gchar * group)
 {
     g_return_if_fail(LIBBALSA_IS_ADDRESS_BOOK(ab));
+    g_assert(LIBBALSA_ADDRESS_BOOK_GET_CLASS(ab) != NULL);
 
     libbalsa_conf_private_remove_group(group);
     libbalsa_conf_remove_group(group);
@@ -228,6 +233,7 @@ libbalsa_address_book_load_config(LibBalsaAddressBook * ab,
                                  const gchar * group)
 {
     g_return_if_fail(LIBBALSA_IS_ADDRESS_BOOK(ab));
+    g_assert(LIBBALSA_ADDRESS_BOOK_GET_CLASS(ab) != NULL);
 
     libbalsa_conf_push_group(group);
     LIBBALSA_ADDRESS_BOOK_GET_CLASS(ab)->load_config(ab, group);
@@ -242,6 +248,7 @@ libbalsa_address_book_alias_complete(LibBalsaAddressBook * ab,
                                      const gchar * prefix)
 {
     g_return_val_if_fail(LIBBALSA_IS_ADDRESS_BOOK(ab), NULL);
+    g_assert(LIBBALSA_ADDRESS_BOOK_GET_CLASS(ab) != NULL);
 
     return LIBBALSA_ADDRESS_BOOK_GET_CLASS(ab)->alias_complete(ab, prefix);
 }
@@ -260,6 +267,7 @@ libbalsa_address_book_real_save_config(LibBalsaAddressBook * ab,
                                       const gchar * group)
 {
     g_return_if_fail(LIBBALSA_IS_ADDRESS_BOOK(ab));
+    g_assert(LIBBALSA_ADDRESS_BOOK_GET_CLASS(ab) != NULL);
 
     libbalsa_conf_set_string("Type", g_type_name(G_OBJECT_TYPE(ab)));
     libbalsa_conf_set_string("Name", ab->name);
diff --git a/libbalsa/body.c b/libbalsa/body.c
index 6b18270..8706286 100644
--- a/libbalsa/body.c
+++ b/libbalsa/body.c
@@ -592,6 +592,7 @@ libbalsa_message_body_get_stream(LibBalsaMessageBody * body, GError **err)
         return NULL;
     }
 
+    g_assert(GMIME_PART_GET_CLASS(body->mime_part) != NULL);
     if (!(GMIME_IS_PART(body->mime_part)
           || GMIME_IS_MESSAGE_PART(body->mime_part))) {
         if (err != NULL && *err == NULL) {
diff --git a/libbalsa/mailbox.c b/libbalsa/mailbox.c
index f386e36..710c91d 100644
--- a/libbalsa/mailbox.c
+++ b/libbalsa/mailbox.c
@@ -510,12 +510,14 @@ libbalsa_mailbox_new_from_config(const gchar * group)
                                  _("Bad local mailbox path ā€œ%sā€"), path);
     }
     mailbox = (type != G_TYPE_OBJECT ? g_object_new(type, NULL) : NULL);
-    if (mailbox == NULL)
+    if (mailbox == NULL) {
         libbalsa_information(LIBBALSA_INFORMATION_WARNING,
                              _("Could not create a mailbox of type %s"),
                              type_str);
-    else
+    } else {
+        g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
        LIBBALSA_MAILBOX_GET_CLASS(mailbox)->load_config(mailbox, group);
+    }
 
     libbalsa_conf_pop_group();
     g_free(type_str);
@@ -546,6 +548,7 @@ libbalsa_mailbox_open(LibBalsaMailbox * mailbox, GError **err)
 
     g_return_val_if_fail(mailbox != NULL, FALSE);
     g_return_val_if_fail(LIBBALSA_IS_MAILBOX(mailbox), FALSE);
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
 
     libbalsa_lock_mailbox(mailbox);
 
@@ -606,6 +609,7 @@ libbalsa_mailbox_close(LibBalsaMailbox * mailbox, gboolean expunge)
     g_return_if_fail(mailbox != NULL);
     g_return_if_fail(LIBBALSA_IS_MAILBOX(mailbox));
     g_return_if_fail(MAILBOX_OPEN(mailbox));
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
 
     g_object_ref(mailbox);
     libbalsa_lock_mailbox(mailbox);
@@ -672,6 +676,7 @@ libbalsa_mailbox_check(LibBalsaMailbox * mailbox)
 {
     g_return_if_fail(mailbox != NULL);
     g_return_if_fail(LIBBALSA_IS_MAILBOX(mailbox));
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
 
     libbalsa_lock_mailbox(mailbox);
 
@@ -750,6 +755,7 @@ libbalsa_mailbox_message_match(LibBalsaMailbox * mailbox,
     g_return_val_if_fail(LIBBALSA_IS_MAILBOX(mailbox), FALSE);
     g_return_val_if_fail(msgno <= libbalsa_mailbox_total_messages(mailbox),
                          FALSE);
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
 
     if (libbalsa_condition_is_flag_only(search_iter->condition,
                                         mailbox, msgno, &match))
@@ -773,6 +779,7 @@ libbalsa_mailbox_can_match(LibBalsaMailbox * mailbox,
 {
     g_return_val_if_fail(mailbox != NULL, FALSE);
     g_return_val_if_fail(LIBBALSA_IS_MAILBOX(mailbox), FALSE);
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
 
     return LIBBALSA_MAILBOX_GET_CLASS(mailbox)->can_match(mailbox,
                                                           condition);
@@ -900,6 +907,7 @@ libbalsa_mailbox_save_config(LibBalsaMailbox * mailbox,
 {
     g_return_if_fail(mailbox != NULL);
     g_return_if_fail(LIBBALSA_IS_MAILBOX(mailbox));
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
 
     /* These are incase this section was used for another
      * type of mailbox that has now been deleted...
@@ -938,10 +946,12 @@ copy_iterator(LibBalsaMessageFlag *flags, GMimeStream **stream, void * arg)
     gboolean (*msgno_has_flags)(LibBalsaMailbox *, guint,
                                LibBalsaMessageFlag, LibBalsaMessageFlag);
     LibBalsaMailbox *mailbox = mcd->src_mailbox;
-       
+
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
+
     if(mcd->current_idx >= mcd->msgnos->len)
        return FALSE; /* no more messages */
-       
+
     g_clear_object(&mcd->stream);
     msgno_has_flags = LIBBALSA_MAILBOX_GET_CLASS(mailbox)->msgno_has_flags;
     msgno = g_array_index(mcd->msgnos, guint, mcd->current_idx);
@@ -991,6 +1001,7 @@ libbalsa_mailbox_real_messages_copy(LibBalsaMailbox * mailbox,
 
     g_return_val_if_fail(LIBBALSA_IS_MAILBOX(mailbox), FALSE);
     g_return_val_if_fail(LIBBALSA_IS_MAILBOX(dest), FALSE);
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(dest) != NULL);
     g_return_val_if_fail(dest != mailbox, FALSE);
 
     text = g_strdup_printf(_("Copying from %s to %s"), mailbox->name,
@@ -1037,9 +1048,10 @@ libbalsa_mailbox_real_save_config(LibBalsaMailbox * mailbox,
                                   const gchar * group)
 {
     g_return_if_fail(LIBBALSA_IS_MAILBOX(mailbox));
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
 
     libbalsa_conf_set_string("Type",
-                            g_type_name(G_OBJECT_TYPE(mailbox)));
+                             g_type_name(G_OBJECT_TYPE(mailbox)));
     libbalsa_conf_set_string("Name", mailbox->name);
 }
 
@@ -1784,6 +1796,7 @@ libbalsa_mailbox_add_message(LibBalsaMailbox * mailbox,
     guint retval;
     struct AddMessageData amd;
     g_return_val_if_fail(LIBBALSA_IS_MAILBOX(mailbox), FALSE);
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
 
     libbalsa_lock_mailbox(mailbox);
 
@@ -1815,6 +1828,7 @@ libbalsa_mailbox_add_messages(LibBalsaMailbox * mailbox,
     guint retval;
 
     g_return_val_if_fail(LIBBALSA_IS_MAILBOX(mailbox), FALSE);
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
 
     libbalsa_lock_mailbox(mailbox);
 
@@ -1844,6 +1858,7 @@ libbalsa_mailbox_close_backend(LibBalsaMailbox * mailbox)
 {
     g_return_val_if_fail(mailbox != NULL, FALSE);
     g_return_val_if_fail(LIBBALSA_IS_MAILBOX(mailbox), FALSE);
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
 
     return LIBBALSA_MAILBOX_GET_CLASS(mailbox)->close_backend(mailbox);
 }
@@ -1853,6 +1868,7 @@ libbalsa_mailbox_total_messages(LibBalsaMailbox * mailbox)
 {
     g_return_val_if_fail(mailbox != NULL, 0);
     g_return_val_if_fail(LIBBALSA_IS_MAILBOX(mailbox), 0);
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
 
     return LIBBALSA_MAILBOX_GET_CLASS(mailbox)->total_messages(mailbox);
 }
@@ -1865,6 +1881,7 @@ libbalsa_mailbox_sync_storage(LibBalsaMailbox * mailbox, gboolean expunge)
     g_return_val_if_fail(mailbox != NULL, FALSE);
     g_return_val_if_fail(LIBBALSA_IS_MAILBOX(mailbox), FALSE);
     g_return_val_if_fail(!mailbox->readonly, TRUE);
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
 
     libbalsa_lock_mailbox(mailbox);
 
@@ -1907,6 +1924,7 @@ libbalsa_mailbox_get_message(LibBalsaMailbox * mailbox, guint msgno)
 
     g_return_val_if_fail(mailbox != NULL, NULL);
     g_return_val_if_fail(LIBBALSA_IS_MAILBOX(mailbox), NULL);
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
 
     libbalsa_lock_mailbox(mailbox);
 
@@ -1939,6 +1957,7 @@ libbalsa_mailbox_prepare_threading(LibBalsaMailbox * mailbox, guint start)
 {
     g_return_val_if_fail(mailbox != NULL, FALSE);
     g_return_val_if_fail(LIBBALSA_IS_MAILBOX(mailbox), FALSE);
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
 
     return LIBBALSA_MAILBOX_GET_CLASS(mailbox)->prepare_threading(mailbox,
                                                                   start);
@@ -1952,6 +1971,7 @@ libbalsa_mailbox_fetch_message_structure(LibBalsaMailbox *mailbox,
     g_return_val_if_fail(mailbox != NULL, FALSE);
     g_return_val_if_fail(LIBBALSA_IS_MAILBOX(mailbox), FALSE);
     g_return_val_if_fail(message != NULL, FALSE);
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
 
     return LIBBALSA_MAILBOX_GET_CLASS(mailbox)
         ->fetch_message_structure(mailbox, message, flags);
@@ -1966,9 +1986,9 @@ libbalsa_mailbox_release_message(LibBalsaMailbox * mailbox,
     g_return_if_fail(message != NULL);
     g_return_if_fail(LIBBALSA_IS_MESSAGE(message));
     g_return_if_fail(mailbox == message->mailbox);
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
 
-    LIBBALSA_MAILBOX_GET_CLASS(mailbox)
-        ->release_message(mailbox, message);
+    LIBBALSA_MAILBOX_GET_CLASS(mailbox)->release_message(mailbox, message);
 }
 
 void
@@ -1978,6 +1998,7 @@ libbalsa_mailbox_set_msg_headers(LibBalsaMailbox *mailbox,
     g_return_if_fail(mailbox != NULL);
     g_return_if_fail(LIBBALSA_IS_MAILBOX(mailbox));
     g_return_if_fail(message != NULL);
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
 
     if(!message->has_all_headers) {
         LIBBALSA_MAILBOX_GET_CLASS(mailbox)->fetch_headers(mailbox, message);
@@ -1993,6 +2014,7 @@ libbalsa_mailbox_get_message_part(LibBalsaMessage    *message,
     g_return_val_if_fail(message != NULL, FALSE);
     g_return_val_if_fail(message->mailbox != NULL, FALSE);
     g_return_val_if_fail(LIBBALSA_IS_MAILBOX(message->mailbox), FALSE);
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(message->mailbox) != NULL);
     g_return_val_if_fail(part != NULL, FALSE);
 
     return LIBBALSA_MAILBOX_GET_CLASS(message->mailbox)
@@ -2006,6 +2028,7 @@ libbalsa_mailbox_get_message_stream(LibBalsaMailbox * mailbox, guint msgno,
     g_return_val_if_fail(LIBBALSA_IS_MAILBOX(mailbox), NULL);
     g_return_val_if_fail(msgno <= libbalsa_mailbox_total_messages(mailbox),
                          NULL);
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
 
     return LIBBALSA_MAILBOX_GET_CLASS(mailbox)->get_message_stream(mailbox,
                                                                    msgno,
@@ -2026,6 +2049,7 @@ libbalsa_mailbox_messages_change_flags(LibBalsaMailbox * mailbox,
     gboolean real_flag;
 
     g_return_val_if_fail(LIBBALSA_IS_MAILBOX(mailbox), FALSE);
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
 
     real_flag = (set | clear) & LIBBALSA_MESSAGE_FLAGS_REAL;
     g_return_val_if_fail(!mailbox->readonly || !real_flag, FALSE);
@@ -2088,10 +2112,10 @@ libbalsa_mailbox_messages_copy(LibBalsaMailbox * mailbox, GArray * msgnos,
 
     g_return_val_if_fail(LIBBALSA_IS_MAILBOX(mailbox), FALSE);
     g_return_val_if_fail(msgnos->len > 0, TRUE);
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
 
     libbalsa_lock_mailbox(mailbox);
-    retval = LIBBALSA_MAILBOX_GET_CLASS(mailbox)->
-       messages_copy(mailbox, msgnos, dest, err);
+    retval = LIBBALSA_MAILBOX_GET_CLASS(mailbox)->messages_copy(mailbox, msgnos, dest, err);
     libbalsa_unlock_mailbox(mailbox);
 
     return retval;
@@ -2140,6 +2164,8 @@ libbalsa_mailbox_set_view_filter(LibBalsaMailbox *mailbox,
 {
     gboolean retval = FALSE;
 
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
+
     libbalsa_lock_mailbox(mailbox);
 
     if (!libbalsa_condition_compare(mailbox->view_filter, cond))
@@ -2176,6 +2202,7 @@ libbalsa_mailbox_msgno_has_flags(LibBalsaMailbox * mailbox, guint msgno,
 {
     g_return_val_if_fail(LIBBALSA_IS_MAILBOX(mailbox), FALSE);
     g_return_val_if_fail(msgno > 0, FALSE);
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
 
     return LIBBALSA_MAILBOX_GET_CLASS(mailbox)->msgno_has_flags(mailbox,
                                                                 msgno, set,
@@ -2197,6 +2224,8 @@ gboolean
 libbalsa_mailbox_can_do(LibBalsaMailbox *mailbox,
                         enum LibBalsaMailboxCapability cap)
 {
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
+
     return LIBBALSA_MAILBOX_GET_CLASS(mailbox)->can_do(mailbox, cap);
 }
 
@@ -2224,6 +2253,8 @@ static gboolean
 lbm_set_threading(LibBalsaMailbox * mailbox,
                   LibBalsaMailboxThreadingType thread_type)
 {
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
+
     if (!MAILBOX_OPEN(mailbox))
         return FALSE;
 
@@ -3380,6 +3411,9 @@ lbm_sort(LibBalsaMailbox * mbox, GNode * parent)
 #else
     gboolean can_sort_all = 1;
 #endif
+
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mbox) != NULL);
+
     node = parent->children;
     if (!node)
         return;
@@ -4209,6 +4243,8 @@ libbalsa_mailbox_search_iter_step(LibBalsaMailbox * mailbox,
 gboolean
 libbalsa_mailbox_can_move_duplicates(LibBalsaMailbox * mailbox)
 {
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
+
     return LIBBALSA_MAILBOX_GET_CLASS(mailbox)->duplicate_msgnos != NULL;
 }
 
@@ -4219,6 +4255,8 @@ libbalsa_mailbox_move_duplicates(LibBalsaMailbox * mailbox,
     GArray *msgnos = NULL;
     gint retval;
 
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
+
     if (libbalsa_mailbox_can_move_duplicates(mailbox))
         msgnos =
             LIBBALSA_MAILBOX_GET_CLASS(mailbox)->duplicate_msgnos(mailbox);
@@ -4251,15 +4289,21 @@ libbalsa_mailbox_move_duplicates(LibBalsaMailbox * mailbox,
 void 
 libbalsa_mailbox_lock_store(LibBalsaMailbox * mailbox)
 {
-    if (mailbox)
+    if (mailbox != NULL) {
+        g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
+
         LIBBALSA_MAILBOX_GET_CLASS(mailbox)->lock_store(mailbox, TRUE);
+    }
 }
 
 void 
 libbalsa_mailbox_unlock_store(LibBalsaMailbox * mailbox)
 {
-    if (mailbox)
+    if (mailbox != NULL) {
+        g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
+
         LIBBALSA_MAILBOX_GET_CLASS(mailbox)->lock_store(mailbox, FALSE);
+    }
 }
 
 void
@@ -4323,5 +4367,7 @@ void libbalsa_mailbox_test_can_reach(LibBalsaMailbox          * mailbox,
                                      LibBalsaCanReachCallback * cb,
                                      gpointer                   cb_data)
 {
+    g_assert(LIBBALSA_MAILBOX_GET_CLASS(mailbox) != NULL);
+
     LIBBALSA_MAILBOX_GET_CLASS(mailbox)->test_can_reach(mailbox, cb, cb_data);
 }
diff --git a/libbalsa/mailbox_local.c b/libbalsa/mailbox_local.c
index 61650c0..ce6c61f 100644
--- a/libbalsa/mailbox_local.c
+++ b/libbalsa/mailbox_local.c
@@ -271,6 +271,7 @@ void
 libbalsa_mailbox_local_remove_files(LibBalsaMailboxLocal * local)
 {
     g_return_if_fail(LIBBALSA_IS_MAILBOX_LOCAL(local));
+    g_assert(LIBBALSA_MAILBOX_LOCAL_GET_CLASS(local) != NULL);
 
     LIBBALSA_MAILBOX_LOCAL_GET_CLASS(local)->remove_files(local);
 }
@@ -532,6 +533,8 @@ lbm_local_save_tree(LibBalsaMailboxLocal * local)
     LibBalsaMailboxLocalSaveTreeInfo save_info;
     GError *err = NULL;
 
+    g_assert(LIBBALSA_MAILBOX_LOCAL_GET_CLASS(local) != NULL);
+
     if (!mailbox->msg_tree || !mailbox->msg_tree_changed)
         return;
     mailbox->msg_tree_changed = FALSE;
@@ -588,6 +591,8 @@ lbm_local_restore_tree(LibBalsaMailboxLocal * local, guint * total)
     LibBalsaMailboxLocalMessageInfo *(*get_info) (LibBalsaMailboxLocal *,
                                                   guint);
 
+    g_assert(LIBBALSA_MAILBOX_LOCAL_GET_CLASS(local) != NULL);
+
     filename = lbm_local_get_cache_filename(local);
     name = mailbox->name ? g_strdup(mailbox->name) :
         g_path_get_basename(libbalsa_mailbox_local_get_path(local));
@@ -790,8 +795,10 @@ static LibBalsaMessage *
 libbalsa_mailbox_local_get_message(LibBalsaMailbox * mailbox, guint msgno)
 {
     LibBalsaMailboxLocal *local = LIBBALSA_MAILBOX_LOCAL(mailbox);
-    LibBalsaMailboxLocalMessageInfo *msg_info =
-        LIBBALSA_MAILBOX_LOCAL_GET_CLASS(local)->get_info(local, msgno);
+    LibBalsaMailboxLocalMessageInfo *msg_info;
+
+    g_assert(LIBBALSA_MAILBOX_LOCAL_GET_CLASS(local) != NULL);
+    msg_info = LIBBALSA_MAILBOX_LOCAL_GET_CLASS(local)->get_info(local, msgno);
 
     if (msg_info->message)
         return g_object_ref(msg_info->message);
@@ -1028,11 +1035,12 @@ lbml_load_messages_idle_cb(LibBalsaMailbox * mailbox)
     LibBalsaMailboxLocal *local;
     guint lastno;
     GNode *lastn;
-    LibBalsaMailboxLocalMessageInfo *(*get_info) (LibBalsaMailboxLocal *,
-                                                  guint);
+    LibBalsaMailboxLocalMessageInfo *(*get_info) (LibBalsaMailboxLocal *, guint);
 
-    libbalsa_lock_mailbox(mailbox);
     local = (LibBalsaMailboxLocal *) mailbox;
+    g_assert(LIBBALSA_MAILBOX_LOCAL_GET_CLASS(local) != NULL);
+
+    libbalsa_lock_mailbox(mailbox);
     local->load_messages_id = 0;
 
     if (!mailbox->msg_tree) {
@@ -2175,6 +2183,8 @@ lbm_local_sync_queue(LibBalsaMailboxLocal * local)
 static void
 lbm_local_sort(LibBalsaMailbox * mailbox, GArray *sort_array)
 {
+    g_assert(LIBBALSA_MAILBOX_CLASS(parent_class) != NULL);
+
     LIBBALSA_MAILBOX_CLASS(parent_class)->sort(mailbox, sort_array);
     lbm_local_queue_save_tree(LIBBALSA_MAILBOX_LOCAL(mailbox));
 }
@@ -2192,6 +2202,8 @@ libbalsa_mailbox_local_add_messages(LibBalsaMailbox          * mailbox,
     LibBalsaMailboxLocalAddMessageFunc *add_message;
 
     local = LIBBALSA_MAILBOX_LOCAL(mailbox);
+    g_assert(LIBBALSA_MAILBOX_LOCAL_GET_CLASS(local) != NULL);
+
     cnt = 0;
     add_message = LIBBALSA_MAILBOX_LOCAL_GET_CLASS(local)->add_message;
     while (msg_iterator(&flag, &stream, iter_data)) {
@@ -2217,11 +2229,13 @@ libbalsa_mailbox_local_messages_change_flags(LibBalsaMailbox * mailbox,
                                              LibBalsaMessageFlag clear)
 {
     LibBalsaMailboxLocal *local = LIBBALSA_MAILBOX_LOCAL(mailbox);
-    LibBalsaMailboxLocalMessageInfo *(*get_info) (LibBalsaMailboxLocal *,
-                                                  guint) =
-        LIBBALSA_MAILBOX_LOCAL_GET_CLASS(local)->get_info;
+    LibBalsaMailboxLocalMessageInfo *(*get_info) (LibBalsaMailboxLocal *, guint);
     guint i;
     guint changed = 0;
+
+    g_assert(LIBBALSA_MAILBOX_LOCAL_GET_CLASS(local) != NULL);
+    get_info = LIBBALSA_MAILBOX_LOCAL_GET_CLASS(local)->get_info;
+
     libbalsa_lock_mailbox(mailbox);
     for (i = 0; i < msgnos->len; i++) {
         guint msgno = g_array_index(msgnos, guint, i);
@@ -2280,8 +2294,10 @@ libbalsa_mailbox_local_msgno_has_flags(LibBalsaMailbox * mailbox,
                                        LibBalsaMessageFlag unset)
 {
     LibBalsaMailboxLocal *local = LIBBALSA_MAILBOX_LOCAL(mailbox);
-    LibBalsaMailboxLocalMessageInfo *msg_info =
-        LIBBALSA_MAILBOX_LOCAL_GET_CLASS(local)->get_info(local, msgno);
+    LibBalsaMailboxLocalMessageInfo *msg_info;
+
+    g_assert(LIBBALSA_MAILBOX_LOCAL_GET_CLASS(local) != NULL);
+    msg_info = LIBBALSA_MAILBOX_LOCAL_GET_CLASS(local)->get_info(local, msgno);
 
     return (msg_info->flags & set) == set && (msg_info->flags & unset) == 0;
 }
diff --git a/src/main-window.c b/src/main-window.c
index a7e06a9..a570108 100644
--- a/src/main-window.c
+++ b/src/main-window.c
@@ -2734,6 +2734,7 @@ balsa_window_open_mbnode(BalsaWindow * window, BalsaMailboxNode * mbnode,
                          gboolean set_current)
 {
     g_return_if_fail(BALSA_IS_WINDOW(window));
+    g_assert(BALSA_WINDOW_GET_CLASS(window) != NULL);
 
     BALSA_WINDOW_GET_CLASS(window)->open_mbnode(window, mbnode,
                                                       set_current);
@@ -2743,6 +2744,7 @@ void
 balsa_window_close_mbnode(BalsaWindow * window, BalsaMailboxNode * mbnode)
 {
     g_return_if_fail(BALSA_IS_WINDOW(window));
+    g_assert(BALSA_WINDOW_GET_CLASS(window) != NULL);
 
     BALSA_WINDOW_GET_CLASS(window)->close_mbnode(window, mbnode);
 }


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