2018-03-04 01:30:16 +01:00
|
|
|
/**
|
2018-03-19 01:12:18 +01:00
|
|
|
* Emscripten Memory Allocator.
|
2018-03-04 01:30:16 +01:00
|
|
|
*
|
|
|
|
* 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.
|
2018-03-19 01:12:18 +01:00
|
|
|
*
|
|
|
|
* @module std/assembly/allocator/emscripten
|
|
|
|
*//***/
|
2018-02-02 04:21:06 +01:00
|
|
|
|
|
|
|
declare function _malloc(size: usize): usize;
|
|
|
|
declare function _free(ptr: usize): void;
|
|
|
|
|
2018-07-19 16:15:56 +02:00
|
|
|
// Memory allocator interface
|
|
|
|
|
|
|
|
@global export function __memory_allocate(size: usize): usize {
|
2018-02-02 04:21:06 +01:00
|
|
|
return _malloc(size);
|
|
|
|
}
|
|
|
|
|
2018-07-19 16:15:56 +02:00
|
|
|
@global export function __memory_free(ptr: usize): void {
|
2018-02-02 04:21:06 +01:00
|
|
|
_free(ptr);
|
|
|
|
}
|