diff --git a/source/extensions/m3_extensions.c b/source/extensions/m3_extensions.c index 19ada7f..9d94662 100644 --- a/source/extensions/m3_extensions.c +++ b/source/extensions/m3_extensions.c @@ -110,3 +110,15 @@ IM3Function m3_GetFunctionByIndex (IM3Module i_module, uint32_t i_index) { return Module_GetFunction (i_module, i_index); } + +M3Result m3_GetFunctionIndex (IM3Function i_function, + uint32_t * o_index) +{ + if (i_function and o_index) + { + * o_index = i_function->index; + + return m3Err_none; + } + else return m3Err_functionLookupFailed; +} diff --git a/source/extensions/wasm3_ext.h b/source/extensions/wasm3_ext.h index 437eef9..edea27c 100644 --- a/source/extensions/wasm3_ext.h +++ b/source/extensions/wasm3_ext.h @@ -30,8 +30,9 @@ extern "C" { // To overwrite an existing function, set io_functionIndex to the desired element. i_signature must match the existing // function signature. // ** InjectFunction invalidates any existing IM3Function pointers - M3Result m3_InjectFunction (IM3Module i_module, + M3Result m3_InjectFunction (IM3Module io_module, int32_t * io_functionIndex, +// const char * const i_name, const char * const i_signature, const uint8_t * const i_wasmBytes, // i_wasmBytes is copied bool i_doCompilation); @@ -40,6 +41,9 @@ extern "C" { IM3Function m3_GetFunctionByIndex (IM3Module i_module, uint32_t i_index); + M3Result m3_GetFunctionIndex (IM3Function i_function, + uint32_t * o_index); + #if defined(__cplusplus) } #endif