From 22223e354a0809b20e38001caafbc9468cb43d0c Mon Sep 17 00:00:00 2001 From: hellohyh001 Date: Fri, 10 Mar 2023 08:25:52 +0000 Subject: [PATCH] update Signed-off-by: hellohyh001 Change-Id: I7094f9ad81241bffce06b318af049cd3d23346d9 --- services/sensor/include/fifo_cache_data.h | 4 ++-- services/sensor/src/fifo_cache_data.cpp | 16 ++++++++++++++-- services/sensor/src/sensor_data_processer.cpp | 4 ++-- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/services/sensor/include/fifo_cache_data.h b/services/sensor/include/fifo_cache_data.h index 7a1713b5..f82e6c7e 100644 --- a/services/sensor/include/fifo_cache_data.h +++ b/services/sensor/include/fifo_cache_data.h @@ -34,13 +34,13 @@ public: void SetFifoCacheData(const std::vector &fifoCacheData); std::vector GetFifoCacheData() const; void SetChannel(const sptr &channel); - sptr GetChannel() const; + bool IsSameChannel(const sptr &channel) const; void InitFifoCache(); private: DISALLOW_COPY_AND_MOVE(FifoCacheData); uint64_t periodCount_; - sptr channel_; + wptr channel_; std::vector fifoCacheData_; }; } // namespace Sensors diff --git a/services/sensor/src/fifo_cache_data.cpp b/services/sensor/src/fifo_cache_data.cpp index b3aa44c8..63dc1710 100644 --- a/services/sensor/src/fifo_cache_data.cpp +++ b/services/sensor/src/fifo_cache_data.cpp @@ -15,8 +15,16 @@ #include "fifo_cache_data.h" +#include "sensors_errors.h" + namespace OHOS { namespace Sensors { +using namespace OHOS::HiviewDFX; + +namespace { +constexpr HiLogLabel LABEL = { LOG_CORE, SENSOR_LOG_DOMAIN, "FifoCacheData" }; +} // namespace + FifoCacheData::FifoCacheData() : periodCount_(0), channel_(nullptr) {} @@ -55,9 +63,13 @@ void FifoCacheData::SetChannel(const sptr &channel) { channel_ = channel; } -sptr FifoCacheData::GetChannel() const + +bool FifoCacheData::IsSameChannel(const sptr &channel) const { - return channel_; + CHKPF(channel); + sptr promoteChannel = channel_.promote(); + CHKPF(promoteChannel); + return (channel == promoteChannel); } } // namespace Sensors } // namespace OHOS diff --git a/services/sensor/src/sensor_data_processer.cpp b/services/sensor/src/sensor_data_processer.cpp index 5dc6a707..bf22b1de 100644 --- a/services/sensor/src/sensor_data_processer.cpp +++ b/services/sensor/src/sensor_data_processer.cpp @@ -84,7 +84,7 @@ void SensorDataProcesser::SendNoneFifoCacheData(std::unordered_mapsecond) { - if (fifoCacheData->GetChannel() != channel) { + if (!fifoCacheData->IsSameChannel(channel)) { continue; } channelExist = true; @@ -130,7 +130,7 @@ void SensorDataProcesser::SendFifoCacheData(std::unordered_mapsecond) { - if (fifoData->GetChannel() != channel) { + if (!fifoData->IsSameChannel(channel)) { continue; } channelExist = true; -- Gitee