2

いくつかの不透明な型があり、Core Foundation を模倣する参照カウント セマンティックを実装しました。これは、clangが半有効な潜在的なリークについて警告することを除いて、十分に機能します。

MyTypeRef MyTypeRefCreateWithSomething(…) {
    MyTypeRef value = MyTypeRefCreate(…);
    MyTypeRef adjustedValue = MyTypeRefCreate(…);
    MyTypeRefRelease(value);
    return adjustedValue; // clang says that this might be a leak of `value`… 
     // which is only true if something goes wrong with reference counting.
 }

私はattribute_cf_consumed自分のバージョンを作成するようなものや簡単な方法を探しています。

参考までに、これは私が現在警告を黙らせる方法です。それは機能しますが、私の意見では、警告をそのままにしてifおくのと同じくらい悪いです。MytypeReleasefree

void MyTypeRelease(MyTypeRef degree) {
    ((MyMutableTypeRef)degree)->refCount--;
    #ifndef __clang_analyzer__
    if ((degree->refCount <= 0) && !MyTypeIsNull(degree)) {
    #endif /*__clang_analyzer__*/
        free((CTJUMTMutableScaleDegree)degree);
    #ifndef __clang_analyzer__
    }
    #endif /*__clang_analyzer__*/
}
4

0 に答える 0