backports of 10318, 10380, 10403-10405. Fixes a crash in opening sessions and several leak fixes

git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@10411 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Todd Naugle 2011-11-03 14:33:04 +00:00
parent 85d34e80bf
commit df5b171c2a
5 changed files with 25 additions and 15 deletions

View file

@ -410,6 +410,10 @@ ARDOUR_UI::~ARDOUR_UI ()
if (new_session_dialog) {
delete new_session_dialog;
}
if (splash) {
delete splash;
}
}
void

View file

@ -72,6 +72,9 @@ AudioStreamView::AudioStreamView (AudioTimeAxisView& tv)
AudioStreamView::~AudioStreamView ()
{
for (CrossfadeViewList::iterator xi = crossfade_views.begin(); xi != crossfade_views.end(); ++xi) {
delete xi->second;
}
}
int

View file

@ -133,8 +133,10 @@ Editor::remove_route (TimeAxisView *tv)
boost::shared_ptr<Route> route;
TimeAxisView* next_tv = 0;
if (tv == entered_track) {
entered_track = 0;
if (entered_track) {
if (tv == entered_track || tv == entered_track->get_parent()) {
entered_track = 0;
}
}
/* the core model has changed, there is no need to sync

View file

@ -1074,22 +1074,22 @@ SoundFileOmega::check_info (const vector<string>& paths, bool& same_size, bool&
if (!AudioFileSource::get_soundfile_info (*i, info, errmsg)) {
err = true;
}
if (info.channels > 1) {
multichannel = true;
}
if (sz == 0) {
sz = info.length;
} else {
if (sz != info.length) {
same_size = false;
if (info.channels > 1) {
multichannel = true;
}
if (sz == 0) {
sz = info.length;
} else {
if (sz != info.length) {
same_size = false;
}
}
}
if ((nframes_t) info.samplerate != session->frame_rate()) {
src_needed = true;
if ((nframes_t) info.samplerate != session->frame_rate()) {
src_needed = true;
}
}
}

View file

@ -73,6 +73,7 @@ AbstractUI<RequestObject>::unregister_thread (pthread_t thread_id)
Glib::Mutex::Lock lm (request_buffer_map_lock);
typename RequestBufferMap::iterator x = request_buffers.find (thread_id);
if (x != request_buffers.end()) {
delete (*x).second;
request_buffers.erase (x);
}
}