MCPcopy Create free account
hub / github.com/alibaba/MNN / MNNMemoryCallocAlign

Function MNNMemoryCallocAlign

source/core/MNNMemoryUtils.cpp:36–51  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

34}
35
36extern "C" void *MNNMemoryCallocAlign(size_t size, size_t alignment) {
37 MNN_ASSERT(size > 0);
38
39#ifdef MNN_DEBUG_MEMORY
40 return calloc(size, 1);
41#else
42 void **origin = (void **)calloc(size + sizeof(void *) + alignment, 1);
43 MNN_ASSERT(origin != NULL)
44 if (!origin) {
45 return NULL;
46 }
47 void **aligned = alignPointer(origin + 1, alignment);
48 aligned[-1] = origin;
49 return aligned;
50#endif
51}
52
53extern "C" void MNNMemoryFreeAlign(void *aligned) {
54#ifdef MNN_DEBUG_MEMORY

Callers 2

runMethod · 0.85

Calls 1

alignPointerFunction · 0.85

Tested by 1

runMethod · 0.68