summaryrefslogtreecommitdiff
path: root/libs/ardour/audio_playlist_source.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2011-05-28 02:30:25 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2011-05-28 02:30:25 +0000
commit788dfc6a517f953d9bad94f4169bfd4d4a8ca4f5 (patch)
tree79f10ffa24efd2f8b410422ab3323808a7cda321 /libs/ardour/audio_playlist_source.cc
parent43495d7f2b4ee4189e7b5497539ebe8eb126a3aa (diff)
clean up memory leaks with nested source read buffers
git-svn-id: svn://localhost/ardour2/branches/3.0@9621 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/audio_playlist_source.cc')
-rw-r--r--libs/ardour/audio_playlist_source.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/libs/ardour/audio_playlist_source.cc b/libs/ardour/audio_playlist_source.cc
index 09b30ff87a..f225db9c45 100644
--- a/libs/ardour/audio_playlist_source.cc
+++ b/libs/ardour/audio_playlist_source.cc
@@ -130,8 +130,8 @@ AudioPlaylistSource::set_state (const XMLNode& node, int version, bool with_desc
framecnt_t
AudioPlaylistSource::read_unlocked (Sample* dst, framepos_t start, framecnt_t cnt) const
{
- Sample* sbuf;
- gain_t* gbuf;
+ boost::shared_ptr<Sample> sbuf;
+ boost::shared_ptr<gain_t> gbuf;
framecnt_t to_read;
framecnt_t to_zero;
pair<framepos_t,framepos_t> extent = _playlist->get_extent();
@@ -160,7 +160,7 @@ AudioPlaylistSource::read_unlocked (Sample* dst, framepos_t start, framecnt_t cn
gbuf = _gain_buffers[_level-1];
}
- boost::dynamic_pointer_cast<AudioPlaylist>(_playlist)->read (dst, sbuf, gbuf, start+_playlist_offset, to_read, _playlist_channel);
+ boost::dynamic_pointer_cast<AudioPlaylist>(_playlist)->read (dst, sbuf.get(), gbuf.get(), start+_playlist_offset, to_read, _playlist_channel);
if (to_zero) {
memset (dst+to_read, 0, sizeof (Sample) * to_zero);