@@ -2675,17 +2675,18 @@ wasm_runtime_init_wasi(WASMModuleInstanceCommon *module_inst,
26752675 char * argv [], uint32 argc , int stdinfd , int stdoutfd ,
26762676 int stderrfd , char * error_buf , uint32 error_buf_size )
26772677{
2678- uvwasi_t * uvwasi = NULL ;
2678+ WASIContext * ctx ;
2679+ uvwasi_t * uvwasi ;
26792680 uvwasi_options_t init_options ;
26802681 const char * * envp = NULL ;
26812682 uint64 total_size ;
26822683 uint32 i ;
26832684 bool ret = false;
26842685
2685- uvwasi = runtime_malloc (sizeof (uvwasi_t ), module_inst , error_buf ,
2686- error_buf_size );
2687- if (!uvwasi )
2686+ ctx = runtime_malloc (sizeof (* ctx ), module_inst , error_buf , error_buf_size );
2687+ if (!ctx )
26882688 return false;
2689+ uvwasi = & ctx -> uvwasi ;
26892690
26902691 /* Setup the initialization options */
26912692 uvwasi_options_init (& init_options );
@@ -2733,7 +2734,7 @@ wasm_runtime_init_wasi(WASMModuleInstanceCommon *module_inst,
27332734 goto fail ;
27342735 }
27352736
2736- wasm_runtime_set_wasi_ctx (module_inst , uvwasi );
2737+ wasm_runtime_set_wasi_ctx (module_inst , ctx );
27372738
27382739 ret = true;
27392740
@@ -2863,12 +2864,19 @@ wasm_runtime_destroy_wasi(WASMModuleInstanceCommon *module_inst)
28632864 WASIContext * wasi_ctx = wasm_runtime_get_wasi_ctx (module_inst );
28642865
28652866 if (wasi_ctx ) {
2866- uvwasi_destroy (wasi_ctx );
2867+ uvwasi_destroy (& wasi_ctx -> uvwasi );
28672868 wasm_runtime_free (wasi_ctx );
28682869 }
28692870}
28702871#endif
28712872
2873+ uint32_t
2874+ wasm_runtime_get_wasi_exit_code (WASMModuleInstanceCommon * module_inst )
2875+ {
2876+ WASIContext * wasi_ctx = wasm_runtime_get_wasi_ctx (module_inst );
2877+ return wasi_ctx -> exit_code ;
2878+ }
2879+
28722880WASIContext *
28732881wasm_runtime_get_wasi_ctx (WASMModuleInstanceCommon * module_inst_comm )
28742882{
0 commit comments