From f8b171a91dfb2d0e22712fb297bc08664a6633cb Mon Sep 17 00:00:00 2001 From: Chris Lalancette Date: Mon, 23 Oct 2023 19:37:22 +0000 Subject: [PATCH] Revamp copyString to use memcpy. Also make it allocate less memory in general. Signed-off-by: Chris Lalancette --- bondcpp/include/bondcpp/bond.hpp | 2 +- smclib/include/smclib/statemap.hpp | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/bondcpp/include/bondcpp/bond.hpp b/bondcpp/include/bondcpp/bond.hpp index f60bb02..7e15fe4 100644 --- a/bondcpp/include/bondcpp/bond.hpp +++ b/bondcpp/include/bondcpp/bond.hpp @@ -158,7 +158,7 @@ class Bond void publishingTimerReset(); BONDCPP_PUBLIC void publishingTimerCancel(); - + BONDCPP_PUBLIC double getDeadPublishPeriod() const {return dead_publish_period_.seconds();} BONDCPP_PUBLIC diff --git a/smclib/include/smclib/statemap.hpp b/smclib/include/smclib/statemap.hpp index 65e866e..e338652 100644 --- a/smclib/include/smclib/statemap.hpp +++ b/smclib/include/smclib/statemap.hpp @@ -84,9 +84,13 @@ inline char * copyString(const char * s) { char * retval = NULL; if (s != NULL) { - retval = new char[MAX_NAME_LEN + 1]; - retval[MAX_NAME_LEN] = '\0'; - (void) std::strncpy(retval, s, MAX_NAME_LEN); + size_t copy_len = strlen(s); + if (copy_len > MAX_NAME_LEN) { + copy_len = MAX_NAME_LEN; + } + retval = new char[copy_len + 1]; + memcpy(retval, s, copy_len); + retval[copy_len] = '\0'; } return retval;