This allows threads yielded from a query to outlive the query. --- lib/notmuch.h | 11 +++++++++++ lib/thread.cc | 6 ++++++ 2 files changed, 17 insertions(+) diff --git a/lib/notmuch.h b/lib/notmuch.h index 310a8b8..9a2869b 100644 --- a/lib/notmuch.h +++ b/lib/notmuch.h @@ -1188,6 +1188,17 @@ notmuch_tags_t * notmuch_thread_get_tags (notmuch_thread_t *thread); /** + * Reparent a notmuch_thread_t object onto the database. + * + * Calling this function allows a notmuch_thread_t object to outlive its + * query. The query will automatically be reclaimed when the database is + * destroyed but if you want to free its memory before then, you should call + * notmuch_thread_destroy. + */ +void +notmuch_thread_own (notmuch_thread_t *thread); + +/** * Destroy a notmuch_thread_t object. */ void diff --git a/lib/thread.cc b/lib/thread.cc index 0c937d7..06fa155 100644 --- a/lib/thread.cc +++ b/lib/thread.cc @@ -623,3 +623,9 @@ notmuch_thread_destroy (notmuch_thread_t *thread) { talloc_free (thread); } + +void +notmuch_thread_own (notmuch_thread_t *thread) +{ + talloc_steal (thread->notmuch, thread); +} -- 2.6.2