CBChainDescriptor * CBNewChainDescriptor(void (*logError)(char *,...)){ CBChainDescriptor * self = malloc(sizeof(*self)); if (NOT self) { logError("Cannot allocate %i bytes of memory in CBNewChainDescriptor\n",sizeof(*self)); return NULL; } CBGetObject(self)->free = CBFreeChainDescriptor; if(CBInitChainDescriptor(self,logError)) return self; free(self); return NULL; }
CBChainDescriptor * CBNewChainDescriptor(){ CBChainDescriptor * self = malloc(sizeof(*self)); CBGetObject(self)->free = CBFreeChainDescriptor; CBInitChainDescriptor(self); return self; }