From 28b736aff40ba0658e19d270b0a31ced9ccf9a01 Mon Sep 17 00:00:00 2001
From: Martin Beseda <martin.beseda@vsb.cz>
Date: Wed, 20 Mar 2019 03:32:23 +0100
Subject: [PATCH] FIX: Fixed memory leaks

---
 src/CSVReader/CSVReader.cpp | 8 ++++----
 src/CSVReader/CSVReader.h   | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/CSVReader/CSVReader.cpp b/src/CSVReader/CSVReader.cpp
index c35a43ff..319c2bf5 100644
--- a/src/CSVReader/CSVReader.cpp
+++ b/src/CSVReader/CSVReader.cpp
@@ -75,8 +75,8 @@ namespace lib4neuro {
         }
     }
 
-    DataSet CSVReader::get_data_set(std::vector<unsigned int>* input_col_indices,
-                                    std::vector<unsigned int>* output_col_indices) {
+    std::shared_ptr<DataSet> CSVReader::get_data_set(std::vector<unsigned int>* input_col_indices,
+                                                     std::vector<unsigned int>* output_col_indices) {
 
         std::vector<std::pair<std::vector<double>, std::vector<double>>> data_set_contents;
 
@@ -102,7 +102,7 @@ namespace lib4neuro {
                     boost::algorithm::erase_all(s, "\uFEFF");  // UTF-16
 
                     /* Check, if the string is a number */
-                    double tmp = boost::lexical_cast<double>(s);
+                    auto tmp = boost::lexical_cast<double>(s);
 
                     /* Add loaded number to the vector of inputs */
                     input.push_back(tmp);
@@ -124,6 +124,6 @@ namespace lib4neuro {
             data_set_contents.emplace_back(std::make_pair(input, output));
         }
 
-        return DataSet(&data_set_contents);
+        return std::make_shared<DataSet>(DataSet(&data_set_contents));
     }
 }
\ No newline at end of file
diff --git a/src/CSVReader/CSVReader.h b/src/CSVReader/CSVReader.h
index 9ef3691a..46a9ee4c 100644
--- a/src/CSVReader/CSVReader.h
+++ b/src/CSVReader/CSVReader.h
@@ -72,7 +72,7 @@ namespace lib4neuro {
          * @param output_col_indices
          * @return
          */
-        LIB4NEURO_API DataSet get_data_set(std::vector<unsigned int>* input_col_indices,
+        LIB4NEURO_API std::shared_ptr<DataSet> get_data_set(std::vector<unsigned int>* input_col_indices,
                 std::vector<unsigned int>* output_col_indices);
 
         /**
-- 
GitLab