From 3bb0b11bff14acd090e99465331f66bd247c8008 Mon Sep 17 00:00:00 2001 From: Tsuda Kageyu Date: Mon, 31 Aug 2015 16:21:26 +0900 Subject: [PATCH] Revert "Fix an instance reference to a static data member." This reverts commit 9666b64f28c912bae8a42b6b1f40dd15a7ef0bc6. --- taglib/mpeg/id3v2/id3v2header.cpp | 34 +++++++++++++++++-------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/taglib/mpeg/id3v2/id3v2header.cpp b/taglib/mpeg/id3v2/id3v2header.cpp index 6e567193..10381053 100644 --- a/taglib/mpeg/id3v2/id3v2header.cpp +++ b/taglib/mpeg/id3v2/id3v2header.cpp @@ -39,14 +39,15 @@ using namespace ID3v2; class Header::HeaderPrivate { public: - HeaderPrivate() : - majorVersion(4), - revisionNumber(0), - unsynchronisation(false), - extendedHeader(false), - experimentalIndicator(false), - footerPresent(false), - tagSize(0) {} + HeaderPrivate() : majorVersion(4), + revisionNumber(0), + unsynchronisation(false), + extendedHeader(false), + experimentalIndicator(false), + footerPresent(false), + tagSize(0) {} + + ~HeaderPrivate() {} uint majorVersion; uint revisionNumber; @@ -57,6 +58,8 @@ public: bool footerPresent; uint tagSize; + + static const uint size = 10; }; //////////////////////////////////////////////////////////////////////////////// @@ -65,7 +68,7 @@ public: TagLib::uint Header::size() { - return 10; + return HeaderPrivate::size; } ByteVector Header::fileIdentifier() @@ -77,14 +80,14 @@ ByteVector Header::fileIdentifier() // public members //////////////////////////////////////////////////////////////////////////////// -Header::Header() : - d(new HeaderPrivate()) +Header::Header() { + d = new HeaderPrivate; } -Header::Header(const ByteVector &data) : - d(new HeaderPrivate()) +Header::Header(const ByteVector &data) { + d = new HeaderPrivate; parse(data); } @@ -136,9 +139,9 @@ TagLib::uint Header::tagSize() const TagLib::uint Header::completeTagSize() const { if(d->footerPresent) - return d->tagSize + size() + Footer::size(); + return d->tagSize + d->size + Footer::size(); else - return d->tagSize + size(); + return d->tagSize + d->size; } void Header::setTagSize(uint s) @@ -196,6 +199,7 @@ void Header::parse(const ByteVector &data) if(data.size() < size()) return; + // do some sanity checking -- even in ID3v2.3.0 and less the tag size is a // synch-safe integer, so all bytes must be less than 128. If this is not // true then this is an invalid tag.