CBByteArray * CBNewByteArrayWithDataCopy(uint8_t * data,uint32_t size,void (*logError)(char *,...)){ CBByteArray * self = malloc(sizeof(*self)); if (NOT self) { logError("Cannot allocate %i bytes of memory in CBNewByteArrayWithDataCopy\n",sizeof(*self)); return NULL; } CBGetObject(self)->free = CBFreeByteArray; if(CBInitByteArrayWithDataCopy(self, data, size, logError)) return self; free(self); return NULL; }
CBByteArray * CBNewByteArrayWithDataCopy(uint8_t * data, uint32_t size) { CBByteArray * self = malloc(sizeof(*self)); CBGetObject(self)->free = CBFreeByteArray; CBInitByteArrayWithDataCopy(self, data, size); return self; }