]> git.notmuchmail.org Git - notmuch/blobdiff - database.cc
Add an INTERNAL_ERROR macro and use it for all internal errors.
[notmuch] / database.cc
index b392914190bb2f6247d89af371e0a86d56301938..3f0202277969d2289d192c61abc461379150af4e 100644 (file)
@@ -124,8 +124,7 @@ _find_prefix (const char *name)
        if (strcmp (name, BOOLEAN_PREFIX_EXTERNAL[i].name) == 0)
            return BOOLEAN_PREFIX_EXTERNAL[i].prefix;
 
-    fprintf (stderr, "Internal error: No prefix exists for '%s'\n", name);
-    exit (1);
+    INTERNAL_ERROR ("No prefix exists for '%s'\n", name);
 
     return "";
 }
@@ -284,7 +283,7 @@ notmuch_database_find_message (notmuch_database_t *notmuch,
     if (status == NOTMUCH_PRIVATE_STATUS_NO_DOCUMENT_FOUND)
        return NULL;
 
-    return _notmuch_message_create (notmuch, notmuch, doc_id);
+    return _notmuch_message_create (notmuch, notmuch, doc_id, NULL);
 }
 
 /* Return one or more thread_ids, (as a GPtrArray of strings), for the
@@ -762,17 +761,12 @@ notmuch_database_add_message (notmuch_database_t *notmuch,
         * database). */
 
        /* Use NULL for owner since we want to free this locally. */
-
-       /* XXX: This call can fail by either out-of-memory or an
-        * "impossible" Xapian exception. We should rewrite it to
-        * allow us to propagate the error status. */
-       message = _notmuch_message_create_for_message_id (NULL, notmuch,
-                                                         message_id);
-       if (message == NULL) {
-           fprintf (stderr, "Internal error. This shouldn't happen.\n\n");
-           fprintf (stderr, "I mean, it's possible you ran out of memory, but then this code path is still an internal error since it should have detected that and propagated the status value up the stack.\n");
-           exit (1);
-       }
+       message = _notmuch_message_create_for_message_id (NULL,
+                                                         notmuch,
+                                                         message_id,
+                                                         &ret);
+       if (message == NULL)
+           goto DONE;
 
        /* Has a message previously been added with the same ID? */
        old_filename = notmuch_message_get_filename (message);