From 2bc6e16887d7289a653076e80d2a7b638c127270 Mon Sep 17 00:00:00 2001 From: Bechir Braham Date: Thu, 22 Feb 2024 15:30:48 +0100 Subject: [PATCH] remove leaks --- src/core/Frame.hpp | 3 +++ src/file_io/file/File.cpp | 7 +++++++ src/file_io/file/File.hpp | 2 +- src/file_io/file/JsonFile.cpp | 6 +++++- src/main.cpp | 1 + 5 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/core/Frame.hpp b/src/core/Frame.hpp index 46de922..87aa778 100644 --- a/src/core/Frame.hpp +++ b/src/core/Frame.hpp @@ -21,4 +21,7 @@ class Frame { public: Frame(std::byte* fp, ssize_t rows, ssize_t cols); DataType get(int row, int col); + ~Frame(){ + delete[] data; + } }; \ No newline at end of file diff --git a/src/file_io/file/File.cpp b/src/file_io/file/File.cpp index e69de29..944e477 100644 --- a/src/file_io/file/File.cpp +++ b/src/file_io/file/File.cpp @@ -0,0 +1,7 @@ +#include "File.hpp" + +File::~File() { + for (auto& subfile : subfiles) { + delete subfile; + } +} diff --git a/src/file_io/file/File.hpp b/src/file_io/file/File.hpp index 3081310..ffdf7f3 100644 --- a/src/file_io/file/File.hpp +++ b/src/file_io/file/File.hpp @@ -51,7 +51,7 @@ class File { config cfg{0,0}; // File(); - // ~File(); + ~File(); inline size_t bytes_per_frame() const { return rows * cols * bitdepth / 8; } inline size_t pixels() const { return rows * cols; } diff --git a/src/file_io/file/JsonFile.cpp b/src/file_io/file/JsonFile.cpp index bb05ea4..f4c3f0e 100644 --- a/src/file_io/file/JsonFile.cpp +++ b/src/file_io/file/JsonFile.cpp @@ -10,7 +10,11 @@ Frame JsonFile::get_frame(int frame_number){ subfiles[subfile_id]->get_frame(buffer, frame_number%max_frames_per_file); - return Frame(buffer, rows, cols); + + auto f = Frame(buffer, rows, cols); + + delete[] buffer; + return f; diff --git a/src/main.cpp b/src/main.cpp index 60f5aa9..d1f05b7 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -33,4 +33,5 @@ int main() { delete fileFactory; + delete f; }