From a4f53d9b4a38d62a8fb66878a6cb358eb16708e3 Mon Sep 17 00:00:00 2001 From: Nick Shaforostoff Date: Fri, 28 Jan 2011 15:14:04 +0000 Subject: [PATCH] disable creation of unknown objects for wma files, because we've seen the cases when it could be as large as whole file, and we are greedy for the ram CCMAIL:lalinsky@gmail.com git-svn-id: svn://anonsvn.kde.org/home/kde/trunk/kdesupport/taglib@1217775 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- taglib/asf/asffile.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/taglib/asf/asffile.cpp b/taglib/asf/asffile.cpp index 5c23ceb3..b7057c65 100644 --- a/taglib/asf/asffile.cpp +++ b/taglib/asf/asffile.cpp @@ -320,18 +320,23 @@ void ASF::File::HeaderExtensionObject::parse(ASF::File *file, uint /*size*/) while(dataPos < dataSize) { ByteVector guid = file->readBlock(16); long long size = file->readQWORD(); - BaseObject *obj; + BaseObject *obj = 0; if(guid == metadataGuid) { obj = new MetadataObject(); } else if(guid == metadataLibraryGuid) { obj = new MetadataLibraryObject(); } +//FIXME this UnknownObject can be as large as whole file, so i disable it for now --Nick Shaforostoff +/* else { obj = new UnknownObject(guid); } - obj->parse(file, size); - objects.append(obj); +*/ + if(obj) { + obj->parse(file, size); + objects.append(obj); + } dataPos += size; } } @@ -360,6 +365,7 @@ ASF::File::File(FileName file, bool readProperties, Properties::ReadStyle proper ASF::File::~File() { for(unsigned int i = 0; i < d->objects.size(); i++) { + d->objects[i]->data.clear(); delete d->objects[i]; } if(d->tag) {