From 83c72dc8baa58ba8829e2d27265be82a69c72206 Mon Sep 17 00:00:00 2001 From: huyx Date: Wed, 15 May 2024 14:55:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BB=A3=E7=A0=81=E5=88=86?= =?UTF-8?q?=E6=94=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: huyx --- adapter/uhdf2/ipc/include/hdf_remote_adapter.h | 1 + adapter/uhdf2/ipc/src/hdf_remote_adapter.cpp | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/adapter/uhdf2/ipc/include/hdf_remote_adapter.h b/adapter/uhdf2/ipc/include/hdf_remote_adapter.h index 142ea9cfb..f5c358596 100644 --- a/adapter/uhdf2/ipc/include/hdf_remote_adapter.h +++ b/adapter/uhdf2/ipc/include/hdf_remote_adapter.h @@ -34,6 +34,7 @@ public: OHOS::MessageParcel &data, OHOS::MessageParcel &reply, OHOS::MessageOption &option) override; ~HdfRemoteServiceStub(); int32_t Dump(int32_t fd, const std::vector &args) override; + void HdfRemoteStubClearHolder(); private: struct HdfRemoteService *service_; }; diff --git a/adapter/uhdf2/ipc/src/hdf_remote_adapter.cpp b/adapter/uhdf2/ipc/src/hdf_remote_adapter.cpp index 0d8eb11a9..b08774c3a 100644 --- a/adapter/uhdf2/ipc/src/hdf_remote_adapter.cpp +++ b/adapter/uhdf2/ipc/src/hdf_remote_adapter.cpp @@ -42,6 +42,7 @@ int HdfRemoteServiceStub::OnRemoteRequest(uint32_t code, { (void)option; if (service_ == nullptr) { + HDF_LOGE("service_ is nullptr"); return HDF_ERR_INVALID_OBJECT; } @@ -65,6 +66,11 @@ HdfRemoteServiceStub::~HdfRemoteServiceStub() { } +void HdfRemoteServiceStub::HdfRemoteStubClearHolder() +{ + service_ = nullptr; +} + int32_t HdfRemoteServiceStub::Dump(int32_t fd, const std::vector &args) { return HdfDump(fd, args); @@ -222,6 +228,8 @@ void HdfRemoteAdapterRecycle(struct HdfRemoteService *object) { struct HdfRemoteServiceHolder *holder = reinterpret_cast(object); if (holder != nullptr) { + HdfRemoteServiceStub *stub = reinterpret_cast(holder->remote_.GetRefPtr()); + stub->HdfRemoteStubClearHolder(); holder->remote_ = nullptr; delete holder; } -- Gitee