From a84856e299f91dfcc31ba0cd397f32e2aa13711d Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Sat, 19 Feb 2022 15:53:47 -0500 Subject: Use memory tracking API when in core for rapidjson --- workflow.cpp | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'workflow.cpp') diff --git a/workflow.cpp b/workflow.cpp index d3a13950..a779b81f 100644 --- a/workflow.cpp +++ b/workflow.cpp @@ -164,7 +164,10 @@ bool Workflow::RegisterActivity(Ref activity, const vector& su bool result = BNWorkflowRegisterActivity( m_object, activity->GetObject(), (const char**)buffer, subactivities.size(), description.c_str()); - BNFreeStringList(buffer, subactivities.size()); + + for (size_t i = 0; i < subactivities.size(); i++) + BNFreeString(buffer[i]); + delete[] buffer; return result; } @@ -252,7 +255,10 @@ bool Workflow::AssignSubactivities(const string& activity, const vector& buffer[i] = BNAllocString(subactivities[i].c_str()); bool result = BNWorkflowAssignSubactivities(m_object, activity.c_str(), (const char**)buffer, subactivities.size()); - BNFreeStringList(buffer, subactivities.size()); + + for (size_t i = 0; i < subactivities.size(); i++) + BNFreeString(buffer[i]); + delete[] buffer; return result; } @@ -265,14 +271,11 @@ bool Workflow::Clear() bool Workflow::Insert(const string& activity, const std::string& newActivity) { - char** buffer = new char*[1]; - if (!buffer) - return false; - + char* buffer[1]; buffer[0] = BNAllocString(newActivity.c_str()); bool result = BNWorkflowInsert(m_object, activity.c_str(), (const char**)buffer, 1); - BNFreeStringList(buffer, 1); + BNFreeString(buffer[0]); return result; } @@ -287,7 +290,10 @@ bool Workflow::Insert(const string& activity, const vector& activities) buffer[i] = BNAllocString(activities[i].c_str()); bool result = BNWorkflowInsert(m_object, activity.c_str(), (const char**)buffer, activities.size()); - BNFreeStringList(buffer, activities.size()); + + for (size_t i = 0; i < activities.size(); i++) + BNFreeString(buffer[i]); + delete[] buffer; return result; } -- cgit v1.3.1