From b8c60ae1c266e14ff23b0f5b108e635b49f3b1e2 Mon Sep 17 00:00:00 2001 From: wangxiuwen Date: Thu, 30 Jul 2026 10:20:58 +0800 Subject: [PATCH] fix(runtime): release two-pass frame on empty result --- runtime/onnxruntime/src/funasrruntime.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/runtime/onnxruntime/src/funasrruntime.cpp b/runtime/onnxruntime/src/funasrruntime.cpp index fbcc34bd4..e0d908928 100644 --- a/runtime/onnxruntime/src/funasrruntime.cpp +++ b/runtime/onnxruntime/src/funasrruntime.cpp @@ -564,12 +564,8 @@ if (wfst_decoder){ wfst_decoder->StartUtterance(); } - float** buff; - int* len; - buff = new float*[1]; - len = new int[1]; - buff[0] = frame->data; - len[0] = frame->len; + float* buff[] = {frame->data}; + int len[] = {frame->len}; vector msgs; if(tpass_stream->GetModelType() == MODEL_SVS){ msgs = (tpass_stream->asr_handle)->Forward(buff, len, true, svs_lang, svs_itn, 1); @@ -579,6 +575,8 @@ string msg = msgs.size()>0?msgs[0]:""; std::vector msg_vec = funasr::SplitStr(msg, " | "); // split with timestamp if(msg_vec.size()==0){ + delete frame; + frame = nullptr; continue; } msg = msg_vec[0];