X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=typescript_strings.py;h=3596c2b8f34a988a745ac68f8ab5436e0706cd26;hb=39ca1868e3495be75218a44bd2f978d5fc9abd2e;hp=2979481d1e9ab4648d4d532246e090284923e3ea;hpb=e9d64013788bec0a08c1c0e422fd989e062c7c6e;p=ldk-java diff --git a/typescript_strings.py b/typescript_strings.py index 2979481d..3596c2b8 100644 --- a/typescript_strings.py +++ b/typescript_strings.py @@ -73,21 +73,15 @@ imports.wasi_snapshot_preview1 = { // This is called before fd_write to format + print panic messages console.log("wasi_snapshot_preview1:environ_sizes_get"); const out_count_view = new Uint32Array(wasm.memory.buffer, environ_var_count_ptr, 1); - out_count_view[0] = 1; + out_count_view[0] = 0; const out_len_view = new Uint32Array(wasm.memory.buffer, environ_len_ptr, 1); - out_len_view[0] = "RUST_BACKTRACE=1".length + 1; // Note that string must be NULL-terminated + out_len_view[0] = 0; return 0; }, "environ_get": (environ_ptr: number, environ_buf_ptr: number) => { // This is called before fd_write to format + print panic messages console.log("wasi_snapshot_preview1:environ_get"); - const out_ptrs = new Uint32Array(wasm.memory.buffer, environ_ptr, 2); - out_ptrs[0] = environ_buf_ptr; - out_ptrs[1] = "RUST_BACKTRACE=1".length; - const out_environ = new Uint8Array(wasm.memory.buffer, environ_buf_ptr, out_ptrs[1]); - for (var i = 0; i < out_ptrs[1]; i++) { out_environ[i] = "RUST_BACKTRACE=1".codePointAt(i); } - out_environ[out_ptrs[1]] = 0; - return 0; + return 58; // Note supported - we said there were 0 environment entries! }, "proc_exit" : () => { console.log("wasi_snapshot_preview1:proc_exit"); @@ -207,6 +201,9 @@ const decodeUint32Array = (arrayPointer: number, free = true) => { return actualArray; } + +export function freeWasmMemory(pointer: number) { wasm.TS_free(pointer); } + /* @internal */ export function getU32ArrayElem(arrayPointer: number, idx: number): number { const actualArrayViewer = new Uint32Array(wasm.memory.buffer, arrayPointer + 4, idx + 1); @@ -376,8 +373,9 @@ typedef struct allocation { static allocation* allocation_ll = NULL; static allocation* freed_ll = NULL; -void* __real_malloc(size_t len); -void* __real_calloc(size_t nmemb, size_t len); +extern void* __real_malloc(size_t len); +extern void* __real_calloc(size_t nmemb, size_t len); +extern void* __real_aligned_alloc(size_t alignment, size_t size); static void new_allocation(void* res, const char* struct_name, int lineno) { allocation* new_alloc = __real_malloc(sizeof(allocation)); new_alloc->ptr = res; @@ -450,6 +448,11 @@ void* __wrap_calloc(size_t nmemb, size_t len) { new_allocation(res, "calloc call", 0); return res; } +void* __wrap_aligned_alloc(size_t alignment, size_t size) { + void* res = __real_aligned_alloc(alignment, size); + new_allocation(res, "aligned_alloc call", 0); + return res; +} void __wrap_free(void* ptr) { if (ptr == NULL) return; alloc_freed(ptr, 0); @@ -629,6 +632,8 @@ import * as bindings from '../bindings.mjs' assert False def constr_hu_array(self, ty_info, arr_len): return "new Array(" + arr_len + ").fill(null)" + def cleanup_converted_native_array(self, ty_info, arr_name): + return "bindings.freeWasmMemory(" + arr_name + ")" def primitive_arr_from_hu(self, mapped_ty, fixed_len, arr_name): inner = arr_name