diff --git a/libIRDB/include/core/variantid.hpp b/libIRDB/include/core/variantid.hpp index 9e7285fab718b435c6c3ca3b4b1636ca06be0ff5..f9536cf41028f1a0ffd2abd07a5baeacef067662 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 4daf529f1cc4d7e87a08322aceef47c9250a4014..1de34b5f1275a0a1340d28d586af4533326aad69 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.