MCPcopy Create free account
hub / github.com/csound/csound / mmalloc

Function mmalloc

Engine/memalloc.c:63–92  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

61}
62
63void *mmalloc(CSOUND *csound, size_t size)
64{
65 void *p;
66
67#ifdef MEMDEBUG
68 if (UNLIKELY(size == (size_t) 0)) {
69 csound->DebugMsg(csound,
70 " *** internal error: mmalloc() called with zero nbytes\n");
71 return NULL;
72 }
73#endif
74 /* allocate memory */
75 if (UNLIKELY((p = malloc(ALLOC_BYTES(size))) == NULL)) {
76 memdie(csound, size); /* does a long jump */
77 }
78 /* link into chain */
79#ifdef MEMDEBUG
80 ((memAllocBlock_t*) p)->magic = MEMALLOC_MAGIC;
81 ((memAllocBlock_t*) p)->ptr = DATA_PTR(p);
82#endif
83 CSOUND_MEM_SPINLOCK
84 ((memAllocBlock_t*) p)->prv = (memAllocBlock_t*) NULL;
85 ((memAllocBlock_t*) p)->nxt = (memAllocBlock_t*) MEMALLOC_DB;
86 if (MEMALLOC_DB != NULL)
87 ((memAllocBlock_t*) MEMALLOC_DB)->prv = (memAllocBlock_t*) p;
88 MEMALLOC_DB = (void*) p;
89 CSOUND_MEM_SPINUNLOCK
90 /* return with data pointer */
91 return DATA_PTR(p);
92}
93
94void *mmallocDebug(CSOUND *csound, size_t size, char *file, int line)
95{

Callers 2

mmallocDebugFunction · 0.85
mreallocFunction · 0.85

Calls 1

memdieFunction · 0.85

Tested by

no test coverage detected