Procházet zdrojové kódy

flac: fix leak; properly close stream upon closing FlacAudioCursor

rdb před 7 roky
rodič
revize
5dd0db300b

+ 5 - 1
panda/src/movies/flacAudioCursor.cxx

@@ -59,7 +59,8 @@ FlacAudioCursor::
 FlacAudioCursor(FlacAudio *src, std::istream *stream) :
   MovieAudioCursor(src),
   _is_valid(false),
-  _drflac(nullptr)
+  _drflac(nullptr),
+  _stream(stream)
 {
   nassertv(stream != nullptr);
   nassertv(stream->good());
@@ -91,6 +92,9 @@ FlacAudioCursor::
   if (_drflac != nullptr) {
     drflac_close(_drflac);
   }
+  if (_stream != nullptr) {
+    VirtualFileSystem::close_read_file(_stream);
+  }
 }
 
 /**

+ 1 - 0
panda/src/movies/flacAudioCursor.h

@@ -41,6 +41,7 @@ public:
 
 protected:
   drflac *_drflac;
+  std::istream *_stream;
 
 public:
   static TypeHandle get_class_type() {