X-Git-Url: https://cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Findexfile.C;h=885495edba05552ff9d07ef0833d41e65eb125eb;hb=64dfa27066d9994d97a14fb2c21e60cba679dc5c;hp=0e6469e2c1d5e3fe64aebcc853d7a8738a564a98;hpb=fbdd13b462256ed4f3b35dc114385fe0b0de0dcd;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/indexfile.C b/cinelerra-5.1/cinelerra/indexfile.C index 0e6469e2..885495ed 100644 --- a/cinelerra-5.1/cinelerra/indexfile.C +++ b/cinelerra-5.1/cinelerra/indexfile.C @@ -73,6 +73,9 @@ #ifdef HAVE_ISOFS #include #endif +#if defined(__FreeBSD__) +#include +#endif // check for isofs volume_id for dvd/cdrom @@ -228,7 +231,7 @@ void IndexFile::delete_index(Preferences *preferences, char index_filename[BCTEXTLEN]; char source_filename[BCTEXTLEN]; const char *path = indexable->path; - + if( !*path ) return; get_index_filename(source_filename, preferences->index_directory, index_filename, path, suffix); @@ -350,7 +353,7 @@ int IndexFile::open_source() } else { - TransportCommand command; + TransportCommand command(mwindow->preferences); command.command = NORMAL_FWD; command.get_edl()->copy_all((EDL*)indexable); command.change_type = CHANGE_ALL; @@ -374,9 +377,10 @@ void IndexFile::close_source() delete render_engine; render_engine = 0; - - delete cache; - cache = 0; + if( cache ) { + cache->remove_user(); + cache = 0; + } } int64_t IndexFile::get_required_scale() @@ -858,7 +862,8 @@ int IndexFile::read_info(Indexable *test_indexable) data = new char[index_state->index_start]; temp = fread(data, index_state->index_start - sizeof(int64_t), 1, fd); - if(!temp) return 1; + if(!temp) { delete [] data; + return 1;} data[index_state->index_start - sizeof(int64_t)] = 0; FileXML xml;