From 683d5297614a7deb0f9e970350da757af848dda3 Mon Sep 17 00:00:00 2001 From: Martin Beseda <martin.beseda@vsb.cz> Date: Wed, 9 Jan 2019 16:00:43 +0100 Subject: [PATCH] FIX: Started using smart pointers in CSVReader, solving some memory leaks. --- src/CSVReader/CSVReader.cpp | 7 ++++--- src/CSVReader/CSVReader.h | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/CSVReader/CSVReader.cpp b/src/CSVReader/CSVReader.cpp index 8a7cf402..71352024 100644 --- a/src/CSVReader/CSVReader.cpp +++ b/src/CSVReader/CSVReader.cpp @@ -8,6 +8,7 @@ #include <filesystem> #include <regex> #include <algorithm> +#include <memory> #include <boost/lexical_cast.hpp> #include <boost/algorithm/string/erase.hpp> @@ -25,7 +26,7 @@ namespace lib4neuro { this->delimiter = delimiter; this->ignore_first_line = ignore_first_line; this->header_included = ignore_first_line; - this->data = new std::vector<std::vector<std::string>>; + this->data = std::make_unique<std::vector<std::vector<std::string>>>(); } void CSVReader::read() { @@ -61,8 +62,8 @@ namespace lib4neuro { ifs.close(); } - std::vector<std::vector<std::string>>* CSVReader::get_data() { - return this->data; + std::unique_ptr<std::vector<std::vector<std::string>>>* CSVReader::get_data() { + return &this->data; } void CSVReader::print_data() { diff --git a/src/CSVReader/CSVReader.h b/src/CSVReader/CSVReader.h index 713470ad..9ef3691a 100644 --- a/src/CSVReader/CSVReader.h +++ b/src/CSVReader/CSVReader.h @@ -43,7 +43,7 @@ namespace lib4neuro { /** * */ - std::vector<std::vector<std::string>>* data; + std::unique_ptr<std::vector<std::vector<std::string>>> data; public: @@ -64,7 +64,7 @@ namespace lib4neuro { * * @return */ - LIB4NEURO_API std::vector<std::vector<std::string>>* get_data(); + LIB4NEURO_API std::unique_ptr<std::vector<std::vector<std::string>>>* get_data(); /** * -- GitLab