lib: write talloc report in notmuch_database_destroy

Since most memory allocation is (ultimately) in the talloc context
defined by a notmuch_database_t pointer, this gives a more complete
view of memory still allocated at program shutdown.

We also change the talloc report in notmuch.c to mode "a" to avoid
clobbering the newly reported log.
This commit is contained in:
David Bremner 2021-06-18 21:59:43 -03:00
parent 2c96956b3b
commit ea301102ab
2 changed files with 10 additions and 1 deletions

View file

@ -733,6 +733,15 @@ notmuch_status_t
notmuch_database_destroy (notmuch_database_t *notmuch) notmuch_database_destroy (notmuch_database_t *notmuch)
{ {
notmuch_status_t status; notmuch_status_t status;
const char* talloc_report;
talloc_report = getenv ("NOTMUCH_TALLOC_REPORT");
if (talloc_report && strcmp (talloc_report, "") != 0) {
FILE *report = fopen (talloc_report, "a");
if (report) {
talloc_report_full (notmuch, report);
}
}
status = notmuch_database_close (notmuch); status = notmuch_database_close (notmuch);

View file

@ -589,7 +589,7 @@ main (int argc, char *argv[])
* talloc_enable_null_tracking * talloc_enable_null_tracking
*/ */
FILE *report = fopen (talloc_report, "w"); FILE *report = fopen (talloc_report, "a");
if (report) { if (report) {
talloc_report_full (NULL, report); talloc_report_full (NULL, report);
} else { } else {