いくつかの不透明な型があり、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
おくのと同じくらい悪いです。MytypeRelease
free
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__*/
}