X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.0%2Fguicast%2Fbchash.C;h=180c70de7897c8c9074845fd5ec96f4886270eac;hb=ac6cc6b87e596ffb6cc0e3c5b965f99893e70acd;hp=573c0044ae260919ffae3e939b9b827700291044;hpb=3564c71f425f390745eb7c75d5121689d53e14c2;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.0/guicast/bchash.C b/cinelerra-5.0/guicast/bchash.C index 573c0044..180c70de 100644 --- a/cinelerra-5.0/guicast/bchash.C +++ b/cinelerra-5.0/guicast/bchash.C @@ -48,16 +48,21 @@ BC_Hash::BC_Hash(const char *filename) FileSystem directory; directory.parse_tildas(this->filename); - total = 0; } -BC_Hash::~BC_Hash() +void BC_Hash::clear() { for(int i = 0; i < total; i++) { delete [] names[i]; delete [] values[i]; } + total = 0; +} + +BC_Hash::~BC_Hash() +{ + clear(); delete [] names; delete [] values; } @@ -317,19 +322,8 @@ varFn(int,update,const char *) varFn(char *,get,char *) void BC_Hash::copy_from(BC_Hash *src) { // Can't delete because this is used by file decoders after plugins -// request data. -// for(int i = 0; i < total; i++) -// { -// delete [] names[i]; -// delete [] values[i]; -// } -// delete [] names; -// delete [] values; -// -// allocated = 0; -// names = 0; -// values = 0; -// total = 0; +// request data. use explicit destructor to clear/clean +// this->~BC_Hash(); SET_TRACE reallocate_table(src->total);