From c96c5f7e3e17c82c9cee9ba1056880e33e934252 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=99=85=E7=BA=A2?= Date: Thu, 7 Nov 2024 02:55:50 +0000 Subject: [PATCH 1/5] add lock for FreeCameraMetadataBuffer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 秦际红 --- camera/metadata/include/camera_metadata_info.h | 2 ++ camera/metadata/src/camera_metadata_info.cpp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/camera/metadata/include/camera_metadata_info.h b/camera/metadata/include/camera_metadata_info.h index be3c3275..1595a827 100644 --- a/camera/metadata/include/camera_metadata_info.h +++ b/camera/metadata/include/camera_metadata_info.h @@ -19,6 +19,7 @@ #include #include #include +#include #include "camera_metadata_operator.h" static constexpr uint32_t MAX_SUPPORTED_TAGS = 1000; @@ -31,6 +32,7 @@ static constexpr uint32_t MIN_VEC_SIZE = 12; MaxAlignment(MaxAlignment(DATA_ALIGNMENT, METADATA_ALIGNMENT), ITEM_ALIGNMENT) namespace OHOS::Camera { +static std::mutex mtx_; class CameraMetadata { public: CameraMetadata(size_t itemCapacity, size_t dataCapacity); diff --git a/camera/metadata/src/camera_metadata_info.cpp b/camera/metadata/src/camera_metadata_info.cpp index ab3f18eb..353de138 100644 --- a/camera/metadata/src/camera_metadata_info.cpp +++ b/camera/metadata/src/camera_metadata_info.cpp @@ -1190,8 +1190,10 @@ int CameraMetadata::DeleteCameraMetadataItem(common_metadata_header_t *dst, uint void CameraMetadata::FreeCameraMetadataBuffer(common_metadata_header_t *dst) { + std::lock_guard lockGuard(mtx_); if (dst != nullptr) { free(dst); + dst = nullptr; } } -- Gitee From 7b74a22b5d1a3d9f4dea2867e068ee207f5d5a72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=99=85=E7=BA=A2?= Date: Thu, 7 Nov 2024 03:28:30 +0000 Subject: [PATCH 2/5] add lock for FreeCameraMetadataBuffer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 秦际红 --- camera/metadata/src/camera_metadata_info.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/camera/metadata/src/camera_metadata_info.cpp b/camera/metadata/src/camera_metadata_info.cpp index 353de138..856ee949 100644 --- a/camera/metadata/src/camera_metadata_info.cpp +++ b/camera/metadata/src/camera_metadata_info.cpp @@ -1190,7 +1190,7 @@ int CameraMetadata::DeleteCameraMetadataItem(common_metadata_header_t *dst, uint void CameraMetadata::FreeCameraMetadataBuffer(common_metadata_header_t *dst) { - std::lock_guard lockGuard(mtx_); + std::lock_guard lockGuard(mtx_); if (dst != nullptr) { free(dst); dst = nullptr; -- Gitee From 23a56ace374ca4a3c188f4cd04aba727dab28e3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=99=85=E7=BA=A2?= Date: Thu, 7 Nov 2024 03:59:15 +0000 Subject: [PATCH 3/5] add lock for FreeCameraMetadataBuffer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 秦际红 --- camera/metadata/include/camera_metadata_info.h | 1 - camera/metadata/src/camera_metadata_info.cpp | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/camera/metadata/include/camera_metadata_info.h b/camera/metadata/include/camera_metadata_info.h index 1595a827..150f7a7c 100644 --- a/camera/metadata/include/camera_metadata_info.h +++ b/camera/metadata/include/camera_metadata_info.h @@ -19,7 +19,6 @@ #include #include #include -#include #include "camera_metadata_operator.h" static constexpr uint32_t MAX_SUPPORTED_TAGS = 1000; diff --git a/camera/metadata/src/camera_metadata_info.cpp b/camera/metadata/src/camera_metadata_info.cpp index 856ee949..fb01fb01 100644 --- a/camera/metadata/src/camera_metadata_info.cpp +++ b/camera/metadata/src/camera_metadata_info.cpp @@ -20,10 +20,12 @@ #include #include #include +#include #include "camera_metadata_item_info.h" #include "camera_vendor_tag.h" namespace OHOS::Camera { +static std::mutex mtx_; static CameraVendorTag* g_vendorTagImpl = nullptr; const char* g_exampleVendorTagLib = "libcamera_example_vendor_tag_impl.z.so"; const char* g_vendorTagLib = "libcamera_vendor_tag_impl.z.so"; -- Gitee From f040bf3f343cc594d392c88723e54d81dfedcd68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=99=85=E7=BA=A2?= Date: Thu, 7 Nov 2024 03:59:37 +0000 Subject: [PATCH 4/5] add lock for FreeCameraMetadataBuffer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 秦际红 --- camera/metadata/src/camera_metadata_info.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/camera/metadata/src/camera_metadata_info.cpp b/camera/metadata/src/camera_metadata_info.cpp index fb01fb01..524a723b 100644 --- a/camera/metadata/src/camera_metadata_info.cpp +++ b/camera/metadata/src/camera_metadata_info.cpp @@ -25,7 +25,6 @@ #include "camera_vendor_tag.h" namespace OHOS::Camera { -static std::mutex mtx_; static CameraVendorTag* g_vendorTagImpl = nullptr; const char* g_exampleVendorTagLib = "libcamera_example_vendor_tag_impl.z.so"; const char* g_vendorTagLib = "libcamera_vendor_tag_impl.z.so"; -- Gitee From 88b571a962487fe953ecd5855df65f129d79bb17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=99=85=E7=BA=A2?= Date: Thu, 7 Nov 2024 04:00:12 +0000 Subject: [PATCH 5/5] add lock for FreeCameraMetadataBuffer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 秦际红 --- camera/metadata/include/camera_metadata_info.h | 1 - camera/metadata/src/camera_metadata_info.cpp | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/camera/metadata/include/camera_metadata_info.h b/camera/metadata/include/camera_metadata_info.h index 150f7a7c..be3c3275 100644 --- a/camera/metadata/include/camera_metadata_info.h +++ b/camera/metadata/include/camera_metadata_info.h @@ -31,7 +31,6 @@ static constexpr uint32_t MIN_VEC_SIZE = 12; MaxAlignment(MaxAlignment(DATA_ALIGNMENT, METADATA_ALIGNMENT), ITEM_ALIGNMENT) namespace OHOS::Camera { -static std::mutex mtx_; class CameraMetadata { public: CameraMetadata(size_t itemCapacity, size_t dataCapacity); diff --git a/camera/metadata/src/camera_metadata_info.cpp b/camera/metadata/src/camera_metadata_info.cpp index 524a723b..fb01fb01 100644 --- a/camera/metadata/src/camera_metadata_info.cpp +++ b/camera/metadata/src/camera_metadata_info.cpp @@ -25,6 +25,7 @@ #include "camera_vendor_tag.h" namespace OHOS::Camera { +static std::mutex mtx_; static CameraVendorTag* g_vendorTagImpl = nullptr; const char* g_exampleVendorTagLib = "libcamera_example_vendor_tag_impl.z.so"; const char* g_vendorTagLib = "libcamera_vendor_tag_impl.z.so"; -- Gitee