X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=lib%2Fdirectory.cc;h=5cf64d7fc4021748b8d686cf36ed758741161db0;hb=df7c5acd759f22fcb537490f62b85d39aa71d677;hp=5d13afecd73a5c9015305ee2aff1c11d004a0b6c;hpb=9668583a49e9fe2e39844ceaab20779c9444ba8f;p=notmuch diff --git a/lib/directory.cc b/lib/directory.cc index 5d13afec..5cf64d7f 100644 --- a/lib/directory.cc +++ b/lib/directory.cc @@ -52,8 +52,10 @@ struct _notmuch_directory { #define LOG_XAPIAN_EXCEPTION(directory, error) _log_xapian_exception (__location__, directory, error) static void -_log_xapian_exception (const char *where, notmuch_directory_t *dir, const Xapian::Error error) { +_log_xapian_exception (const char *where, notmuch_directory_t *dir, const Xapian::Error error) +{ notmuch_database_t *notmuch = dir->notmuch; + _notmuch_database_log (notmuch, "A Xapian exception occurred at %s: %s\n", where, @@ -261,15 +263,19 @@ notmuch_filenames_t * notmuch_directory_get_child_files (notmuch_directory_t *directory) { char *term; - notmuch_filenames_t *child_files; + notmuch_filenames_t *child_files = NULL; term = talloc_asprintf (directory, "%s%u:", _find_prefix ("file-direntry"), directory->document_id); - child_files = _create_filenames_for_terms_with_prefix (directory, - directory->notmuch, - term); + try { + child_files = _create_filenames_for_terms_with_prefix (directory, + directory->notmuch, + term); + } catch (Xapian::Error &error) { + LOG_XAPIAN_EXCEPTION (directory, error); + } talloc_free (term); @@ -319,7 +325,7 @@ notmuch_directory_delete (notmuch_directory_t *directory) } notmuch_directory_destroy (directory); - return NOTMUCH_STATUS_SUCCESS; + return status; } void