3

clang_analyzer的重要性是什么,因为不使用它我看到分析器在下面的代码中大喊泄漏。

#ifndef __clang_analyzer__
CGPathRef pathWithRoundRect(CGRect iRect, CGFloat iRadius) {
    CGMutablePathRef returnVal = CGPathCreateMutable();
    CGPathMoveToPoint();
    CGPathAddArcToPoint();
    CGPathAddArcToPoint();
    CGPathAddArcToPoint();
    CGPathAddArcToPoint();
    CGPathCloseSubpath(returnVal);
    return returnVal;
}
#endif
4

1 回答 1

4

__clang_analyzer__是一个宏,在为分析器编译程序时定义(参见Clang 用户手册)。

当它被定义时,和之间的代码#ifndef没有#endif被编译,这意味着分析器看不到它,也不能告诉你CGMutablePath你从一个函数返回的拥有者,这个函数的名称并不表明它返回一个拥有参考。

您应该考虑添加create到函数名称的开头。

于 2012-05-07T19:52:20.693 回答