From e2bc8682183c0d8e228a3186f067a0c42712ec55 Mon Sep 17 00:00:00 2001 From: zhouoaoteng Date: Sun, 11 Aug 2024 12:04:18 +0800 Subject: [PATCH] fix:user_after_free Signed-off-by: zhouoaoteng --- interfaces/kits/picker/include/modal_ui_callback.h | 4 ++-- interfaces/kits/picker/src/modal_ui_callback.cpp | 2 +- interfaces/kits/picker/src/picker_n_exporter.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/interfaces/kits/picker/include/modal_ui_callback.h b/interfaces/kits/picker/include/modal_ui_callback.h index eef34d8c..3ad79529 100644 --- a/interfaces/kits/picker/include/modal_ui_callback.h +++ b/interfaces/kits/picker/include/modal_ui_callback.h @@ -27,7 +27,7 @@ namespace Picker { class ModalUICallback { public: - explicit ModalUICallback(Ace::UIContent* uiContent, PickerCallBack* pickerCallBack); + explicit ModalUICallback(Ace::UIContent* uiContent, std::shared_ptr pickerCallBack); void OnRelease(int32_t releaseCode); void OnResultForModal(int32_t resultCode, const OHOS::AAFwk::Want& result); void OnReceive(const OHOS::AAFwk::WantParams& request); @@ -38,7 +38,7 @@ public: private: int32_t sessionId_ = 0; Ace::UIContent* uiContent; - PickerCallBack* pickerCallBack_; + std::shared_ptr pickerCallBack_; }; } // namespace Picker } // namespace OHOS diff --git a/interfaces/kits/picker/src/modal_ui_callback.cpp b/interfaces/kits/picker/src/modal_ui_callback.cpp index 7193d1c3..ea4f059b 100644 --- a/interfaces/kits/picker/src/modal_ui_callback.cpp +++ b/interfaces/kits/picker/src/modal_ui_callback.cpp @@ -20,7 +20,7 @@ namespace OHOS { namespace Picker { using namespace OHOS::Ace; using namespace std; -ModalUICallback::ModalUICallback(Ace::UIContent* uiContent, PickerCallBack* pickerCallBack) +ModalUICallback::ModalUICallback(Ace::UIContent* uiContent, std::shared_ptr pickerCallBack) { this->uiContent = uiContent; this->pickerCallBack_ = pickerCallBack; diff --git a/interfaces/kits/picker/src/picker_n_exporter.cpp b/interfaces/kits/picker/src/picker_n_exporter.cpp index f0e03c14..41f50d2f 100644 --- a/interfaces/kits/picker/src/picker_n_exporter.cpp +++ b/interfaces/kits/picker/src/picker_n_exporter.cpp @@ -197,7 +197,7 @@ static napi_value StartPickerExtension(napi_env env, napi_callback_info info, } request.SetParam(ABILITY_WANT_PARAMS_UIEXTENSIONTARGETTYPE, targetType); AsyncContext->pickerCallBack = make_shared(); - auto callback = std::make_shared(uiContent, AsyncContext->pickerCallBack.get()); + auto callback = std::make_shared(uiContent, AsyncContext->pickerCallBack); Ace::ModalUIExtensionCallbacks extensionCallback = { .onRelease = std::bind(&ModalUICallback::OnRelease, callback, std::placeholders::_1), .onResult = std::bind(&ModalUICallback::OnResultForModal, callback, std::placeholders::_1, -- Gitee