From: Nick Shaforostoff Date: Fri, 28 Jan 2011 15:14:04 +0000 (+0000) Subject: disable creation of unknown objects for wma files, because we've seen the cases when... X-Git-Tag: v1.7rc1~10 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a4f53d9b4a38d62a8fb66878a6cb358eb16708e3;p=taglib 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 --- 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) {