aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--lib/notmuch.h2
-rw-r--r--lib/query.cc6
2 files changed, 6 insertions, 2 deletions
diff --git a/lib/notmuch.h b/lib/notmuch.h
index 54616336..505ad19f 100644
--- a/lib/notmuch.h
+++ b/lib/notmuch.h
@@ -439,6 +439,8 @@ notmuch_query_search_threads (notmuch_query_t *query);
* notmuch_messages_t object. (For consistency, we do provide a
* notmuch_messages_destroy function, but there's no good
* reason to call it if the query is about to be destroyed).
+ *
+ * If a Xapian exception occurs this function will return NULL.
*/
notmuch_messages_t *
notmuch_query_search_messages (notmuch_query_t *query);
diff --git a/lib/query.cc b/lib/query.cc
index 7e1b6b52..d241dc1d 100644
--- a/lib/query.cc
+++ b/lib/query.cc
@@ -163,14 +163,16 @@ notmuch_query_search_messages (notmuch_query_t *query)
messages->iterator = mset.begin ();
messages->iterator_end = mset.end ();
+ return &messages->base;
+
} catch (const Xapian::Error &error) {
fprintf (stderr, "A Xapian exception occurred performing query: %s\n",
error.get_msg().c_str());
fprintf (stderr, "Query string was: %s\n", query->query_string);
notmuch->exception_reported = TRUE;
+ talloc_free (messages);
+ return NULL;
}
-
- return &messages->base;
}
notmuch_bool_t