From 33d6143a1acaa3bcee0790ee62952a0857ed5546 Mon Sep 17 00:00:00 2001 From: Sebastian Schmidt Date: Thu, 28 Sep 2023 11:02:09 -0700 Subject: [PATCH] Don't convert nullptr to std::string in C layer PiperOrigin-RevId: 569232756 --- .../processors/classifier_options_converter.cc | 4 +++- mediapipe/tasks/c/core/base_options_converter.cc | 10 ++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/mediapipe/tasks/c/components/processors/classifier_options_converter.cc b/mediapipe/tasks/c/components/processors/classifier_options_converter.cc index e7a8f4e4..eca2b3d3 100644 --- a/mediapipe/tasks/c/components/processors/classifier_options_converter.cc +++ b/mediapipe/tasks/c/components/processors/classifier_options_converter.cc @@ -14,6 +14,7 @@ limitations under the License. ==============================================================================*/ #include +#include #include #include "mediapipe/tasks/c/components/processors/classifier_options.h" @@ -24,7 +25,8 @@ namespace mediapipe::tasks::c::components::processors { void CppConvertToClassifierOptions( const ClassifierOptions& in, mediapipe::tasks::components::processors::ClassifierOptions* out) { - out->display_names_locale = in.display_names_locale; + out->display_names_locale = + in.display_names_locale ? std::string(in.display_names_locale) : ""; out->max_results = in.max_results; out->score_threshold = in.score_threshold; out->category_allowlist = diff --git a/mediapipe/tasks/c/core/base_options_converter.cc b/mediapipe/tasks/c/core/base_options_converter.cc index c06d86b1..78f5edb4 100644 --- a/mediapipe/tasks/c/core/base_options_converter.cc +++ b/mediapipe/tasks/c/core/base_options_converter.cc @@ -15,6 +15,9 @@ limitations under the License. #include "mediapipe/tasks/c/core/base_options_converter.h" +#include +#include + #include "mediapipe/tasks/c/core/base_options.h" #include "mediapipe/tasks/cc/core/base_options.h" @@ -23,8 +26,11 @@ namespace mediapipe::tasks::c::components::containers { void CppConvertToBaseOptions(const BaseOptions& in, mediapipe::tasks::core::BaseOptions* out) { out->model_asset_buffer = - std::make_unique(in.model_asset_buffer); - out->model_asset_path = in.model_asset_path; + in.model_asset_buffer + ? std::make_unique(in.model_asset_buffer) + : nullptr; + out->model_asset_path = + in.model_asset_path ? std::string(in.model_asset_path) : ""; } } // namespace mediapipe::tasks::c::components::containers