void NRT_MemSys_process_defer_dtor(void) { MemInfo *mi; while ((mi = nrt_pop_meminfo_list(&TheMSys.mi_deferlist))) { NRT_Debug(nrt_debug_print("Defer dtor %p\n", mi)); nrt_meminfo_call_dtor(mi); } }
MemInfo* NRT_MemSys_pop_meminfo(void) { MemInfo *node = nrt_pop_meminfo_list(&TheMSys.mi_freelist); if (NULL == node) { node = meminfo_malloc(); } memset(node, 0, sizeof(MemInfo)); /* to catch bugs; not required */ NRT_Debug(nrt_debug_print("NRT_MemSys_pop_meminfo: return %p\n", node)); return node; }