@@ -362,70 +362,73 @@ wasm_native_init()
362362#if WASM_ENABLE_LIBC_BUILTIN != 0
363363 n_native_symbols = get_libc_builtin_export_apis (& native_symbols );
364364 if (!wasm_native_register_natives ("env" , native_symbols , n_native_symbols ))
365- return false ;
365+ goto fail ;
366366#endif /* WASM_ENABLE_LIBC_BUILTIN */
367367
368368#if WASM_ENABLE_SPEC_TEST
369369 n_native_symbols = get_spectest_export_apis (& native_symbols );
370370 if (!wasm_native_register_natives ("spectest" , native_symbols ,
371371 n_native_symbols ))
372- return false ;
372+ goto fail ;
373373#endif /* WASM_ENABLE_SPEC_TEST */
374374
375375#if WASM_ENABLE_LIBC_WASI != 0
376376 n_native_symbols = get_libc_wasi_export_apis (& native_symbols );
377377 if (!wasm_native_register_natives ("wasi_unstable" , native_symbols ,
378378 n_native_symbols ))
379- return false ;
379+ goto fail ;
380380 if (!wasm_native_register_natives ("wasi_snapshot_preview1" , native_symbols ,
381381 n_native_symbols ))
382- return false ;
382+ goto fail ;
383383#endif
384384
385385#if WASM_ENABLE_BASE_LIB != 0
386386 n_native_symbols = get_base_lib_export_apis (& native_symbols );
387387 if (n_native_symbols > 0
388388 && !wasm_native_register_natives ("env" , native_symbols ,
389389 n_native_symbols ))
390- return false ;
390+ goto fail ;
391391#endif
392392
393393#if WASM_ENABLE_APP_FRAMEWORK != 0
394394 n_native_symbols = get_ext_lib_export_apis (& native_symbols );
395395 if (n_native_symbols > 0
396396 && !wasm_native_register_natives ("env" , native_symbols ,
397397 n_native_symbols ))
398- return false ;
398+ goto fail ;
399399#endif
400400
401401#if WASM_ENABLE_LIB_PTHREAD != 0
402402 if (!lib_pthread_init ())
403- return false ;
403+ goto fail ;
404404
405405 n_native_symbols = get_lib_pthread_export_apis (& native_symbols );
406406 if (n_native_symbols > 0
407407 && !wasm_native_register_natives ("env" , native_symbols ,
408408 n_native_symbols ))
409- return false ;
409+ goto fail ;
410410#endif
411411
412412#if WASM_ENABLE_LIBC_EMCC != 0
413413 n_native_symbols = get_libc_emcc_export_apis (& native_symbols );
414414 if (n_native_symbols > 0
415415 && !wasm_native_register_natives ("env" , native_symbols ,
416416 n_native_symbols ))
417- return false ;
417+ goto fail ;
418418#endif /* WASM_ENABLE_LIBC_EMCC */
419419
420420#if WASM_ENABLE_LIB_RATS != 0
421421 n_native_symbols = get_lib_rats_export_apis (& native_symbols );
422422 if (n_native_symbols > 0
423423 && !wasm_native_register_natives ("env" , native_symbols ,
424424 n_native_symbols ))
425- return false ;
425+ goto fail ;
426426#endif /* WASM_ENABLE_LIB_RATS */
427427
428428 return true;
429+ fail :
430+ wasm_native_destroy ();
431+ return false;
429432}
430433
431434void
0 commit comments