我正在尋找一個註解像是否有一個與malloc'd指針的__attribute __((ns_returns_retained))等價的東西?
-(SomeStruct *) structFromInternals __attribute__((returns_malloced_ptr))
{
SomeStruct *ret = malloc(sizeof(SomeStruct));
//do stuff
return ret;
}
撫慰鐺靜態分析器的野獸。 我可以找到的唯一可行的屬性鏈接是for GCC,但它甚至不包括ns_returns_retained
,我認爲這是一個擴展。
編輯:
,爲什麼這是需要的,我有,我不能在簡單的情況下攝製,所以它可能在一個Objective-C的項目與交流LIB做方案......要點是,我得到一個靜態分析警告,在CREATESTRUCT malloc的泄漏:
typedef struct{
void * data;
size_t len;
}MyStruct;
void destroyStruct(MyStruct * s)
{
if (s && s->data) {
free(s->data);
}
if (s) {
free(s);
}
}
MyStruct * createStructNoCopy(size_t len, void * data)
{
MyStruct * retStruct = malloc(sizeof(MyStruct));
retStruct->len = len;
retStruct->data = data;
return retStruct;
}
MyStruct * createStruct(size_t len, void * data)
{
char * tmpData = malloc(len);
memcpy(tmpData, data, len);
return createStructNoCopy(len, tmpData);
}
MyStruct * copyStruct(MyStruct * s)
{
return createStruct(s->len, s->data);
}
爲什麼你需要這個? – 2013-04-29 18:17:34
只需將其寫入文檔即可。 – 2013-04-29 18:54:27