目录

AVBuffer API Not Paired

使用OH_AVBuffer_Create()创建的音视频缓冲区,使用完毕后,需及时调用OH_AVBuffer_Destroy()进行销毁,避免缓冲区资源无法回收,造成内存泄漏。

规则配置

// rules.json

{
  "rules": {
     "cpp": {
       "ResourceLeak": [
         {
           "ruleId": "AVBuffer API Not Paired",
           "severity": "error",
           "skip": false
         }
       ]
     }
   }
}

正例

// 正例代码

#include "web/arkweb_scheme_handler.h"
void CreateResponseWithDestroy()
{
    ArkWeb_Response *response;
    // 创建 ArkWeb 响应
    OH_ArkWeb_CreateResponse(&response);
    
    if (response == nullptr) {
        return;
    }
    
    // 设置响应内容...
    
    // 正确销毁响应对象
    OH_ArkWeb_DestroyResponse(response);
}

反例

// 反例代码

#include "web/arkweb_scheme_handler.h"
void CreateResponseWithoutDestroy()
{
    ArkWeb_Response *response;
    // 创建 ArkWeb 响应
    OH_ArkWeb_CreateResponse(&response);
    
    if (response == nullptr) {
        return;
    }
    
    // 使用 response...
    
    // 未销毁 - 内存泄漏!
}

Code Scanner代码检查规则的配置指导请参考1.6.3 代码检查工具(codescanner)