Просмотр исходного кода

Fix wasm-c-api trap message format issue (#644)

And fix two compile warnings.
Wenyong Huang 4 лет назад
Родитель
Сommit
a5ffd656fa

+ 1 - 1
core/iwasm/aot/aot_runtime.c

@@ -2300,7 +2300,7 @@ invoke_wasm_c_api_native(AOTModuleInstance *module_inst, void *func_ptr,
     }
     if (trap) {
         if (trap->message->data) {
-            snprintf(fmt, sizeof(fmt), "%%%us", (uint32)trap->message->size);
+            snprintf(fmt, sizeof(fmt), "%%.%us", (uint32)trap->message->size);
             snprintf(module_inst->cur_exception,
                      sizeof(module_inst->cur_exception),
                      fmt, trap->message->data);

+ 1 - 1
core/iwasm/common/wasm_runtime_common.c

@@ -835,7 +835,7 @@ wasm_runtime_destroy_thread_env()
 {
 #if WASM_ENABLE_AOT != 0
 #ifdef OS_ENABLE_HW_BOUND_CHECK
-    return aot_signal_destroy();
+    aot_signal_destroy();
 #endif
 #endif
 }

+ 1 - 1
core/shared/platform/windows/win_thread.c

@@ -141,7 +141,7 @@ os_thread_cleanup(void *retval)
     BH_FREE(thread_data);
 }
 
-static unsigned
+static unsigned __stdcall
 os_thread_wrapper(void *arg)
 {
     os_thread_data *thread_data = arg;

+ 3 - 1
samples/wasm-c-api/src/trap.c

@@ -92,6 +92,7 @@ int main(int argc, const char* argv[]) {
 
   // Call.
   for (int i = 0; i < 2; ++i) {
+    char buf[32];
     const wasm_func_t* func = wasm_extern_as_func(exports.data[i]);
     if (func == NULL) {
       printf("> Error accessing export!\n");
@@ -109,7 +110,8 @@ int main(int argc, const char* argv[]) {
     printf("Printing message...\n");
     own wasm_name_t message;
     wasm_trap_message(trap, &message);
-    printf("> %s\n", message.data);
+    snprintf(buf, sizeof(buf), "> %%.%us\n", (unsigned)message.size);
+    printf(buf, message.data);
 
     wasm_trap_delete(trap);
     wasm_name_delete(&message);