From 79ac56f5c4bd6400c04cd26e4698557579c4fcac Mon Sep 17 00:00:00 2001 From: "heng.guo" Date: Sat, 24 Nov 2018 15:20:35 +0800 Subject: [PATCH] allocate revcive buffer by using dynamic array sizing instead of allocate from heap dynamically --- core/sqf/src/tm/tm.cpp | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/core/sqf/src/tm/tm.cpp b/core/sqf/src/tm/tm.cpp index e812cab1aa..d043ffad53 100644 --- a/core/sqf/src/tm/tm.cpp +++ b/core/sqf/src/tm/tm.cpp @@ -2789,8 +2789,7 @@ void tm_process_msg(BMS_SRE *pp_sre) { short lv_ret; char la_send_buffer[4096]; - char la_recv_buffer[sizeof(Tm_Req_Msg_Type)]; - char *la_recv_buffer_ddl = NULL; + char la_recv_buffer[pp_sre->sre_reqDataSize]; Tm_Broadcast_Req_Type *lp_br_req; Tm_Broadcast_Rsp_Type *lp_br_rsp; Tm_Perf_Stats_Req_Type *lp_ps_req; @@ -2805,18 +2804,9 @@ void tm_process_msg(BMS_SRE *pp_sre) TMTrace(2, ("tm_process_msg ENTRY\n")); - if((unsigned)(pp_sre->sre_reqDataSize) > (sizeof(Tm_Req_Msg_Type))){ - la_recv_buffer_ddl = new char[pp_sre->sre_reqDataSize]; - - lv_ret = BMSG_READDATA_(pp_sre->sre_msgId, // msgid - la_recv_buffer_ddl, // reqdata - pp_sre->sre_reqDataSize); // bytecount - - }else{ lv_ret = BMSG_READDATA_(pp_sre->sre_msgId, // msgid la_recv_buffer, // reqdata pp_sre->sre_reqDataSize); // bytecount - } if (lv_ret != 0) { @@ -3073,10 +3063,7 @@ void tm_process_msg(BMS_SRE *pp_sre) // TM_TX_Info::process_eventQ method once the request // has been processed. - if( la_recv_buffer_ddl!=NULL) - lp_msg = new CTmTxMessage((Tm_Req_Msg_Type *) la_recv_buffer_ddl, pp_sre->sre_msgId, la_recv_buffer_ddl); - else - lp_msg = new CTmTxMessage((Tm_Req_Msg_Type *) &la_recv_buffer, pp_sre->sre_msgId, NULL); + lp_msg = new CTmTxMessage((Tm_Req_Msg_Type *) &la_recv_buffer, pp_sre->sre_msgId, NULL); if (lp_msg_hdr->dialect_type == DIALECT_TM_DP2_SQ) {