diff options
author | Tsuda Kageyu <tsuda.kageyu@gmail.com> | 2016-10-28 14:22:50 +0900 |
---|---|---|
committer | Tsuda Kageyu <tsuda.kageyu@gmail.com> | 2016-10-28 14:22:50 +0900 |
commit | 65a24bbc512eb3c2e1396523dd2f68ecaea0507d (patch) | |
tree | 53eae3f177e1ab4fdb3d9a0ca8ed803e1a438199 /taglib/riff | |
parent | 711b35cc6e23d72f4a04a19ed3ce7aa6e6c9d342 (diff) |
Remove some useless seek()/tell() from RIFF::File.
Diffstat (limited to 'taglib/riff')
-rw-r--r-- | taglib/riff/rifffile.cpp | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/taglib/riff/rifffile.cpp b/taglib/riff/rifffile.cpp index f9d33e10..7ac2c034 100644 --- a/taglib/riff/rifffile.cpp +++ b/taglib/riff/rifffile.cpp @@ -292,7 +292,6 @@ void RIFF::File::read() d->size = readBlock(4).toUInt(bigEndian); offset += 8; - seek(offset); // + 8: chunk header at least, fix for additional junk bytes while(offset + 8 <= length()) { @@ -307,28 +306,24 @@ void RIFF::File::read() break; } - if(static_cast<long long>(tell()) + chunkSize > length()) { + if(static_cast<long long>(offset) + 8 + chunkSize > length()) { debug("RIFF::File::read() -- Chunk '" + chunkName + "' has invalid size (larger than the file size)"); setValid(false); break; } - offset += 8; - Chunk chunk; - chunk.name = chunkName; - chunk.size = chunkSize; - chunk.offset = offset; + chunk.name = chunkName; + chunk.size = chunkSize; + chunk.offset = offset + 8; + chunk.padding = 0; - offset += chunk.size; - - seek(offset); + offset = chunk.offset + chunk.size; // Check padding - chunk.padding = 0; - if(offset & 1) { + seek(offset); const ByteVector iByte = readBlock(1); if(iByte.size() == 1 && iByte[0] == '\0') { chunk.padding = 1; |