[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] /srv/bzr/gnash/trunk r9668: Plug leak.
From: |
Benjamin Wolsey |
Subject: |
[Gnash-commit] /srv/bzr/gnash/trunk r9668: Plug leak. |
Date: |
Wed, 03 Sep 2008 19:28:12 +0200 |
User-agent: |
Bazaar (1.5) |
------------------------------------------------------------
revno: 9668
committer: Benjamin Wolsey <address@hidden>
branch nick: trunk
timestamp: Wed 2008-09-03 19:28:12 +0200
message:
Plug leak.
modified:
libcore/asobj/NetStreamFfmpeg.cpp
libcore/asobj/NetStreamFfmpeg.h
------------------------------------------------------------
revno: 9667.1.1
committer: Benjamin Wolsey <address@hidden>
branch nick: work
timestamp: Wed 2008-09-03 18:50:45 +0200
message:
Delete audio queue data in NetStreamFfmpeg dtor.
modified:
libcore/asobj/NetStreamFfmpeg.cpp
libcore/asobj/NetStreamFfmpeg.h
=== modified file 'libcore/asobj/NetStreamFfmpeg.cpp'
--- a/libcore/asobj/NetStreamFfmpeg.cpp 2008-09-02 22:57:53 +0000
+++ b/libcore/asobj/NetStreamFfmpeg.cpp 2008-09-03 16:50:45 +0000
@@ -56,6 +56,12 @@
namespace gnash {
+static void
+cleanQueue(NetStreamFfmpeg::AudioQueue::value_type data)
+{
+ delete data;
+}
+
// AS-volume adjustment
void adjust_volume(boost::int16_t* data, int size, int volume)
{
@@ -112,6 +118,12 @@
{
GNASH_REPORT_FUNCTION;
+ // Delete any samples in the audio queue.
+ {
+ boost::mutex::scoped_lock lock(_audioQueueMutex);
+ std::for_each(_audioQueue.begin(), _audioQueue.end(),
&cleanQueue);
+ }
+
// When closing gnash before playback is finished, the soundhandler
// seems to be removed before netstream is destroyed.
if (_soundHandler)
@@ -546,11 +558,7 @@
{ // cleanup audio queue, so won't be consumed while seeking
boost::mutex::scoped_lock lock(_audioQueueMutex);
- for (AudioQueue::iterator i=_audioQueue.begin(),
e=_audioQueue.end();
- i!=e; ++i)
- {
- delete (*i);
- }
+ std::for_each(_audioQueue.begin(), _audioQueue.end(),
&cleanQueue);
_audioQueue.clear();
}
=== modified file 'libcore/asobj/NetStreamFfmpeg.h'
--- a/libcore/asobj/NetStreamFfmpeg.h 2008-08-18 23:53:04 +0000
+++ b/libcore/asobj/NetStreamFfmpeg.h 2008-09-03 16:50:45 +0000
@@ -66,6 +66,9 @@
class NetStreamFfmpeg: public NetStream {
public:
+
+ typedef std::deque<media::raw_mediadata_t*> AudioQueue;
+
NetStreamFfmpeg();
~NetStreamFfmpeg();
@@ -249,8 +252,6 @@
///
std::auto_ptr<IOChannel> _inputStream;
- typedef std::deque<media::raw_mediadata_t*> AudioQueue;
-
/// This is where audio frames are pushed by ::advance
/// and consumed by sound_handler callback (audio_streamer)
AudioQueue _audioQueue;
- [Gnash-commit] /srv/bzr/gnash/trunk r9668: Plug leak.,
Benjamin Wolsey <=
- Re: [Gnash-commit] /srv/bzr/gnash/trunk r9668: Plug leak., Bastiaan Jacques, 2008/09/03
- Re: [Gnash-commit] /srv/bzr/gnash/trunk r9668: Plug leak., Benjamin Wolsey, 2008/09/04
- Re: [Gnash-commit] /srv/bzr/gnash/trunk r9668: Plug leak., Bastiaan Jacques, 2008/09/04
- Re: [Gnash-commit] /srv/bzr/gnash/trunk r9668: Plug leak., Benjamin Wolsey, 2008/09/04
- Re: [Gnash-commit] /srv/bzr/gnash/trunk r9668: Plug leak., Bastiaan Jacques, 2008/09/04
- Re: [Gnash-commit] /srv/bzr/gnash/trunk r9668: Plug leak., Benjamin Wolsey, 2008/09/05
- Re: [Gnash-commit] /srv/bzr/gnash/trunk r9668: Plug leak., Bastiaan Jacques, 2008/09/05
- Re: [Gnash-commit] /srv/bzr/gnash/trunk r9668: Plug leak., Bastiaan Jacques, 2008/09/06
- Re: [Gnash-commit] /srv/bzr/gnash/trunk r9668: Plug leak., strk, 2008/09/06
- Re: [Gnash-commit] /srv/bzr/gnash/trunk r9668: Plug leak., Bastiaan Jacques, 2008/09/07