From 9741d697e80af3e3023d59243bb61f6029eb9c37 Mon Sep 17 00:00:00 2001 From: Philippe Saint-Pierre Date: Mon, 25 Jun 2012 11:05:01 -0400 Subject: [PATCH] FFMPEG Copyright(): Fix memory leak Fix a memory leak I introduced. Followed Stippi's suggestion. Thanks! --- .../media/plugins/ffmpeg/AVFormatReader.cpp | 14 ++++++-------- src/add-ons/media/plugins/ffmpeg/AVFormatReader.h | 2 ++ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/add-ons/media/plugins/ffmpeg/AVFormatReader.cpp b/src/add-ons/media/plugins/ffmpeg/AVFormatReader.cpp index bb12197dfc..7b2d164525 100644 --- a/src/add-ons/media/plugins/ffmpeg/AVFormatReader.cpp +++ b/src/add-ons/media/plugins/ffmpeg/AVFormatReader.cpp @@ -18,7 +18,6 @@ #include #include #include -#include extern "C" { #include "avcodec.h" @@ -1453,6 +1452,7 @@ AVFormatReader::Stream::Seek(uint32 flags, int64* frame, bigtime_t* time) AVFormatReader::AVFormatReader() : + fCopyright(""), fStreams(NULL), fSourceLock("source I/O lock") { @@ -1481,14 +1481,12 @@ AVFormatReader::~AVFormatReader() const char* AVFormatReader::Copyright() { - BMessage* message = new BMessage(); - if (GetMetaData(message) == B_OK) { - const char* copyright; - if (message->FindString("copyright", ©right) == B_OK) - return copyright; + if (fCopyright.Length() <= 0) { + BMessage message; + if (GetMetaData(&message) == B_OK) + message.FindString("copyright", &fCopyright); } - delete message; - return ""; + return fCopyright.String(); } diff --git a/src/add-ons/media/plugins/ffmpeg/AVFormatReader.h b/src/add-ons/media/plugins/ffmpeg/AVFormatReader.h index 256ee50429..9ffa4570dd 100644 --- a/src/add-ons/media/plugins/ffmpeg/AVFormatReader.h +++ b/src/add-ons/media/plugins/ffmpeg/AVFormatReader.h @@ -7,6 +7,7 @@ #include +#include #include "ReaderPlugin.h" @@ -48,6 +49,7 @@ public: private: class Stream; + BString fCopyright; Stream** fStreams; BLocker fSourceLock; };