Skip to content

Memory allocation in Webassembly #21

Description

@tainnhan

Hello,

I'm currently trying to integrate rust code into my expo app. After compiling my rust code into wasm I have a sign_bg.wasm.d.ts. The function signature look like this:

/* tslint:disable */
/* eslint-disable */
export const memory: WebAssembly.Memory;
export function add(a: number, b: number): number;
export function greet(a: number, b: number, c: number): void;
export function generate_eddsa_signature(a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number): void;
export function __wbindgen_malloc(a: number, b: number): number;
export function __wbindgen_realloc(a: number, b: number, c: number, d: number): number;
export function __wbindgen_add_to_stack_pointer(a: number): number;
export function __wbindgen_free(a: number, b: number, c: number): void;
export function __wbindgen_exn_store(a: number): void;
        const module = await WebAssembly.instantiate<{
          memory: WebAssembly.Memory;
          __wbindgen_add_to_stack_pointer: (a: number) => number;
          __wbindgen_malloc: (a: number, b: number) => number;
          __wbindgen_realloc: (
            a: number,
            b: number,
            c: number,
            d: number
          ) => number;
          __wbindgen_free: (a: number, b: number, c: number) => void;
        }>(wasmBytes);

After this initializitation I use

let ptr = module.instance.exports. __wbindgen_malloc(5,1);
console.log(ptr); // gives me 1114120 

I checked my size of memory

let length = module.instance.exports.memory.byteLength;
console.log(length) // gives me 1114112

How can the allocated memory of my pointer be outside of the boundary of my Assembly Memory? Do I misunderstand here something?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions