From c479985e04122b9cbb887a173517b413e41cc20f Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 6 Nov 2006 16:05:59 +0000 Subject: fix wrong map key for sf browser auditioning git-svn-id: svn://localhost/ardour2/trunk@1074 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/sfdb_ui.cc | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/gtk2_ardour/sfdb_ui.cc b/gtk2_ardour/sfdb_ui.cc index 6fc758fa35..0f280b7474 100644 --- a/gtk2_ardour/sfdb_ui.cc +++ b/gtk2_ardour/sfdb_ui.cc @@ -190,9 +190,11 @@ SoundFileBox::play_btn_clicked () return; } - static std::map > region_cache; + typedef std::map > RegionCache; + static RegionCache region_cache; + RegionCache::iterator the_region; - if (region_cache.find (path) == region_cache.end()) { + if ((the_region = region_cache.find (path)) == region_cache.end()) { SourceList srclist; boost::shared_ptr afs; @@ -216,13 +218,18 @@ SoundFileBox::play_btn_clicked () _session->region_name (newpair.first, Glib::path_get_basename(srclist[0]->name()), false); newpair.second = boost::dynamic_pointer_cast (RegionFactory::create (srclist, 0, srclist[0]->length(), newpair.first, 0, Region::DefaultFlags, false)); - region_cache.insert (newpair); + pair res; + + res = region_cache.insert (newpair); + the_region = res.first; } play_btn.hide(); stop_btn.show(); - _session->audition_region(region_cache[path]); + boost::shared_ptr r = boost::static_pointer_cast (the_region->second); + + _session->audition_region(r); } void -- cgit v1.2.3