while ((node = *prev)) {
message = node->message;
in_reply_to = _notmuch_message_get_in_reply_to (message);
- if (in_reply_to &&
+ if (in_reply_to && strlen (in_reply_to) &&
g_hash_table_lookup_extended (thread->message_hash,
in_reply_to, NULL,
(void **) &parent))
const char *thread_id_query_string, *matched_query_string;
notmuch_query_t *thread_id_query, *matched_query;
notmuch_messages_t *messages;
+ notmuch_message_t *message;
thread_id_query_string = talloc_asprintf (ctx, "thread:%s", thread_id);
if (unlikely (query_string == NULL))
notmuch_messages_has_more (messages);
notmuch_messages_advance (messages))
{
- _thread_add_message (thread, notmuch_messages_get (messages));
+ message = notmuch_messages_get (messages);
+ _thread_add_message (thread, message);
+ _notmuch_message_close (message);
}
notmuch_query_destroy (thread_id_query);
notmuch_messages_has_more (messages);
notmuch_messages_advance (messages))
{
- _thread_add_matched_message (thread, notmuch_messages_get (messages));
+ message = notmuch_messages_get (messages);
+ _thread_add_matched_message (thread, message);
+ _notmuch_message_close (message);
}
notmuch_query_destroy (matched_query);