]> granicus.if.org Git - neomutt/commitdiff
notify: fix shutdown order
authorRichard Russon <rich@flatcap.org>
Thu, 18 Jul 2019 14:58:00 +0000 (15:58 +0100)
committerRichard Russon <rich@flatcap.org>
Thu, 18 Jul 2019 14:58:02 +0000 (15:58 +0100)
Free the Notify object after we free anyone who might use it.

core/account.c
core/mailbox.c
core/neomutt.c

index 5e34556ecaa3c0775ebe67d7d31c7f219f8e0a11..3fb718d9c26f1cee44fb3d1baa17c8b6247b6eac 100644 (file)
@@ -116,7 +116,6 @@ void account_free(struct Account **ptr)
     return;
 
   struct Account *a = *ptr;
-  notify_free(&a->notify);
 
   if (a->free_adata)
     a->free_adata(&a->adata);
@@ -124,6 +123,7 @@ void account_free(struct Account **ptr)
   account_mailbox_remove(a, NULL);
   cs_subset_free(&a->sub);
   FREE(&a->name);
+  notify_free(&a->notify);
 
   FREE(ptr);
 }
index 297b3880f2ad51ab93c282addc581c19a52cf5fe..c914091abf2ff34ff528371d9ca5b532e68d8dbf 100644 (file)
@@ -59,7 +59,6 @@ void mailbox_free(struct Mailbox **ptr)
 
   struct Mailbox *m = *ptr;
   mailbox_changed(m, MBN_CLOSED);
-  notify_free(&m->notify);
 
   if (m->mdata && m->free_mdata)
     m->free_mdata(&m->mdata);
@@ -67,6 +66,7 @@ void mailbox_free(struct Mailbox **ptr)
   mutt_buffer_free(&m->pathbuf);
   FREE(&m->name);
   FREE(&m->realpath);
+  notify_free(&m->notify);
 
   FREE(ptr);
 }
index d6c919a3d8db085495b8117c6cf22485999afeb4..0736b06de55ce7e8bbf9e88f2a3b6fa506d9b774 100644 (file)
@@ -66,10 +66,10 @@ void neomutt_free(struct NeoMutt **ptr)
     return;
 
   struct NeoMutt *n = *ptr;
-  notify_free(&n->notify);
 
   neomutt_account_remove(n, NULL);
   cs_subset_free(&n->sub);
+  notify_free(&n->notify);
 
   FREE(ptr);
 }