| 61 | } |
| 62 | |
| 63 | void *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 | |
| 94 | void *mmallocDebug(CSOUND *csound, size_t size, char *file, int line) |
| 95 | { |
no test coverage detected