From e2b1f47bc5a132476e77429f6098a83e3ae83ec6 Mon Sep 17 00:00:00 2001 From: Anay Wadhera Date: Thu, 27 Feb 2025 10:33:44 -0800 Subject: [PATCH] Add a function to free the memory allocated when calling GetStringFlag PiperOrigin-RevId: 731778685 --- connections/c/nc.cc | 4 +++- connections/c/nc_types.h | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/connections/c/nc.cc b/connections/c/nc.cc index e94c0442..4ef62a63 100644 --- a/connections/c/nc.cc +++ b/connections/c/nc.cc @@ -103,7 +103,9 @@ class FlagReaderWrapper : public nearby::flags::FlagReader { }; NC_DATA flag_value = phenotype_flag_reader_.get_string_flag_value( context_, &flag_name, &default_value); - return std::string(flag_value.data, flag_value.size); + std::string ret = std::string(flag_value.data, flag_value.size); + phenotype_flag_reader_.free_string_value(&flag_value); + return ret; } private: diff --git a/connections/c/nc_types.h b/connections/c/nc_types.h index d173ef2b..50a3cc09 100644 --- a/connections/c/nc_types.h +++ b/connections/c/nc_types.h @@ -337,6 +337,8 @@ typedef struct NC_PHENOTYPE_FLAG_READER { const NC_DATA (*get_string_flag_value)(READER_CONTEXT context, const NC_DATA* flag_name, const NC_DATA* default_value); + // Frees a string allocated when calling get_string_flag_value. + const void (*free_string_value)(const NC_DATA* value); } NC_PHENOTYPE_FLAG_READER; #ifdef __cplusplus