From 10e26bd8e02957f87b239d7ad166a8a49b0eedd7 Mon Sep 17 00:00:00 2001 From: Matthew McGill <mhollismcgill@gmail.com> Date: Fri, 5 Oct 2018 16:48:13 +0000 Subject: [PATCH] VariantID_t's destructor frees File_t objects Former-commit-id: e9d0f8d6aa435a2edf62ef432b81c725a31c8cf4 --- libIRDB/include/core/variantid.hpp | 3 ++- libIRDB/src/core/variantid.cpp | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/libIRDB/include/core/variantid.hpp b/libIRDB/include/core/variantid.hpp index 9e7285fab..f9536cf41 100644 --- a/libIRDB/include/core/variantid.hpp +++ b/libIRDB/include/core/variantid.hpp @@ -29,7 +29,8 @@ class VariantID_t : public BaseObj_t { public: VariantID_t(); // create a Variant ID not in the database - VariantID_t(db_id_t pid); // read from the DB + VariantID_t(db_id_t pid); // read from the DB + ~VariantID_t(); // Deletes the File_t objects -- beware dangling File_t* in FileIR_t objects! bool IsRegistered(); bool Register(); // accesses DB diff --git a/libIRDB/src/core/variantid.cpp b/libIRDB/src/core/variantid.cpp index 4daf529f1..1de34b5f1 100644 --- a/libIRDB/src/core/variantid.cpp +++ b/libIRDB/src/core/variantid.cpp @@ -38,6 +38,19 @@ VariantID_t::VariantID_t() : } +VariantID_t::~VariantID_t() +{ + for(std::set<File_t*>::iterator + it = files.begin(); + it != files.end(); + ++it + ) + { + delete *it; + } +} + + void VariantID_t::CreateTables() { // note: this tables are now part of File_t. -- GitLab