From ff57f2053eb33b3d9ac77212eb10464e27523eb9 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 27 Dec 2022 19:30:01 +0200 Subject: [PATCH] fts: Add data stack frames to reduce memory usage when parsing many MIME parts --- src/plugins/fts/fts-build-mail.c | 8 +++++--- src/plugins/fts/fts-parser.c | 4 +++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/plugins/fts/fts-build-mail.c b/src/plugins/fts/fts-build-mail.c index 8a8e615c4f..d9ca6ccbd8 100644 --- a/src/plugins/fts/fts-build-mail.c +++ b/src/plugins/fts/fts-build-mail.c @@ -224,9 +224,11 @@ fts_build_body_begin(struct fts_mail_build_context *ctx, parser_context.content_disposition = ctx->content_disposition; parser_context.event = event_create(ctx->mail->box->event); event_add_category(parser_context.event, &event_category_fts); - event_set_append_log_prefix( - parser_context.event, - t_strdup_printf("fts-%s: ", ctx->update_ctx->backend->name)); + T_BEGIN { + const char *prefix = + t_strdup_printf("fts-%s: ", ctx->update_ctx->backend->name); + event_set_append_log_prefix(parser_context.event, prefix); + } T_END; if (fts_parser_init(&parser_context, &ctx->body_parser)) { /* extract text using the the returned parser */ diff --git a/src/plugins/fts/fts-parser.c b/src/plugins/fts/fts-parser.c index c0eac80d25..ccafd7838c 100644 --- a/src/plugins/fts/fts-parser.c +++ b/src/plugins/fts/fts-parser.c @@ -34,7 +34,9 @@ bool fts_parser_init(struct fts_parser_context *parser_context, } for (i = 0; i < N_ELEMENTS(parsers); i++) { - *parser_r = parsers[i]->try_init(parser_context); + T_BEGIN { + *parser_r = parsers[i]->try_init(parser_context); + } T_END; if (*parser_r != NULL) return TRUE; } -- 2.47.3