X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=lib%2Fdatabase.cc;h=5e86955d8dfd91b3880a5d53217b9265eb69c65e;hb=378ba492a634db5b841f2454991239a897f830b2;hp=dcfad8cf2c67306ea9d956d0af9309db06e78187;hpb=65a6b86873a471bb87d30a8617a87857103cd8b6;p=notmuch diff --git a/lib/database.cc b/lib/database.cc index dcfad8cf..5e86955d 100644 --- a/lib/database.cc +++ b/lib/database.cc @@ -1410,8 +1410,15 @@ notmuch_database_upgrade (notmuch_database_t *notmuch, (NOTMUCH_FEATURE_FILE_TERMS | NOTMUCH_FEATURE_BOOL_FOLDER | NOTMUCH_FEATURE_LAST_MOD)) { query = notmuch_query_create (notmuch, ""); - total += notmuch_query_count_messages (query); + unsigned msg_count; + + status = notmuch_query_count_messages_st (query, &msg_count); + if (status) + goto DONE; + + total += msg_count; notmuch_query_destroy (query); + query = NULL; } if (new_features & NOTMUCH_FEATURE_DIRECTORY_DOCS) { t_end = db->allterms_end ("XTIMESTAMP"); @@ -1443,9 +1450,10 @@ notmuch_database_upgrade (notmuch_database_t *notmuch, query = notmuch_query_create (notmuch, ""); - /* XXX: this should use the _st version, but needs an error - path */ - for (messages = notmuch_query_search_messages (query); + status = notmuch_query_search_messages_st (query, &messages); + if (status) + goto DONE; + for (; notmuch_messages_valid (messages); notmuch_messages_move_to_next (messages)) { @@ -1492,6 +1500,7 @@ notmuch_database_upgrade (notmuch_database_t *notmuch, } notmuch_query_destroy (query); + query = NULL; } /* Perform per-directory upgrades. */ @@ -1612,6 +1621,9 @@ notmuch_database_upgrade (notmuch_database_t *notmuch, sigaction (SIGALRM, &action, NULL); } + if (query) + notmuch_query_destroy (query); + talloc_free (local); return status; }