mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-18 09:21:35 +00:00
if that's what's necessary
This commit is contained in:
@ -2,13 +2,16 @@ import { HEAP_BASE, memory } from "../memory";
|
||||
import { AL_MASK, MAX_SIZE_32 } from "../util/allocator";
|
||||
|
||||
// @ts-ignore: decorator
|
||||
@lazy var startOffset: usize = (HEAP_BASE + AL_MASK) & ~AL_MASK;
|
||||
@lazy
|
||||
var startOffset: usize = (HEAP_BASE + AL_MASK) & ~AL_MASK;
|
||||
|
||||
// @ts-ignore: decorator
|
||||
@lazy var offset: usize = startOffset;
|
||||
@lazy
|
||||
var offset: usize = startOffset;
|
||||
|
||||
// @ts-ignore: decorator
|
||||
@unsafe @global function __memory_allocate(size: usize): usize {
|
||||
@unsafe @global
|
||||
function __memory_allocate(size: usize): usize {
|
||||
if (size > MAX_SIZE_32) unreachable();
|
||||
var ptr = offset;
|
||||
var newPtr = (ptr + max<usize>(size, 1) + AL_MASK) & ~AL_MASK;
|
||||
@ -27,10 +30,12 @@ import { AL_MASK, MAX_SIZE_32 } from "../util/allocator";
|
||||
}
|
||||
|
||||
// @ts-ignore: decorator
|
||||
@unsafe @global function __memory_free(ptr: usize): void {
|
||||
@unsafe @global
|
||||
function __memory_free(ptr: usize): void {
|
||||
}
|
||||
|
||||
// @ts-ignore: decorator
|
||||
@unsafe @global function __memory_reset(): void {
|
||||
@unsafe @global
|
||||
function __memory_reset(): void {
|
||||
offset = startOffset;
|
||||
}
|
||||
|
@ -1,15 +1,19 @@
|
||||
// @ts-ignore: decorator
|
||||
@unsafe declare function _malloc(size: usize): usize;
|
||||
@unsafe
|
||||
declare function _malloc(size: usize): usize;
|
||||
|
||||
// @ts-ignore: decorator
|
||||
@unsafe declare function _free(ptr: usize): void;
|
||||
@unsafe
|
||||
declare function _free(ptr: usize): void;
|
||||
|
||||
// @ts-ignore: decorator
|
||||
@unsafe @global function __memory_allocate(size: usize): usize {
|
||||
@unsafe @global
|
||||
function __memory_allocate(size: usize): usize {
|
||||
return _malloc(size);
|
||||
}
|
||||
|
||||
// @ts-ignore: decorator
|
||||
@unsafe @global function __memory_free(ptr: usize): void {
|
||||
@unsafe @global
|
||||
function __memory_free(ptr: usize): void {
|
||||
_free(ptr);
|
||||
}
|
||||
|
@ -1,15 +1,19 @@
|
||||
// @ts-ignore: decorator
|
||||
@unsafe declare function malloc(size: usize): usize;
|
||||
@unsafe
|
||||
declare function malloc(size: usize): usize;
|
||||
|
||||
// @ts-ignore: decorator
|
||||
@unsafe declare function free(ptr: usize): void;
|
||||
@unsafe
|
||||
declare function free(ptr: usize): void;
|
||||
|
||||
// @ts-ignore: decorator
|
||||
@unsafe @global function __memory_allocate(size: usize): usize {
|
||||
@unsafe @global
|
||||
function __memory_allocate(size: usize): usize {
|
||||
return malloc(size);
|
||||
}
|
||||
|
||||
// @ts-ignore: decorator
|
||||
@unsafe @global function __memory_free(ptr: usize): void {
|
||||
@unsafe @global
|
||||
function __memory_free(ptr: usize): void {
|
||||
free(ptr);
|
||||
}
|
||||
|
@ -423,7 +423,8 @@ var ROOT: Root = changetype<Root>(0);
|
||||
|
||||
/** Allocates a chunk of memory. */
|
||||
// @ts-ignore: decorator
|
||||
@unsafe @global function __memory_allocate(size: usize): usize {
|
||||
@unsafe @global
|
||||
function __memory_allocate(size: usize): usize {
|
||||
// initialize if necessary
|
||||
var root = ROOT;
|
||||
if (!root) {
|
||||
@ -471,8 +472,9 @@ var ROOT: Root = changetype<Root>(0);
|
||||
}
|
||||
|
||||
/** Frees the chunk of memory at the specified address. */
|
||||
// @ts-ignore
|
||||
@unsafe @global function __memory_free(data: usize): void {
|
||||
// @ts-ignore: decorator
|
||||
@unsafe @global
|
||||
function __memory_free(data: usize): void {
|
||||
if (data) {
|
||||
let root = ROOT;
|
||||
if (root) {
|
||||
|
Reference in New Issue
Block a user