Hi,

I am currently porting some code now that requires me to know if the memory 
of a pointer is allocated on the heap or the stack. Is there an API in 
Emcripten that allows me to do this? I tried to do this using the 
STACK_BASE and STACK_MAX javascript variables but didn't manage to get very 
far. The following is my code:

bool isStackAddress()
{
    void* ptr = malloc(5 * sizeof(int));

    int result = EM_ASM_INT( { 
        console.error('STACK_BASE: ' + STACK_BASE + ' STACKTOP: ' + 
STACKTOP + ' STACK_MAX:' + STACK_MAX + ' ptr: ' + $0); 
        return 1; // return dummy result
    }, ptr);
    return result;
}

But this is what I observed when I ran the function:
STACK_BASE = 61904
STACKTOP = 61904
STACK_MAX = 5304784
ptr = 5318696

I had expected ptr to be bigger than STACK_BASE + STACK_MAX (5366688) but 
apparently this is not the case. Is there a better way or existing API in 
Emscripten that identifies if a chunk of memory is allocated on the stack 
or heap? Thanks.

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to