MCPcopy Create free account
hub / github.com/defold/defold / LoadMessageFromFile

Function LoadMessageFromFile

engine/ddf/src/ddf/ddf.cpp:368–405  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

366 }
367
368 Result LoadMessageFromFile(const char* file_name, const Descriptor* desc, void** message)
369 {
370 FILE* f = fopen(file_name, "rb");
371 if (f)
372 {
373 if (fseek(f, 0, SEEK_END) != 0)
374 {
375 fclose(f);
376 return RESULT_IO_ERROR;
377 }
378
379 long size = ftell(f);
380
381 if (fseek(f, 0, SEEK_SET) != 0)
382 {
383 fclose(f);
384 return RESULT_IO_ERROR;
385 }
386
387 void* buffer = 0;
388 assert(dmMemory::RESULT_OK == dmMemory::AlignedMalloc(&buffer, 16, size));
389 if ( fread(buffer, 1, size, f) != (size_t) size )
390 {
391 dmMemory::AlignedFree(buffer);
392 fclose(f);
393 return RESULT_IO_ERROR;
394 }
395
396 Result e = LoadMessage(buffer, (uint32_t) size, desc, message);
397 fclose(f);
398 dmMemory::AlignedFree(buffer);
399 return e;
400 }
401 else
402 {
403 return RESULT_IO_ERROR;
404 }
405 }
406
407 Result ResolvePointers(const Descriptor* desc, void* message)
408 {

Callers 5

TESTFunction · 0.85
TEST_PFunction · 0.85
TEST_FFunction · 0.85
RunFileFunction · 0.85
SetUpMethod · 0.85

Calls 4

AlignedMallocFunction · 0.85
AlignedFreeFunction · 0.85
LoadMessageFunction · 0.70
assertFunction · 0.50

Tested by 5

TESTFunction · 0.68
TEST_PFunction · 0.68
TEST_FFunction · 0.68
RunFileFunction · 0.68
SetUpMethod · 0.68