From af797fda85c894df416144fdfa3625ccb28be054 Mon Sep 17 00:00:00 2001 From: Jiaxun Wei <leuisken@gmail.com> Date: Sat, 14 Dec 2024 19:43:41 +0800 Subject: [PATCH] fix: enable return value for module listener --- bridge/core/page.cc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/bridge/core/page.cc b/bridge/core/page.cc index d84054aee9..5880f01bb3 100644 --- a/bridge/core/page.cc +++ b/bridge/core/page.cc @@ -98,7 +98,7 @@ NativeValue* WebFPage::invokeModuleEvent(SharedNativeString* native_module_name, } ExceptionState exception_state; - auto* return_value = static_cast<NativeValue*>(malloc(sizeof(NativeValue))); + auto* return_value = static_cast<NativeValue*>(dart_malloc(sizeof(NativeValue))); NativeValue tmp = result.ToNative(ctx, exception_state); if (exception_state.HasException()) { context_->HandleException(exception_state); @@ -108,8 +108,7 @@ NativeValue* WebFPage::invokeModuleEvent(SharedNativeString* native_module_name, memcpy(return_value, &tmp, sizeof(NativeValue)); return return_value; } else if (auto* callback = DynamicTo<WebFNativeFunction>(callback_value.get())) { - NativeValue* params = new NativeValue[2]; - + auto* params = new NativeValue[2]; ExceptionState exception_state; ScriptValue eventValue = event != nullptr ? event->ToValue() : ScriptValue::Empty(ctx); params[0] = eventValue.ToNative(ctx, exception_state); @@ -120,8 +119,10 @@ NativeValue* WebFPage::invokeModuleEvent(SharedNativeString* native_module_name, return nullptr; } - callback->Invoke(context_, 2, params); - return nullptr; + NativeValue tmp = callback->Invoke(context_, 2, params); + auto* return_value = static_cast<NativeValue*>(dart_malloc(sizeof(NativeValue))); + memcpy(return_value, &tmp, sizeof(NativeValue)); + return return_value; } }