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; }