From: hcj <1224667075@qq.com> Date: Fri, 15 Aug 2025 12:34:15 +0000 (+0800) Subject: 增加parser独立缓存 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=07e8ac85bf74e0cb866b48f1ffda9bf1dd759c5b;p=mirrors%2FFD230.git 增加parser独立缓存 --- diff --git a/code/sdk/drivers/peripheral/slip/cat1Service/websocket_parser.cpp b/code/sdk/drivers/peripheral/slip/cat1Service/websocket_parser.cpp index 889c0f197..0d085790d 100644 --- a/code/sdk/drivers/peripheral/slip/cat1Service/websocket_parser.cpp +++ b/code/sdk/drivers/peripheral/slip/cat1Service/websocket_parser.cpp @@ -91,24 +91,19 @@ ws_parser_t* ws_parser_init() { WS_LOGE("WS: Failed to allocate memory for parser"); return NULL; } - - // 初始化全局缓存 - if (!g_ws_buffer) { - WS_LOGI("WS: Allocating global buffer (%d bytes)", WS_BUFFER_SIZE); - g_ws_buffer = (uint8_t*)malloc(WS_BUFFER_SIZE); - if (!g_ws_buffer) { + parser->buffer = (uint8_t*)malloc(WS_BUFFER_SIZE); + if (!parser->buffer) { WS_LOGE("WS: Failed to allocate global buffer"); free(parser); return NULL; - } - } + } g_parser_count++; WS_LOGI("WS: Parser count: %d", g_parser_count); // 初始化解析器状态 parser->state = WS_STATE_START; - parser->buffer = g_ws_buffer; + parser->buffer_pos = 0; parser->payload_remaining = 0; parser->mask_pos = 0; @@ -607,6 +602,10 @@ ws_parse_state_t ws_parser_get_state(ws_parser_t* parser) { // 销毁解析器 void ws_parser_destroy(ws_parser_t* parser) { if (parser) { + + if(parser->buffer) + free(parser->buffer); + free(parser); g_parser_count--;