From 3aa3839f914d4b17e4153d655ad9909a35bd7361 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E9=B9=8F=E8=BE=89?= Date: Wed, 18 Jun 2025 15:44:58 +0800 Subject: [PATCH 1/5] change MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 梁鹏辉 --- .../display_command/display_cmd_responser.h | 11 +++----- .../display_command/display_cmd_responser.h | 27 +++++++------------ 2 files changed, 13 insertions(+), 25 deletions(-) diff --git a/display/composer/v1_0/display_command/display_cmd_responser.h b/display/composer/v1_0/display_command/display_cmd_responser.h index 12cc8c78..628d8b11 100755 --- a/display/composer/v1_0/display_command/display_cmd_responser.h +++ b/display/composer/v1_0/display_command/display_cmd_responser.h @@ -100,11 +100,6 @@ public: request_.reset(); } request_ = request; - requestData_.reset(new char[CmdUtils::INIT_ELEMENT_COUNT], std::default_delete()); - if (requestData_ == nullptr) { - HDF_LOGE("requestData alloc failed."); - return HDF_FAILURE; - } return HDF_SUCCESS; } @@ -169,15 +164,16 @@ public: HDF_LOGE("%{public}s: inEleCnt:%{public}u is too large", __func__, inEleCnt); return HDF_FAILURE; } + std::shared_ptr requestData(new char[inEleCnt * CmdUtils::ELEMENT_SIZE], std::default_delete()); int32_t ret = HDF_SUCCESS; { std::lock_guard lock(requestMutex_); - ret = request_->Read(reinterpret_cast(requestData_.get()), inEleCnt, + ret = request_->Read(reinterpret_cast(requestData.get()), inEleCnt, CmdUtils::TRANSFER_WAIT_TIME); } CommandDataUnpacker unpacker; - unpacker.Init(requestData_.get(), inEleCnt << CmdUtils::MOVE_SIZE); + unpacker.Init(requestData.get(), inEleCnt << CmdUtils::MOVE_SIZE); #ifdef DEBUG_DISPLAY_CMD_RAW_DATA unpacker.Dump(); #endif // DEBUG_DISPLAY_CMD_RAW_DATA @@ -1185,7 +1181,6 @@ protected: std::queue delayFreeQueue_; std::mutex requestMutex_; std::mutex replyMutex_; - std::shared_ptr requestData_; }; using HdiDisplayCmdResponser = DisplayCmdResponser, DisplayComposerVdiAdapter>; } // namespace V1_0 diff --git a/display/composer/v1_2/display_command/display_cmd_responser.h b/display/composer/v1_2/display_command/display_cmd_responser.h index 79243346..d162d422 100644 --- a/display/composer/v1_2/display_command/display_cmd_responser.h +++ b/display/composer/v1_2/display_command/display_cmd_responser.h @@ -227,14 +227,15 @@ REPLY: int32_t CmdRequest(uint32_t inEleCnt, const std::vector& inFds, uint32_t& outEleCnt, std::vector& outFds) { + std::shared_ptr requestData(new char[inEleCnt * CmdUtils::ELEMENT_SIZE], std::default_delete()); int32_t ret = HDF_SUCCESS; { std::lock_guard lock(requestMutex_); - ret = request_->Read(reinterpret_cast(requestData_.get()), inEleCnt, + ret = request_->Read(reinterpret_cast(requestData.get()), inEleCnt, CmdUtils::TRANSFER_WAIT_TIME); } CommandDataUnpacker unpacker; - unpacker.Init(requestData_.get(), inEleCnt << CmdUtils::MOVE_SIZE); + unpacker.Init(requestData.get(), inEleCnt << CmdUtils::MOVE_SIZE); #ifdef DEBUG_DISPLAY_CMD_RAW_DATA unpacker.Dump(); #endif // DEBUG_DISPLAY_CMD_RAW_DATA @@ -243,28 +244,21 @@ REPLY: bool retBool = unpacker.PackBegin(unpackCmd); DISPLAY_CHK_RETURN(retBool == false, HDF_FAILURE, HDF_LOGE("%{public}s: error: Check RequestBegin failed", __func__)); - if (unpackCmd != CONTROL_CMD_REQUEST_BEGIN) { - HDF_LOGE("error: unpacker PackBegin cmd not match, cmd(%{public}d)=%{public}s.", unpackCmd, - CmdUtils::CommandToString(unpackCmd)); - request_->Reset(); - reply_->Reset(); - return HDF_FAILURE; - } + DISPLAY_CHK_RETURN(unpackCmd != CONTROL_CMD_REQUEST_BEGIN, HDF_FAILURE, + HDF_LOGI("error: unpacker PackBegin cmd not match, cmd(%{public}d)=%{public}s", unpackCmd, + CmdUtils::CommandToString(unpackCmd))); DISPLAY_CHK_RETURN(PeriodDataReset() == HDF_FAILURE, HDF_FAILURE, HDF_LOGE("%{public}s: error: PeriodDataReset failed", __func__)); - while (unpacker.NextSection()) { + while (ret = HDF_SUCCESS && unpacker.NextSection()) { DISPLAY_CHK_RETURN(unpacker.BeginSection(unpackCmd) == false, HDF_FAILURE, HDF_LOGE("error: PackSection failed, unpackCmd=%{public}s.", CmdUtils::CommandToString(unpackCmd))); - if (ProcessRequestCmd(unpacker, unpackCmd, inFds, outFds) != HDF_SUCCESS) { - HDF_LOGE("%{public}s: ProcessRequestCmd failed, unpackCmd=%{public}d", __func__, unpackCmd); - request_->Reset(); - reply_->Reset(); - return HDF_FAILURE; - } + ret = ProcessRequestCmd(unpacker, unpackCmd, inFds, outFds); } + DSIPLAY_CHK_RETURN(ret != HDF_SUCCESS, ret, + HDF_LOGE("%{public}s: ProcessRequestCmd failed")); /* pack request end commands */ replyPacker_.PackEnd(CONTROL_CMD_REPLY_END); @@ -466,7 +460,6 @@ private: using BaseType1_1::CmdRequestDataWrite; using BaseType1_1::requestMutex_; using BaseType1_1::replyMutex_; - using BaseType1_1::requestData_; }; using HdiDisplayCmdResponser = DisplayCmdResponser, DisplayComposerVdiAdapter>; -- Gitee From 99210d93bc1103d75222a88b2073b3b2f45e7855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E9=B9=8F=E8=BE=89?= Date: Wed, 18 Jun 2025 16:00:47 +0800 Subject: [PATCH 2/5] change MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 梁鹏辉 --- display/composer/v1_2/display_command/display_cmd_responser.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/display/composer/v1_2/display_command/display_cmd_responser.h b/display/composer/v1_2/display_command/display_cmd_responser.h index d162d422..d346c189 100644 --- a/display/composer/v1_2/display_command/display_cmd_responser.h +++ b/display/composer/v1_2/display_command/display_cmd_responser.h @@ -245,7 +245,7 @@ REPLY: DISPLAY_CHK_RETURN(retBool == false, HDF_FAILURE, HDF_LOGE("%{public}s: error: Check RequestBegin failed", __func__)); DISPLAY_CHK_RETURN(unpackCmd != CONTROL_CMD_REQUEST_BEGIN, HDF_FAILURE, - HDF_LOGI("error: unpacker PackBegin cmd not match, cmd(%{public}d)=%{public}s", unpackCmd, + HDF_LOGI("error: unpacker PackBegin cmd not match, cmd(%{public}d)=%{public}s.", unpackCmd, CmdUtils::CommandToString(unpackCmd))); DISPLAY_CHK_RETURN(PeriodDataReset() == HDF_FAILURE, HDF_FAILURE, -- Gitee From f69868463e68ea714360f3a9592970f147bf2e9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E9=B9=8F=E8=BE=89?= Date: Wed, 18 Jun 2025 16:02:03 +0800 Subject: [PATCH 3/5] change MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 梁鹏辉 --- display/composer/v1_2/display_command/display_cmd_responser.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/display/composer/v1_2/display_command/display_cmd_responser.h b/display/composer/v1_2/display_command/display_cmd_responser.h index d346c189..44ebb849 100644 --- a/display/composer/v1_2/display_command/display_cmd_responser.h +++ b/display/composer/v1_2/display_command/display_cmd_responser.h @@ -250,7 +250,7 @@ REPLY: DISPLAY_CHK_RETURN(PeriodDataReset() == HDF_FAILURE, HDF_FAILURE, HDF_LOGE("%{public}s: error: PeriodDataReset failed", __func__)); - while (ret = HDF_SUCCESS && unpacker.NextSection()) { + while (ret == HDF_SUCCESS && unpacker.NextSection()) { DISPLAY_CHK_RETURN(unpacker.BeginSection(unpackCmd) == false, HDF_FAILURE, HDF_LOGE("error: PackSection failed, unpackCmd=%{public}s.", CmdUtils::CommandToString(unpackCmd))); -- Gitee From 6ec3aff5157a61cc39be3655d07bcd7364a7e7eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E9=B9=8F=E8=BE=89?= Date: Wed, 18 Jun 2025 16:04:09 +0800 Subject: [PATCH 4/5] change MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 梁鹏辉 --- display/composer/v1_2/display_command/display_cmd_responser.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/display/composer/v1_2/display_command/display_cmd_responser.h b/display/composer/v1_2/display_command/display_cmd_responser.h index 44ebb849..44cd1658 100644 --- a/display/composer/v1_2/display_command/display_cmd_responser.h +++ b/display/composer/v1_2/display_command/display_cmd_responser.h @@ -257,7 +257,7 @@ REPLY: ret = ProcessRequestCmd(unpacker, unpackCmd, inFds, outFds); } - DSIPLAY_CHK_RETURN(ret != HDF_SUCCESS, ret, + DISPLAY_CHK_RETURN(ret != HDF_SUCCESS, ret, HDF_LOGE("%{public}s: ProcessRequestCmd failed")); /* pack request end commands */ replyPacker_.PackEnd(CONTROL_CMD_REPLY_END); -- Gitee From 17bd3853498fcbbcac398d8ed145e94478abd1ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E9=B9=8F=E8=BE=89?= Date: Wed, 18 Jun 2025 16:05:03 +0800 Subject: [PATCH 5/5] change MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 梁鹏辉 --- display/composer/v1_2/display_command/display_cmd_responser.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/display/composer/v1_2/display_command/display_cmd_responser.h b/display/composer/v1_2/display_command/display_cmd_responser.h index 44cd1658..8a328edf 100644 --- a/display/composer/v1_2/display_command/display_cmd_responser.h +++ b/display/composer/v1_2/display_command/display_cmd_responser.h @@ -258,7 +258,7 @@ REPLY: } DISPLAY_CHK_RETURN(ret != HDF_SUCCESS, ret, - HDF_LOGE("%{public}s: ProcessRequestCmd failed")); + HDF_LOGE("%{public}s: ProcessRequestCmd failed", __func__)); /* pack request end commands */ replyPacker_.PackEnd(CONTROL_CMD_REPLY_END); -- Gitee