fix(progress): memory leak on progress-message with history=false

This commit is contained in:
shadmansaleh
2025-09-04 20:36:56 +06:00
parent 2415d8f424
commit e5ba875a95

View File

@@ -352,6 +352,7 @@ MsgID msg_multihl(MsgID id, HlMessage hl_msg, const char *kind, bool history, bo
msg_start(); msg_start();
msg_clr_eos(); msg_clr_eos();
bool need_clear = false; bool need_clear = false;
bool hl_msg_updated = false;
msg_ext_history = history; msg_ext_history = history;
if (kind != NULL) { if (kind != NULL) {
msg_ext_set_kind(kind); msg_ext_set_kind(kind);
@@ -375,6 +376,7 @@ MsgID msg_multihl(MsgID id, HlMessage hl_msg, const char *kind, bool history, bo
HlMessage formated_message = format_progress_message(hl_msg, msg_data); HlMessage formated_message = format_progress_message(hl_msg, msg_data);
if (formated_message.items != hl_msg.items) { if (formated_message.items != hl_msg.items) {
*needs_msg_clear = true; *needs_msg_clear = true;
hl_msg_updated = true;
hl_msg = formated_message; hl_msg = formated_message;
} }
} }
@@ -397,6 +399,10 @@ MsgID msg_multihl(MsgID id, HlMessage hl_msg, const char *kind, bool history, bo
is_multihl = false; is_multihl = false;
no_wait_return--; no_wait_return--;
msg_end(); msg_end();
if (hl_msg_updated && !(history && kv_size(hl_msg))) {
hl_msg_free(hl_msg);
}
return id; return id;
} }