mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-21 10:41:42 +00:00
More memory allocators
This commit is contained in:
20
std/assembly/allocator/emscripten.ts
Normal file
20
std/assembly/allocator/emscripten.ts
Normal 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");
|
||||
}
|
19
std/assembly/allocator/system.ts
Normal file
19
std/assembly/allocator/system.ts
Normal 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");
|
||||
}
|
@ -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 {
|
||||
|
Reference in New Issue
Block a user