const char * FilesInMemory_getData (FilesInMemory me, const wchar_t *id, long *numberOfBytes) { *numberOfBytes = 0; long index = FilesInMemory_getIndexFromId (me, id); if (index == 0) return 0; FileInMemory fim = (FileInMemory) my item[index]; *numberOfBytes = fim -> d_numberOfBytes; return fim -> d_data; }
char * FilesInMemory_getCopyOfData (FilesInMemory me, const char32 *id, long *numberOfBytes) { *numberOfBytes = 0; long index = FilesInMemory_getIndexFromId (me, id); if (index == 0) return 0; FileInMemory fim = (FileInMemory) my item[index]; char *data = (char *) _Melder_malloc (fim -> d_numberOfBytes); if (! data || ! memcpy (data, fim -> d_data, fim -> d_numberOfBytes)) { //Melder_appendError (U"No memory for dictionary."); return nullptr; } *numberOfBytes = fim -> d_numberOfBytes; return data; }
char * FilesInMemory_getCopyOfData (FilesInMemory me, const wchar_t *id, long *numberOfBytes) { *numberOfBytes = 0; long index = FilesInMemory_getIndexFromId (me, id); if (index == 0) return 0; FileInMemory fim = (FileInMemory) my item[index]; char *data = (char *) _Melder_malloc (fim -> d_numberOfBytes); if (data == 0 || (memcpy (data, fim -> d_data, fim -> d_numberOfBytes) == NULL)) { //Melder_error_ (L"No memory for dictionary."); return 0; } *numberOfBytes = fim -> d_numberOfBytes; return data; }