增加parser独立缓存
authorhcj <1224667075@qq.com>
Fri, 15 Aug 2025 12:34:15 +0000 (20:34 +0800)
committerhcj <1224667075@qq.com>
Fri, 15 Aug 2025 12:34:15 +0000 (20:34 +0800)
code/sdk/drivers/peripheral/slip/cat1Service/websocket_parser.cpp

index 889c0f1..0d08579 100644 (file)
@@ -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--;