From a0273cc20d345c26a2697f58c9f8da5262b9ddff Mon Sep 17 00:00:00 2001 From: anulax1225 Date: Thu, 13 Jun 2024 22:54:24 +0200 Subject: [PATCH] Fixed memory leak --- src/bakatools/json/node.cpp | 22 ++++++++++++++++++++++ src/bakatools/json/node.h | 4 +++- src/bakatools/string/string_tools.h | 2 +- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/bakatools/json/node.cpp b/src/bakatools/json/node.cpp index 409417f..adcc0f6 100644 --- a/src/bakatools/json/node.cpp +++ b/src/bakatools/json/node.cpp @@ -1,6 +1,28 @@ #include "node.h" namespace Bk::Json { + Node::~Node() + { + switch(type) + { + case Type::OBJECT: + { + delete values.object; + break; + } + case Type::LIST: + { + delete values.list; + break; + } + case Type::STRING: + { + delete values.s; + break; + } + } + } + std::string Node::to_string(int indent) { std::string space_string = std::string(indent, ' '); diff --git a/src/bakatools/json/node.h b/src/bakatools/json/node.h index 5e5f71d..4570930 100644 --- a/src/bakatools/json/node.h +++ b/src/bakatools/json/node.h @@ -21,7 +21,9 @@ namespace Bk::Json NUMBER, BOOLEAN, NULL_TYPE - }; + }; + + ~Node(); Type get_type() { return type; } bool is_type(Type type) { return type == this->type; } diff --git a/src/bakatools/string/string_tools.h b/src/bakatools/string/string_tools.h index e843fa3..e7aeffc 100644 --- a/src/bakatools/string/string_tools.h +++ b/src/bakatools/string/string_tools.h @@ -1,6 +1,6 @@ #pragma once -#include +#include #include "format.h" namespace Bk::Tools {