More memory allocators

This commit is contained in:
dcodeIO
2018-02-02 04:21:06 +01:00
parent 8d4be9a714
commit 4ce8c7a6b0
4 changed files with 50 additions and 7 deletions

View File

@ -0,0 +1,20 @@
///////////////////////// Emscripten Memory Allocator //////////////////////////
// Uses Emscripten's exported _malloc and _free implementations, i.e., when
// linking with Emscripten-compiled programs that already provide these.
// Differs from 'system' in that their names are prefixed with an underscore.
declare function _malloc(size: usize): usize;
declare function _free(ptr: usize): void;
export function allocate_memory(size: usize): usize {
return _malloc(size);
}
export function free_memory(ptr: usize): void {
_free(ptr);
}
export function reset_memory(): void {
throw new Error("not supported");
}

View File

@ -0,0 +1,19 @@
/////////////////////////// System Memory Allocator ////////////////////////////
// Uses the environment's malloc and free implementations, i.e., when linking
// with other C-like programs that already provide these.
declare function malloc(size: usize): usize;
declare function free(ptr: usize): void;
export function allocate_memory(size: usize): usize {
return malloc(size);
}
export function free_memory(ptr: usize): void {
free(ptr);
}
export function reset_memory(): void {
throw new Error("not supported");
}

View File

@ -1,3 +1,5 @@
////////////// TLSF (Two-Level Segregate Fit) Memory Allocator ////////////////
// Re-export for now, so there's just one source file being worked on
export {