diff --git a/taglib/ogg/opus/opusfile.cpp b/taglib/ogg/opus/opusfile.cpp index 8d3af7af..91ec5a09 100644 --- a/taglib/ogg/opus/opusfile.cpp +++ b/taglib/ogg/opus/opusfile.cpp @@ -59,18 +59,20 @@ public: // public members //////////////////////////////////////////////////////////////////////////////// -Opus::File::File(FileName file, bool readProperties, - Properties::ReadStyle propertiesStyle) : Ogg::File(file) +Opus::File::File(FileName file, bool readProperties, Properties::ReadStyle propertiesStyle) + : Ogg::File(file) + , d(new FilePrivate()) { - d = new FilePrivate; - read(readProperties, propertiesStyle); + if(isOpen()) + read(readProperties, propertiesStyle); } -Opus::File::File(IOStream *stream, bool readProperties, - Properties::ReadStyle propertiesStyle) : Ogg::File(stream) +Opus::File::File(IOStream *stream, bool readProperties, Properties::ReadStyle propertiesStyle) + : Ogg::File(stream) + , d(new FilePrivate()) { - d = new FilePrivate; - read(readProperties, propertiesStyle); + if(isOpen()) + read(readProperties, propertiesStyle); } Opus::File::~File()