Warning, /multimedia/kid3/packaging/patches/taglib-1.13.1-win00-large_file.patch is written in an unsupported language. File is not indexed.
0001 From 8569e324ba11ca61d908f5fdf4b234586dd69fa9 Mon Sep 17 00:00:00 2001 0002 From: Urs Fleisch <ufleisch@users.sourceforge.net> 0003 Date: Sun, 19 Apr 2020 11:13:55 +0200 0004 Subject: Support large files over 2GB 0005 0006 Backport of 4dcf0b41c687292e7b1263a679921c157ae2c22a 0007 b01f45e141afa6a89aea319a2783f177e202fa1d 0008 https://github.com/taglib/taglib/pull/77 0009 0010 diff --git a/taglib/ape/apefile.cpp b/taglib/ape/apefile.cpp 0011 index 07057054..4d797d1e 100644 0012 --- a/taglib/ape/apefile.cpp 0013 +++ b/taglib/ape/apefile.cpp 0014 @@ -69,13 +69,13 @@ public: 0015 delete properties; 0016 } 0017 0018 - long APELocation; 0019 + offset_t APELocation; 0020 long APESize; 0021 0022 - long ID3v1Location; 0023 + offset_t ID3v1Location; 0024 0025 ID3v2::Header *ID3v2Header; 0026 - long ID3v2Location; 0027 + offset_t ID3v2Location; 0028 long ID3v2Size; 0029 0030 TagUnion tag; 0031 @@ -292,7 +292,7 @@ void APE::File::read(bool readProperties) 0032 0033 if(readProperties) { 0034 0035 - long streamLength; 0036 + offset_t streamLength; 0037 0038 if(d->APELocation >= 0) 0039 streamLength = d->APELocation; 0040 diff --git a/taglib/ape/apeproperties.cpp b/taglib/ape/apeproperties.cpp 0041 index ef99ad04..fe724c30 100644 0042 --- a/taglib/ape/apeproperties.cpp 0043 +++ b/taglib/ape/apeproperties.cpp 0044 @@ -70,7 +70,7 @@ APE::Properties::Properties(File *, ReadStyle style) : 0045 debug("APE::Properties::Properties() -- This constructor is no longer used."); 0046 } 0047 0048 -APE::Properties::Properties(File *file, long streamLength, ReadStyle style) : 0049 +APE::Properties::Properties(File *file, offset_t streamLength, ReadStyle style) : 0050 AudioProperties(style), 0051 d(new PropertiesPrivate()) 0052 { 0053 @@ -142,10 +142,10 @@ namespace 0054 } 0055 } // namespace 0056 0057 -void APE::Properties::read(File *file, long streamLength) 0058 +void APE::Properties::read(File *file, offset_t streamLength) 0059 { 0060 // First, we assume that the file pointer is set at the first descriptor. 0061 - long offset = file->tell(); 0062 + offset_t offset = file->tell(); 0063 int version = headerVersion(file->readBlock(6)); 0064 0065 // Next, we look for the descriptor. 0066 diff --git a/taglib/ape/apeproperties.h b/taglib/ape/apeproperties.h 0067 index 8c67481a..d7ddaa30 100644 0068 --- a/taglib/ape/apeproperties.h 0069 +++ b/taglib/ape/apeproperties.h 0070 @@ -61,7 +61,7 @@ namespace TagLib { 0071 * Create an instance of APE::Properties with the data read from the 0072 * APE::File \a file. 0073 */ 0074 - Properties(File *file, long streamLength, ReadStyle style = Average); 0075 + Properties(File *file, offset_t streamLength, ReadStyle style = Average); 0076 0077 /*! 0078 * Destroys this APE::Properties instance. 0079 @@ -129,7 +129,7 @@ namespace TagLib { 0080 Properties(const Properties &); 0081 Properties &operator=(const Properties &); 0082 0083 - void read(File *file, long streamLength); 0084 + void read(File *file, offset_t streamLength); 0085 0086 void analyzeCurrent(File *file); 0087 void analyzeOld(File *file); 0088 diff --git a/taglib/ape/apetag.cpp b/taglib/ape/apetag.cpp 0089 index 4235f73e..3cf91b2e 100644 0090 --- a/taglib/ape/apetag.cpp 0091 +++ b/taglib/ape/apetag.cpp 0092 @@ -80,7 +80,7 @@ public: 0093 footerLocation(0) {} 0094 0095 File *file; 0096 - long footerLocation; 0097 + offset_t footerLocation; 0098 0099 Footer footer; 0100 ItemListMap itemListMap; 0101 @@ -95,7 +95,7 @@ APE::Tag::Tag() : 0102 { 0103 } 0104 0105 -APE::Tag::Tag(TagLib::File *file, long footerLocation) : 0106 +APE::Tag::Tag(TagLib::File *file, offset_t footerLocation) : 0107 d(new TagPrivate()) 0108 { 0109 d->file = file; 0110 diff --git a/taglib/ape/apetag.h b/taglib/ape/apetag.h 0111 index 01504291..4829379a 100644 0112 --- a/taglib/ape/apetag.h 0113 +++ b/taglib/ape/apetag.h 0114 @@ -66,7 +66,7 @@ namespace TagLib { 0115 * Create an APE tag and parse the data in \a file with APE footer at 0116 * \a tagOffset. 0117 */ 0118 - Tag(TagLib::File *file, long footerLocation); 0119 + Tag(TagLib::File *file, offset_t footerLocation); 0120 0121 /*! 0122 * Destroys this Tag instance. 0123 diff --git a/taglib/flac/flacfile.cpp b/taglib/flac/flacfile.cpp 0124 index a71d688b..8ff99d89 100644 0125 --- a/taglib/flac/flacfile.cpp 0126 +++ b/taglib/flac/flacfile.cpp 0127 @@ -79,10 +79,10 @@ public: 0128 } 0129 0130 const ID3v2::FrameFactory *ID3v2FrameFactory; 0131 - long ID3v2Location; 0132 + offset_t ID3v2Location; 0133 long ID3v2OriginalSize; 0134 0135 - long ID3v1Location; 0136 + offset_t ID3v1Location; 0137 0138 TagUnion tag; 0139 0140 @@ -90,8 +90,8 @@ public: 0141 ByteVector xiphCommentData; 0142 BlockList blocks; 0143 0144 - long flacStart; 0145 - long streamStart; 0146 + offset_t flacStart; 0147 + offset_t streamStart; 0148 bool scanned; 0149 }; 0150 0151 @@ -219,8 +219,8 @@ bool FLAC::File::save() 0152 0153 // Compute the amount of padding, and append that to data. 0154 0155 - long originalLength = d->streamStart - d->flacStart; 0156 - long paddingLength = originalLength - data.size() - 4; 0157 + offset_t originalLength = d->streamStart - d->flacStart; 0158 + offset_t paddingLength = originalLength - data.size() - 4; 0159 0160 if(paddingLength <= 0) { 0161 paddingLength = MinPaddingLength; 0162 @@ -228,9 +228,9 @@ bool FLAC::File::save() 0163 else { 0164 // Padding won't increase beyond 1% of the file size or 1MB. 0165 0166 - long threshold = length() / 100; 0167 - threshold = std::max(threshold, MinPaddingLength); 0168 - threshold = std::min(threshold, MaxPaddingLegnth); 0169 + offset_t threshold = length() / 100; 0170 + threshold = std::max<offset_t>(threshold, MinPaddingLength); 0171 + threshold = std::min<offset_t>(threshold, MaxPaddingLegnth); 0172 0173 if(paddingLength > threshold) 0174 paddingLength = MinPaddingLength; 0175 @@ -341,7 +341,7 @@ ByteVector FLAC::File::streamInfoData() 0176 return ByteVector(); 0177 } 0178 0179 -long FLAC::File::streamLength() 0180 +offset_t FLAC::File::streamLength() 0181 { 0182 debug("FLAC::File::streamLength() -- This function is obsolete. Returning zero."); 0183 return 0; 0184 @@ -456,7 +456,7 @@ void FLAC::File::read(bool readProperties) 0185 0186 const ByteVector infoData = d->blocks.front()->render(); 0187 0188 - long streamLength; 0189 + offset_t streamLength; 0190 0191 if(d->ID3v1Location >= 0) 0192 streamLength = d->ID3v1Location - d->streamStart; 0193 @@ -477,7 +477,7 @@ void FLAC::File::scan() 0194 if(!isValid()) 0195 return; 0196 0197 - long nextBlockOffset; 0198 + offset_t nextBlockOffset; 0199 0200 if(d->ID3v2Location >= 0) 0201 nextBlockOffset = find("fLaC", d->ID3v2Location + d->ID3v2OriginalSize); 0202 diff --git a/taglib/flac/flacfile.h b/taglib/flac/flacfile.h 0203 index a43c68c6..05803767 100644 0204 --- a/taglib/flac/flacfile.h 0205 +++ b/taglib/flac/flacfile.h 0206 @@ -256,7 +256,7 @@ namespace TagLib { 0207 * 0208 * \deprecated Always returns zero. 0209 */ 0210 - TAGLIB_DEPRECATED long streamLength(); // BIC: remove 0211 + TAGLIB_DEPRECATED offset_t streamLength(); // BIC: remove 0212 0213 /*! 0214 * Returns a list of pictures attached to the FLAC file. 0215 diff --git a/taglib/flac/flacproperties.cpp b/taglib/flac/flacproperties.cpp 0216 index b947f039..a798940a 100644 0217 --- a/taglib/flac/flacproperties.cpp 0218 +++ b/taglib/flac/flacproperties.cpp 0219 @@ -55,7 +55,7 @@ public: 0220 // public members 0221 //////////////////////////////////////////////////////////////////////////////// 0222 0223 -FLAC::Properties::Properties(ByteVector data, long streamLength, ReadStyle style) : 0224 +FLAC::Properties::Properties(ByteVector data, offset_t streamLength, ReadStyle style) : 0225 AudioProperties(style), 0226 d(new PropertiesPrivate()) 0227 { 0228 @@ -128,7 +128,7 @@ ByteVector FLAC::Properties::signature() const 0229 // private members 0230 //////////////////////////////////////////////////////////////////////////////// 0231 0232 -void FLAC::Properties::read(const ByteVector &data, long streamLength) 0233 +void FLAC::Properties::read(const ByteVector &data, offset_t streamLength) 0234 { 0235 if(data.size() < 18) { 0236 debug("FLAC::Properties::read() - FLAC properties must contain at least 18 bytes."); 0237 diff --git a/taglib/flac/flacproperties.h b/taglib/flac/flacproperties.h 0238 index e58f9aea..c47e4493 100644 0239 --- a/taglib/flac/flacproperties.h 0240 +++ b/taglib/flac/flacproperties.h 0241 @@ -50,7 +50,7 @@ namespace TagLib { 0242 * ByteVector \a data. 0243 */ 0244 // BIC: switch to const reference 0245 - Properties(ByteVector data, long streamLength, ReadStyle style = Average); 0246 + Properties(ByteVector data, offset_t streamLength, ReadStyle style = Average); 0247 0248 /*! 0249 * Create an instance of FLAC::Properties with the data read from the 0250 @@ -137,7 +137,7 @@ namespace TagLib { 0251 Properties(const Properties &); 0252 Properties &operator=(const Properties &); 0253 0254 - void read(const ByteVector &data, long streamLength); 0255 + void read(const ByteVector &data, offset_t streamLength); 0256 0257 class PropertiesPrivate; 0258 PropertiesPrivate *d; 0259 diff --git a/taglib/mp4/mp4atom.cpp b/taglib/mp4/mp4atom.cpp 0260 index 02e90f9c..edd615f2 100644 0261 --- a/taglib/mp4/mp4atom.cpp 0262 +++ b/taglib/mp4/mp4atom.cpp 0263 @@ -93,7 +93,7 @@ MP4::Atom::Atom(File *file) 0264 for(int i = 0; i < numContainers; i++) { 0265 if(name == containers[i]) { 0266 if(name == "meta") { 0267 - long posAfterMeta = file->tell(); 0268 + offset_t posAfterMeta = file->tell(); 0269 ByteVector nextSize = file->readBlock(8).mid(4, 4); 0270 static const char *const metaChildrenNames[] = { 0271 "hdlr", "ilst", "mhdr", "ctry", "lang" 0272 @@ -182,7 +182,7 @@ MP4::Atoms::Atoms(File *file) 0273 atoms.setAutoDelete(true); 0274 0275 file->seek(0, File::End); 0276 - long end = file->tell(); 0277 + offset_t end = file->tell(); 0278 file->seek(0); 0279 while(file->tell() + 8 <= end) { 0280 MP4::Atom *atom = new MP4::Atom(file); 0281 diff --git a/taglib/mp4/mp4atom.h b/taglib/mp4/mp4atom.h 0282 index 0a0669e4..48873cc9 100644 0283 --- a/taglib/mp4/mp4atom.h 0284 +++ b/taglib/mp4/mp4atom.h 0285 @@ -80,8 +80,8 @@ namespace TagLib { 0286 Atom *find(const char *name1, const char *name2 = 0, const char *name3 = 0, const char *name4 = 0); 0287 bool path(AtomList &path, const char *name1, const char *name2 = 0, const char *name3 = 0); 0288 AtomList findall(const char *name, bool recursive = false); 0289 - long offset; 0290 - long length; 0291 + offset_t offset; 0292 + offset_t length; 0293 TagLib::ByteVector name; 0294 AtomList children; 0295 private: 0296 diff --git a/taglib/mp4/mp4properties.cpp b/taglib/mp4/mp4properties.cpp 0297 index df628800..fa2ed147 100644 0298 --- a/taglib/mp4/mp4properties.cpp 0299 +++ b/taglib/mp4/mp4properties.cpp 0300 @@ -38,7 +38,7 @@ namespace 0301 { 0302 long long totalLength = 0; 0303 for(MP4::AtomList::ConstIterator it = list.begin(); it != list.end(); ++it) { 0304 - long length = (*it)->length; 0305 + offset_t length = (*it)->length; 0306 if(length == 0) 0307 return 0; // for safety, see checkValid() in mp4file.cpp 0308 0309 diff --git a/taglib/mp4/mp4tag.cpp b/taglib/mp4/mp4tag.cpp 0310 index 946c789d..5ba83474 100644 0311 --- a/taglib/mp4/mp4tag.cpp 0312 +++ b/taglib/mp4/mp4tag.cpp 0313 @@ -583,7 +583,7 @@ MP4::Tag::updateParents(const AtomList &path, long delta, int ignore) 0314 } 0315 0316 void 0317 -MP4::Tag::updateOffsets(long delta, long offset) 0318 +MP4::Tag::updateOffsets(long delta, offset_t offset) 0319 { 0320 MP4::Atom *moov = d->atoms->find("moov"); 0321 if(moov) { 0322 @@ -667,7 +667,7 @@ MP4::Tag::saveNew(ByteVector data) 0323 data = renderAtom("udta", data); 0324 } 0325 0326 - long offset = path.back()->offset + 8; 0327 + offset_t offset = path.back()->offset + 8; 0328 d->file->insert(data, offset, 0); 0329 0330 updateParents(path, data.size()); 0331 @@ -685,8 +685,8 @@ MP4::Tag::saveExisting(ByteVector data, const AtomList &path) 0332 AtomList::ConstIterator it = path.end(); 0333 0334 MP4::Atom *ilst = *(--it); 0335 - long offset = ilst->offset; 0336 - long length = ilst->length; 0337 + offset_t offset = ilst->offset; 0338 + offset_t length = ilst->length; 0339 0340 MP4::Atom *meta = *(--it); 0341 AtomList::ConstIterator index = meta->children.find(ilst); 0342 diff --git a/taglib/mp4/mp4tag.h b/taglib/mp4/mp4tag.h 0343 index 42b3d4b3..a4f78cf1 100644 0344 --- a/taglib/mp4/mp4tag.h 0345 +++ b/taglib/mp4/mp4tag.h 0346 @@ -149,7 +149,7 @@ namespace TagLib { 0347 ByteVector renderCovr(const ByteVector &name, const Item &item) const; 0348 0349 void updateParents(const AtomList &path, long delta, int ignore = 0); 0350 - void updateOffsets(long delta, long offset); 0351 + void updateOffsets(long delta, offset_t offset); 0352 0353 void saveNew(ByteVector data); 0354 void saveExisting(ByteVector data, const AtomList &path); 0355 diff --git a/taglib/mpc/mpcfile.cpp b/taglib/mpc/mpcfile.cpp 0356 index 4e955875..7070649b 100644 0357 --- a/taglib/mpc/mpcfile.cpp 0358 +++ b/taglib/mpc/mpcfile.cpp 0359 @@ -61,13 +61,13 @@ public: 0360 delete properties; 0361 } 0362 0363 - long APELocation; 0364 + offset_t APELocation; 0365 long APESize; 0366 0367 - long ID3v1Location; 0368 + offset_t ID3v1Location; 0369 0370 ID3v2::Header *ID3v2Header; 0371 - long ID3v2Location; 0372 + offset_t ID3v2Location; 0373 long ID3v2Size; 0374 0375 TagUnion tag; 0376 @@ -310,7 +310,7 @@ void MPC::File::read(bool readProperties) 0377 0378 if(readProperties) { 0379 0380 - long streamLength; 0381 + offset_t streamLength; 0382 0383 if(d->APELocation >= 0) 0384 streamLength = d->APELocation; 0385 diff --git a/taglib/mpc/mpcproperties.cpp b/taglib/mpc/mpcproperties.cpp 0386 index effaabed..724e5c7d 100644 0387 --- a/taglib/mpc/mpcproperties.cpp 0388 +++ b/taglib/mpc/mpcproperties.cpp 0389 @@ -66,14 +66,14 @@ public: 0390 // public members 0391 //////////////////////////////////////////////////////////////////////////////// 0392 0393 -MPC::Properties::Properties(const ByteVector &data, long streamLength, ReadStyle style) : 0394 +MPC::Properties::Properties(const ByteVector &data, offset_t streamLength, ReadStyle style) : 0395 AudioProperties(style), 0396 d(new PropertiesPrivate()) 0397 { 0398 readSV7(data, streamLength); 0399 } 0400 0401 -MPC::Properties::Properties(File *file, long streamLength, ReadStyle style) : 0402 +MPC::Properties::Properties(File *file, offset_t streamLength, ReadStyle style) : 0403 AudioProperties(style), 0404 d(new PropertiesPrivate()) 0405 { 0406 @@ -203,7 +203,7 @@ namespace 0407 const unsigned short sftable [8] = { 44100, 48000, 37800, 32000, 0, 0, 0, 0 }; 0408 } // namespace 0409 0410 -void MPC::Properties::readSV8(File *file, long streamLength) 0411 +void MPC::Properties::readSV8(File *file, offset_t streamLength) 0412 { 0413 bool readSH = false, readRG = false; 0414 0415 @@ -295,7 +295,7 @@ void MPC::Properties::readSV8(File *file, long streamLength) 0416 } 0417 } 0418 0419 -void MPC::Properties::readSV7(const ByteVector &data, long streamLength) 0420 +void MPC::Properties::readSV7(const ByteVector &data, offset_t streamLength) 0421 { 0422 if(data.startsWith("MP+")) { 0423 if(data.size() < 4) 0424 diff --git a/taglib/mpc/mpcproperties.h b/taglib/mpc/mpcproperties.h 0425 index 1db925d6..2c692735 100644 0426 --- a/taglib/mpc/mpcproperties.h 0427 +++ b/taglib/mpc/mpcproperties.h 0428 @@ -53,13 +53,13 @@ namespace TagLib { 0429 * 0430 * This constructor is deprecated. It only works for MPC version up to 7. 0431 */ 0432 - Properties(const ByteVector &data, long streamLength, ReadStyle style = Average); 0433 + Properties(const ByteVector &data, offset_t streamLength, ReadStyle style = Average); 0434 0435 /*! 0436 * Create an instance of MPC::Properties with the data read directly 0437 * from a MPC::File. 0438 */ 0439 - Properties(File *file, long streamLength, ReadStyle style = Average); 0440 + Properties(File *file, offset_t streamLength, ReadStyle style = Average); 0441 0442 /*! 0443 * Destroys this MPC::Properties instance. 0444 @@ -146,8 +146,8 @@ namespace TagLib { 0445 Properties(const Properties &); 0446 Properties &operator=(const Properties &); 0447 0448 - void readSV7(const ByteVector &data, long streamLength); 0449 - void readSV8(File *file, long streamLength); 0450 + void readSV7(const ByteVector &data, offset_t streamLength); 0451 + void readSV8(File *file, offset_t streamLength); 0452 0453 class PropertiesPrivate; 0454 PropertiesPrivate *d; 0455 diff --git a/taglib/mpeg/id3v1/id3v1tag.cpp b/taglib/mpeg/id3v1/id3v1tag.cpp 0456 index 667adfa6..bdf1b9a8 100644 0457 --- a/taglib/mpeg/id3v1/id3v1tag.cpp 0458 +++ b/taglib/mpeg/id3v1/id3v1tag.cpp 0459 @@ -48,7 +48,7 @@ public: 0460 genre(255) {} 0461 0462 File *file; 0463 - long tagOffset; 0464 + offset_t tagOffset; 0465 0466 String title; 0467 String artist; 0468 @@ -88,7 +88,7 @@ ID3v1::Tag::Tag() : 0469 { 0470 } 0471 0472 -ID3v1::Tag::Tag(File *file, long tagOffset) : 0473 +ID3v1::Tag::Tag(File *file, offset_t tagOffset) : 0474 d(new TagPrivate()) 0475 { 0476 d->file = file; 0477 diff --git a/taglib/mpeg/id3v1/id3v1tag.h b/taglib/mpeg/id3v1/id3v1tag.h 0478 index 5803312f..acdda66c 100644 0479 --- a/taglib/mpeg/id3v1/id3v1tag.h 0480 +++ b/taglib/mpeg/id3v1/id3v1tag.h 0481 @@ -114,7 +114,7 @@ namespace TagLib { 0482 * Create an ID3v1 tag and parse the data in \a file starting at 0483 * \a tagOffset. 0484 */ 0485 - Tag(File *file, long tagOffset); 0486 + Tag(File *file, offset_t tagOffset); 0487 0488 /*! 0489 * Destroys this Tag instance. 0490 diff --git a/taglib/mpeg/id3v2/id3v2tag.cpp b/taglib/mpeg/id3v2/id3v2tag.cpp 0491 index f1930d0e..ba0ddb1e 100644 0492 --- a/taglib/mpeg/id3v2/id3v2tag.cpp 0493 +++ b/taglib/mpeg/id3v2/id3v2tag.cpp 0494 @@ -88,7 +88,7 @@ public: 0495 const FrameFactory *factory; 0496 0497 File *file; 0498 - long tagOffset; 0499 + offset_t tagOffset; 0500 0501 Header header; 0502 ExtendedHeader *extendedHeader; 0503 @@ -125,7 +125,7 @@ ID3v2::Tag::Tag() : 0504 d->factory = FrameFactory::instance(); 0505 } 0506 0507 -ID3v2::Tag::Tag(File *file, long tagOffset, const FrameFactory *factory) : 0508 +ID3v2::Tag::Tag(File *file, offset_t tagOffset, const FrameFactory *factory) : 0509 d(new TagPrivate()) 0510 { 0511 d->factory = factory; 0512 @@ -686,9 +686,9 @@ ByteVector ID3v2::Tag::render(Version version) const 0513 else { 0514 // Padding won't increase beyond 1% of the file size or 1MB. 0515 0516 - long threshold = d->file ? d->file->length() / 100 : 0; 0517 - threshold = std::max(threshold, MinPaddingSize); 0518 - threshold = std::min(threshold, MaxPaddingSize); 0519 + offset_t threshold = d->file ? d->file->length() / 100 : 0; 0520 + threshold = std::max<offset_t>(threshold, MinPaddingSize); 0521 + threshold = std::min<offset_t>(threshold, MaxPaddingSize); 0522 0523 if(paddingSize > threshold) 0524 paddingSize = MinPaddingSize; 0525 diff --git a/taglib/mpeg/id3v2/id3v2tag.h b/taglib/mpeg/id3v2/id3v2tag.h 0526 index b0b61749..1c7bcac9 100644 0527 --- a/taglib/mpeg/id3v2/id3v2tag.h 0528 +++ b/taglib/mpeg/id3v2/id3v2tag.h 0529 @@ -146,7 +146,7 @@ namespace TagLib { 0530 * 0531 * \see FrameFactory 0532 */ 0533 - Tag(File *file, long tagOffset, 0534 + Tag(File *file, offset_t tagOffset, 0535 const FrameFactory *factory = FrameFactory::instance()); 0536 0537 /*! 0538 diff --git a/taglib/mpeg/mpegfile.cpp b/taglib/mpeg/mpegfile.cpp 0539 index efe8af2a..a852b939 100644 0540 --- a/taglib/mpeg/mpegfile.cpp 0541 +++ b/taglib/mpeg/mpegfile.cpp 0542 @@ -63,13 +63,13 @@ public: 0543 0544 const ID3v2::FrameFactory *ID3v2FrameFactory; 0545 0546 - long ID3v2Location; 0547 + offset_t ID3v2Location; 0548 long ID3v2OriginalSize; 0549 0550 - long APELocation; 0551 + offset_t APELocation; 0552 long APEOriginalSize; 0553 0554 - long ID3v1Location; 0555 + offset_t ID3v1Location; 0556 0557 TagUnion tag; 0558 0559 @@ -105,13 +105,13 @@ bool MPEG::File::isSupported(IOStream *stream) 0560 // MPEG frame headers are really confusing with irrelevant binary data. 0561 // So we check if a frame header is really valid. 0562 0563 - long headerOffset; 0564 + offset_t headerOffset; 0565 const ByteVector buffer = Utils::readHeader(stream, bufferSize(), true, &headerOffset); 0566 0567 if(buffer.isEmpty()) 0568 return false; 0569 0570 - const long originalPosition = stream->tell(); 0571 + const offset_t originalPosition = stream->tell(); 0572 AdapterFile file(stream); 0573 0574 for(unsigned int i = 0; i < buffer.size() - 1; ++i) { 0575 @@ -406,7 +406,7 @@ void MPEG::File::setID3v2FrameFactory(const ID3v2::FrameFactory *factory) 0576 d->ID3v2FrameFactory = factory; 0577 } 0578 0579 -long MPEG::File::nextFrameOffset(long position) 0580 +offset_t MPEG::File::nextFrameOffset(offset_t position) 0581 { 0582 ByteVector frameSyncBytes(2, '\0'); 0583 0584 @@ -430,12 +430,12 @@ long MPEG::File::nextFrameOffset(long position) 0585 } 0586 } 0587 0588 -long MPEG::File::previousFrameOffset(long position) 0589 +offset_t MPEG::File::previousFrameOffset(offset_t position) 0590 { 0591 ByteVector frameSyncBytes(2, '\0'); 0592 0593 while(position > 0) { 0594 - const long bufferLength = std::min<long>(position, bufferSize()); 0595 + const offset_t bufferLength = std::min<offset_t>(position, bufferSize()); 0596 position -= bufferLength; 0597 0598 seek(position); 0599 @@ -455,9 +455,9 @@ long MPEG::File::previousFrameOffset(long position) 0600 return -1; 0601 } 0602 0603 -long MPEG::File::firstFrameOffset() 0604 +offset_t MPEG::File::firstFrameOffset() 0605 { 0606 - long position = 0; 0607 + offset_t position = 0; 0608 0609 if(hasID3v2Tag()) 0610 position = d->ID3v2Location + ID3v2Tag()->header()->completeTagSize(); 0611 @@ -465,9 +465,9 @@ long MPEG::File::firstFrameOffset() 0612 return nextFrameOffset(position); 0613 } 0614 0615 -long MPEG::File::lastFrameOffset() 0616 +offset_t MPEG::File::lastFrameOffset() 0617 { 0618 - long position; 0619 + offset_t position; 0620 0621 if(hasAPETag()) 0622 position = d->APELocation - 1; 0623 @@ -535,7 +535,7 @@ void MPEG::File::read(bool readProperties) 0624 ID3v1Tag(true); 0625 } 0626 0627 -long MPEG::File::findID3v2() 0628 +offset_t MPEG::File::findID3v2() 0629 { 0630 if(!isValid()) 0631 return -1; 0632 diff --git a/taglib/mpeg/mpegfile.h b/taglib/mpeg/mpegfile.h 0633 index 381d89a0..2020f154 100644 0634 --- a/taglib/mpeg/mpegfile.h 0635 +++ b/taglib/mpeg/mpegfile.h 0636 @@ -322,24 +322,24 @@ namespace TagLib { 0637 /*! 0638 * Returns the position in the file of the first MPEG frame. 0639 */ 0640 - long firstFrameOffset(); 0641 + offset_t firstFrameOffset(); 0642 0643 /*! 0644 * Returns the position in the file of the next MPEG frame, 0645 * using the current position as start 0646 */ 0647 - long nextFrameOffset(long position); 0648 + offset_t nextFrameOffset(offset_t position); 0649 0650 /*! 0651 * Returns the position in the file of the previous MPEG frame, 0652 * using the current position as start 0653 */ 0654 - long previousFrameOffset(long position); 0655 + offset_t previousFrameOffset(offset_t position); 0656 0657 /*! 0658 * Returns the position in the file of the last MPEG frame. 0659 */ 0660 - long lastFrameOffset(); 0661 + offset_t lastFrameOffset(); 0662 0663 /*! 0664 * Returns whether or not the file on disk actually has an ID3v1 tag. 0665 @@ -376,7 +376,7 @@ namespace TagLib { 0666 File &operator=(const File &); 0667 0668 void read(bool readProperties); 0669 - long findID3v2(); 0670 + offset_t findID3v2(); 0671 0672 class FilePrivate; 0673 FilePrivate *d; 0674 diff --git a/taglib/mpeg/mpegheader.cpp b/taglib/mpeg/mpegheader.cpp 0675 index 5a5015d6..b9405008 100644 0676 --- a/taglib/mpeg/mpegheader.cpp 0677 +++ b/taglib/mpeg/mpegheader.cpp 0678 @@ -75,7 +75,7 @@ MPEG::Header::Header(const ByteVector &data) : 0679 debug("MPEG::Header::Header() - This constructor is no longer used."); 0680 } 0681 0682 -MPEG::Header::Header(File *file, long offset, bool checkLength) : 0683 +MPEG::Header::Header(File *file, offset_t offset, bool checkLength) : 0684 d(new HeaderPrivate()) 0685 { 0686 parse(file, offset, checkLength); 0687 @@ -170,7 +170,7 @@ MPEG::Header &MPEG::Header::operator=(const Header &h) 0688 // private members 0689 //////////////////////////////////////////////////////////////////////////////// 0690 0691 -void MPEG::Header::parse(File *file, long offset, bool checkLength) 0692 +void MPEG::Header::parse(File *file, offset_t offset, bool checkLength) 0693 { 0694 file->seek(offset); 0695 const ByteVector data = file->readBlock(4); 0696 diff --git a/taglib/mpeg/mpegheader.h b/taglib/mpeg/mpegheader.h 0697 index cb8eb251..3c260625 100644 0698 --- a/taglib/mpeg/mpegheader.h 0699 +++ b/taglib/mpeg/mpegheader.h 0700 @@ -61,7 +61,7 @@ namespace TagLib { 0701 * check if the frame length is parsed and calculated correctly. So it's 0702 * suitable for seeking for the first valid frame. 0703 */ 0704 - Header(File *file, long offset, bool checkLength = true); 0705 + Header(File *file, offset_t offset, bool checkLength = true); 0706 0707 /*! 0708 * Does a shallow copy of \a h. 0709 @@ -167,7 +167,7 @@ namespace TagLib { 0710 Header &operator=(const Header &h); 0711 0712 private: 0713 - void parse(File *file, long offset, bool checkLength); 0714 + void parse(File *file, offset_t offset, bool checkLength); 0715 0716 class HeaderPrivate; 0717 HeaderPrivate *d; 0718 diff --git a/taglib/mpeg/mpegproperties.cpp b/taglib/mpeg/mpegproperties.cpp 0719 index 5eec84f7..d66f8ab1 100644 0720 --- a/taglib/mpeg/mpegproperties.cpp 0721 +++ b/taglib/mpeg/mpegproperties.cpp 0722 @@ -157,7 +157,7 @@ void MPEG::Properties::read(File *file) 0723 { 0724 // Only the first valid frame is required if we have a VBR header. 0725 0726 - const long firstFrameOffset = file->firstFrameOffset(); 0727 + const offset_t firstFrameOffset = file->firstFrameOffset(); 0728 if(firstFrameOffset < 0) { 0729 debug("MPEG::Properties::read() -- Could not find an MPEG frame in the stream."); 0730 return; 0731 @@ -197,14 +197,14 @@ void MPEG::Properties::read(File *file) 0732 0733 // Look for the last MPEG audio frame to calculate the stream length. 0734 0735 - const long lastFrameOffset = file->lastFrameOffset(); 0736 + const offset_t lastFrameOffset = file->lastFrameOffset(); 0737 if(lastFrameOffset < 0) { 0738 debug("MPEG::Properties::read() -- Could not find an MPEG frame in the stream."); 0739 } 0740 else 0741 { 0742 const Header lastHeader(file, lastFrameOffset, false); 0743 - const long streamLength = lastFrameOffset - firstFrameOffset + lastHeader.frameLength(); 0744 + const offset_t streamLength = lastFrameOffset - firstFrameOffset + lastHeader.frameLength(); 0745 if (streamLength > 0) 0746 d->length = static_cast<int>(streamLength * 8.0 / d->bitrate + 0.5); 0747 } 0748 diff --git a/taglib/ogg/flac/oggflacfile.cpp b/taglib/ogg/flac/oggflacfile.cpp 0749 index 07ea9dcc..5c2f95c6 100644 0750 --- a/taglib/ogg/flac/oggflacfile.cpp 0751 +++ b/taglib/ogg/flac/oggflacfile.cpp 0752 @@ -58,8 +58,8 @@ public: 0753 Properties *properties; 0754 ByteVector streamInfoData; 0755 ByteVector xiphCommentData; 0756 - long streamStart; 0757 - long streamLength; 0758 + offset_t streamStart; 0759 + offset_t streamLength; 0760 bool scanned; 0761 0762 bool hasXiphComment; 0763 @@ -206,7 +206,7 @@ ByteVector Ogg::FLAC::File::xiphCommentData() 0764 return d->xiphCommentData; 0765 } 0766 0767 -long Ogg::FLAC::File::streamLength() 0768 +offset_t Ogg::FLAC::File::streamLength() 0769 { 0770 scan(); 0771 return d->streamLength; 0772 @@ -223,7 +223,7 @@ void Ogg::FLAC::File::scan() 0773 return; 0774 0775 int ipacket = 0; 0776 - long overhead = 0; 0777 + offset_t overhead = 0; 0778 0779 ByteVector metadataHeader = packet(ipacket); 0780 if(metadataHeader.isEmpty()) 0781 diff --git a/taglib/ogg/flac/oggflacfile.h b/taglib/ogg/flac/oggflacfile.h 0782 index b2686e45..0e5e1ac4 100644 0783 --- a/taglib/ogg/flac/oggflacfile.h 0784 +++ b/taglib/ogg/flac/oggflacfile.h 0785 @@ -134,7 +134,7 @@ namespace TagLib { 0786 * Returns the length of the audio-stream, used by FLAC::Properties for 0787 * calculating the bitrate. 0788 */ 0789 - long streamLength(); 0790 + offset_t streamLength(); 0791 0792 /*! 0793 * Returns whether or not the file on disk actually has a XiphComment. 0794 diff --git a/taglib/ogg/oggfile.cpp b/taglib/ogg/oggfile.cpp 0795 index 1f2cce93..86063915 100644 0796 --- a/taglib/ogg/oggfile.cpp 0797 +++ b/taglib/ogg/oggfile.cpp 0798 @@ -129,7 +129,7 @@ void Ogg::File::setPacket(unsigned int i, const ByteVector &p) 0799 const Ogg::PageHeader *Ogg::File::firstPageHeader() 0800 { 0801 if(!d->firstPageHeader) { 0802 - const long firstPageHeaderOffset = find("OggS"); 0803 + const offset_t firstPageHeaderOffset = find("OggS"); 0804 if(firstPageHeaderOffset < 0) 0805 return 0; 0806 0807 @@ -142,7 +142,7 @@ const Ogg::PageHeader *Ogg::File::firstPageHeader() 0808 const Ogg::PageHeader *Ogg::File::lastPageHeader() 0809 { 0810 if(!d->lastPageHeader) { 0811 - const long lastPageHeaderOffset = rfind("OggS"); 0812 + const offset_t lastPageHeaderOffset = rfind("OggS"); 0813 if(lastPageHeaderOffset < 0) 0814 return 0; 0815 0816 @@ -192,7 +192,7 @@ bool Ogg::File::readPages(unsigned int i) 0817 { 0818 while(true) { 0819 unsigned int packetIndex; 0820 - long offset; 0821 + offset_t offset; 0822 0823 if(d->pages.isEmpty()) { 0824 packetIndex = 0; 0825 @@ -275,8 +275,8 @@ void Ogg::File::writePacket(unsigned int i, const ByteVector &packet) 0826 for(it = pages.begin(); it != pages.end(); ++it) 0827 data.append((*it)->render()); 0828 0829 - const unsigned long originalOffset = firstPage->fileOffset(); 0830 - const unsigned long originalLength = lastPage->fileOffset() + lastPage->size() - originalOffset; 0831 + const offset_t originalOffset = firstPage->fileOffset(); 0832 + const offset_t originalLength = lastPage->fileOffset() + lastPage->size() - originalOffset; 0833 0834 insert(data, originalOffset, originalLength); 0835 0836 @@ -286,7 +286,7 @@ void Ogg::File::writePacket(unsigned int i, const ByteVector &packet) 0837 = pages.back()->pageSequenceNumber() - lastPage->pageSequenceNumber(); 0838 0839 if(numberOfNewPages != 0) { 0840 - long pageOffset = originalOffset + data.size(); 0841 + offset_t pageOffset = originalOffset + data.size(); 0842 0843 while(true) { 0844 Page page(this, pageOffset); 0845 diff --git a/taglib/ogg/oggpage.cpp b/taglib/ogg/oggpage.cpp 0846 index 869c357a..990b4c4f 100644 0847 --- a/taglib/ogg/oggpage.cpp 0848 +++ b/taglib/ogg/oggpage.cpp 0849 @@ -37,14 +37,14 @@ using namespace TagLib; 0850 class Ogg::Page::PagePrivate 0851 { 0852 public: 0853 - PagePrivate(File *f = 0, long pageOffset = -1) : 0854 + PagePrivate(File *f = 0, offset_t pageOffset = -1) : 0855 file(f), 0856 fileOffset(pageOffset), 0857 header(f, pageOffset), 0858 firstPacketIndex(-1) {} 0859 0860 File *file; 0861 - long fileOffset; 0862 + offset_t fileOffset; 0863 PageHeader header; 0864 int firstPacketIndex; 0865 ByteVectorList packets; 0866 @@ -54,7 +54,7 @@ public: 0867 // public members 0868 //////////////////////////////////////////////////////////////////////////////// 0869 0870 -Ogg::Page::Page(Ogg::File *file, long pageOffset) : 0871 +Ogg::Page::Page(Ogg::File *file, offset_t pageOffset) : 0872 d(new PagePrivate(file, pageOffset)) 0873 { 0874 } 0875 @@ -64,7 +64,7 @@ Ogg::Page::~Page() 0876 delete d; 0877 } 0878 0879 -long Ogg::Page::fileOffset() const 0880 +offset_t Ogg::Page::fileOffset() const 0881 { 0882 return d->fileOffset; 0883 } 0884 diff --git a/taglib/ogg/oggpage.h b/taglib/ogg/oggpage.h 0885 index 4829b070..4ed704f6 100644 0886 --- a/taglib/ogg/oggpage.h 0887 +++ b/taglib/ogg/oggpage.h 0888 @@ -55,14 +55,14 @@ namespace TagLib { 0889 /*! 0890 * Read an Ogg page from the \a file at the position \a pageOffset. 0891 */ 0892 - Page(File *file, long pageOffset); 0893 + Page(File *file, offset_t pageOffset); 0894 0895 virtual ~Page(); 0896 0897 /*! 0898 * Returns the page's position within the file (in bytes). 0899 */ 0900 - long fileOffset() const; 0901 + offset_t fileOffset() const; 0902 0903 /*! 0904 * Returns a pointer to the header for this page. This pointer will become 0905 diff --git a/taglib/ogg/oggpageheader.cpp b/taglib/ogg/oggpageheader.cpp 0906 index 3c3c4ee1..10a1efc2 100644 0907 --- a/taglib/ogg/oggpageheader.cpp 0908 +++ b/taglib/ogg/oggpageheader.cpp 0909 @@ -66,7 +66,7 @@ public: 0910 // public members 0911 //////////////////////////////////////////////////////////////////////////////// 0912 0913 -Ogg::PageHeader::PageHeader(Ogg::File *file, long pageOffset) : 0914 +Ogg::PageHeader::PageHeader(Ogg::File *file, offset_t pageOffset) : 0915 d(new PageHeaderPrivate()) 0916 { 0917 if(file && pageOffset >= 0) 0918 @@ -225,7 +225,7 @@ ByteVector Ogg::PageHeader::render() const 0919 // private members 0920 //////////////////////////////////////////////////////////////////////////////// 0921 0922 -void Ogg::PageHeader::read(Ogg::File *file, long pageOffset) 0923 +void Ogg::PageHeader::read(Ogg::File *file, offset_t pageOffset) 0924 { 0925 file->seek(pageOffset); 0926 0927 diff --git a/taglib/ogg/oggpageheader.h b/taglib/ogg/oggpageheader.h 0928 index d62feb3d..29709626 100644 0929 --- a/taglib/ogg/oggpageheader.h 0930 +++ b/taglib/ogg/oggpageheader.h 0931 @@ -52,7 +52,7 @@ namespace TagLib { 0932 * create a page with no (and as such, invalid) data that must be set 0933 * later. 0934 */ 0935 - PageHeader(File *file = 0, long pageOffset = -1); 0936 + PageHeader(File *file = 0, offset_t pageOffset = -1); 0937 0938 /*! 0939 * Deletes this instance of the PageHeader. 0940 @@ -219,7 +219,7 @@ namespace TagLib { 0941 PageHeader(const PageHeader &); 0942 PageHeader &operator=(const PageHeader &); 0943 0944 - void read(Ogg::File *file, long pageOffset); 0945 + void read(Ogg::File *file, offset_t pageOffset); 0946 ByteVector lacingValues() const; 0947 0948 class PageHeaderPrivate; 0949 diff --git a/taglib/ogg/opus/opusproperties.cpp b/taglib/ogg/opus/opusproperties.cpp 0950 index b60cc01d..e19ab64d 100644 0951 --- a/taglib/ogg/opus/opusproperties.cpp 0952 +++ b/taglib/ogg/opus/opusproperties.cpp 0953 @@ -163,7 +163,7 @@ void Opus::Properties::read(File *file) 0954 0955 if(frameCount > 0) { 0956 const double length = frameCount * 1000.0 / 48000.0; 0957 - long fileLengthWithoutOverhead = file->length(); 0958 + offset_t fileLengthWithoutOverhead = file->length(); 0959 // Ignore the two mandatory header packets, see "3. Packet Organization" 0960 // in https://tools.ietf.org/html/rfc7845.html 0961 for (unsigned int i = 0; i < 2; ++i) { 0962 diff --git a/taglib/ogg/speex/speexproperties.cpp b/taglib/ogg/speex/speexproperties.cpp 0963 index b7a11cc6..fae184a0 100644 0964 --- a/taglib/ogg/speex/speexproperties.cpp 0965 +++ b/taglib/ogg/speex/speexproperties.cpp 0966 @@ -182,7 +182,7 @@ void Speex::Properties::read(File *file) 0967 0968 if(frameCount > 0) { 0969 const double length = frameCount * 1000.0 / d->sampleRate; 0970 - long fileLengthWithoutOverhead = file->length(); 0971 + offset_t fileLengthWithoutOverhead = file->length(); 0972 // Ignore the two header packets, see "Ogg file format" in 0973 // https://www.speex.org/docs/manual/speex-manual/node8.html 0974 for (unsigned int i = 0; i < 2; ++i) { 0975 diff --git a/taglib/ogg/vorbis/vorbisproperties.cpp b/taglib/ogg/vorbis/vorbisproperties.cpp 0976 index c2909204..b38e138a 100644 0977 --- a/taglib/ogg/vorbis/vorbisproperties.cpp 0978 +++ b/taglib/ogg/vorbis/vorbisproperties.cpp 0979 @@ -186,7 +186,7 @@ void Vorbis::Properties::read(File *file) 0980 0981 if(frameCount > 0) { 0982 const double length = frameCount * 1000.0 / d->sampleRate; 0983 - long fileLengthWithoutOverhead = file->length(); 0984 + offset_t fileLengthWithoutOverhead = file->length(); 0985 // Ignore the three initial header packets, see "1.3.1. Decode Setup" in 0986 // https://xiph.org/vorbis/doc/Vorbis_I_spec.html 0987 for (unsigned int i = 0; i < 3; ++i) { 0988 diff --git a/taglib/riff/rifffile.cpp b/taglib/riff/rifffile.cpp 0989 index 005551f4..87ce7240 100644 0990 --- a/taglib/riff/rifffile.cpp 0991 +++ b/taglib/riff/rifffile.cpp 0992 @@ -38,7 +38,7 @@ using namespace TagLib; 0993 struct Chunk 0994 { 0995 ByteVector name; 0996 - unsigned int offset; 0997 + offset_t offset; 0998 unsigned int size; 0999 unsigned int padding; 1000 }; 1001 @@ -54,7 +54,7 @@ public: 1002 const Endianness endianness; 1003 1004 unsigned int size; 1005 - long sizeOffset; 1006 + offset_t sizeOffset; 1007 1008 std::vector<Chunk> chunks; 1009 }; 1010 @@ -108,7 +108,7 @@ unsigned int RIFF::File::chunkDataSize(unsigned int i) const 1011 return d->chunks[i].size; 1012 } 1013 1014 -unsigned int RIFF::File::chunkOffset(unsigned int i) const 1015 +offset_t RIFF::File::chunkOffset(unsigned int i) const 1016 { 1017 if(i >= d->chunks.size()) { 1018 debug("RIFF::File::chunkOffset() - Index out of range. Returning 0."); 1019 @@ -212,7 +212,7 @@ void RIFF::File::setChunkData(const ByteVector &name, const ByteVector &data, bo 1020 1021 Chunk &last = d->chunks.back(); 1022 1023 - long offset = last.offset + last.size + last.padding; 1024 + offset_t offset = last.offset + last.size + last.padding; 1025 if(offset & 1) { 1026 if(last.padding == 1) { 1027 last.padding = 0; // This should not happen unless the file is corrupted. 1028 @@ -283,7 +283,7 @@ void RIFF::File::read() 1029 { 1030 const bool bigEndian = (d->endianness == BigEndian); 1031 1032 - long offset = tell(); 1033 + offset_t offset = tell(); 1034 1035 offset += 4; 1036 d->sizeOffset = offset; 1037 @@ -345,7 +345,7 @@ void RIFF::File::read() 1038 } 1039 1040 void RIFF::File::writeChunk(const ByteVector &name, const ByteVector &data, 1041 - unsigned long offset, unsigned long replace) 1042 + offset_t offset, unsigned long replace) 1043 { 1044 ByteVector combined; 1045 1046 diff --git a/taglib/riff/rifffile.h b/taglib/riff/rifffile.h 1047 index 1ed49503..314dc4d9 100644 1048 --- a/taglib/riff/rifffile.h 1049 +++ b/taglib/riff/rifffile.h 1050 @@ -71,7 +71,7 @@ namespace TagLib { 1051 /*! 1052 * \return The offset within the file for the selected chunk number. 1053 */ 1054 - unsigned int chunkOffset(unsigned int i) const; 1055 + offset_t chunkOffset(unsigned int i) const; 1056 1057 /*! 1058 * \return The size of the chunk data. 1059 @@ -145,7 +145,7 @@ namespace TagLib { 1060 1061 void read(); 1062 void writeChunk(const ByteVector &name, const ByteVector &data, 1063 - unsigned long offset, unsigned long replace = 0); 1064 + offset_t offset, unsigned long replace = 0); 1065 1066 /*! 1067 * Update the global RIFF size based on the current internal structure. 1068 diff --git a/taglib/tagutils.cpp b/taglib/tagutils.cpp 1069 index 5fcd12aa..27154dc3 100644 1070 --- a/taglib/tagutils.cpp 1071 +++ b/taglib/tagutils.cpp 1072 @@ -33,7 +33,7 @@ 1073 1074 using namespace TagLib; 1075 1076 -long Utils::findID3v1(File *file) 1077 +offset_t Utils::findID3v1(File *file) 1078 { 1079 if(!file->isValid()) 1080 return -1; 1081 @@ -42,14 +42,14 @@ long Utils::findID3v1(File *file) 1082 1083 if (file->length() >= 131) { 1084 file->seek(-131, File::End); 1085 - const long p = file->tell() + 3; 1086 + const offset_t p = file->tell() + 3; 1087 const TagLib::ByteVector data = file->readBlock(8); 1088 1089 if(data.containsAt(ID3v1::Tag::fileIdentifier(), 3) && (data != APE::Tag::fileIdentifier())) 1090 return p; 1091 } else { 1092 file->seek(-128, File::End); 1093 - const long p = file->tell(); 1094 + const offset_t p = file->tell(); 1095 1096 if(file->readBlock(3) == ID3v1::Tag::fileIdentifier()) 1097 return p; 1098 @@ -58,7 +58,7 @@ long Utils::findID3v1(File *file) 1099 return -1; 1100 } 1101 1102 -long Utils::findID3v2(File *file) 1103 +offset_t Utils::findID3v2(File *file) 1104 { 1105 if(!file->isValid()) 1106 return -1; 1107 @@ -71,7 +71,7 @@ long Utils::findID3v2(File *file) 1108 return -1; 1109 } 1110 1111 -long Utils::findAPE(File *file, long id3v1Location) 1112 +offset_t Utils::findAPE(File *file, offset_t id3v1Location) 1113 { 1114 if(!file->isValid()) 1115 return -1; 1116 @@ -81,7 +81,7 @@ long Utils::findAPE(File *file, long id3v1Location) 1117 else 1118 file->seek(-32, File::End); 1119 1120 - const long p = file->tell(); 1121 + const offset_t p = file->tell(); 1122 1123 if(file->readBlock(8) == APE::Tag::fileIdentifier()) 1124 return p; 1125 @@ -90,13 +90,13 @@ long Utils::findAPE(File *file, long id3v1Location) 1126 } 1127 1128 ByteVector TagLib::Utils::readHeader(IOStream *stream, unsigned int length, 1129 - bool skipID3v2, long *headerOffset) 1130 + bool skipID3v2, offset_t *headerOffset) 1131 { 1132 if(!stream || !stream->isOpen()) 1133 return ByteVector(); 1134 1135 - const long originalPosition = stream->tell(); 1136 - long bufferOffset = 0; 1137 + const offset_t originalPosition = stream->tell(); 1138 + offset_t bufferOffset = 0; 1139 1140 if(skipID3v2) { 1141 stream->seek(0); 1142 diff --git a/taglib/tagutils.h b/taglib/tagutils.h 1143 index b7863494..c2bba562 100644 1144 --- a/taglib/tagutils.h 1145 +++ b/taglib/tagutils.h 1146 @@ -39,14 +39,14 @@ namespace TagLib { 1147 1148 namespace Utils { 1149 1150 - long findID3v1(File *file); 1151 + offset_t findID3v1(File *file); 1152 1153 - long findID3v2(File *file); 1154 + offset_t findID3v2(File *file); 1155 1156 - long findAPE(File *file, long id3v1Location); 1157 + offset_t findAPE(File *file, offset_t id3v1Location); 1158 1159 ByteVector readHeader(IOStream *stream, unsigned int length, bool skipID3v2, 1160 - long *headerOffset = 0); 1161 + offset_t *headerOffset = 0); 1162 } // namespace Utils 1163 } // namespace TagLib 1164 1165 diff --git a/taglib/toolkit/taglib.h b/taglib/toolkit/taglib.h 1166 index 64ccf0a8..21e6d5ff 100644 1167 --- a/taglib/toolkit/taglib.h 1168 +++ b/taglib/toolkit/taglib.h 1169 @@ -54,6 +54,11 @@ 1170 #define TAGLIB_DEPRECATED 1171 #endif 1172 1173 +#define TAGLIB_WITH_OFFSET_TYPE 1174 +#ifndef _WIN32 1175 +#include <sys/types.h> 1176 +#endif 1177 + 1178 #include <string> 1179 1180 //! A namespace for all TagLib related classes and functions 1181 @@ -79,6 +84,14 @@ namespace TagLib { 1182 typedef unsigned long ulong; 1183 typedef unsigned long long ulonglong; 1184 1185 + // Offset or length type for I/O streams. 1186 + // In Win32, always 64bit. Otherwise, equivalent to off_t. 1187 +#ifdef _WIN32 1188 + typedef long long offset_t; 1189 +#else 1190 + typedef off_t offset_t; 1191 +#endif 1192 + 1193 /*! 1194 * Unfortunately std::wstring isn't defined on some systems, (i.e. GCC < 3) 1195 * so I'm providing something here that should be constant. 1196 diff --git a/taglib/toolkit/tbytevectorstream.cpp b/taglib/toolkit/tbytevectorstream.cpp 1197 index bce3a7c6..09053597 100644 1198 --- a/taglib/toolkit/tbytevectorstream.cpp 1199 +++ b/taglib/toolkit/tbytevectorstream.cpp 1200 @@ -40,7 +40,7 @@ public: 1201 ByteVectorStreamPrivate(const ByteVector &data); 1202 1203 ByteVector data; 1204 - long position; 1205 + offset_t position; 1206 }; 1207 1208 ByteVectorStream::ByteVectorStreamPrivate::ByteVectorStreamPrivate(const ByteVector &data) : 1209 @@ -88,7 +88,7 @@ void ByteVectorStream::writeBlock(const ByteVector &data) 1210 d->position += size; 1211 } 1212 1213 -void ByteVectorStream::insert(const ByteVector &data, unsigned long start, unsigned long replace) 1214 +void ByteVectorStream::insert(const ByteVector &data, offset_t start, unsigned long replace) 1215 { 1216 long sizeDiff = data.size() - replace; 1217 if(sizeDiff < 0) { 1218 @@ -96,20 +96,20 @@ void ByteVectorStream::insert(const ByteVector &data, unsigned long start, unsig 1219 } 1220 else if(sizeDiff > 0) { 1221 truncate(length() + sizeDiff); 1222 - unsigned long readPosition = start + replace; 1223 - unsigned long writePosition = start + data.size(); 1224 + offset_t readPosition = start + replace; 1225 + offset_t writePosition = start + data.size(); 1226 memmove(d->data.data() + writePosition, d->data.data() + readPosition, length() - sizeDiff - readPosition); 1227 } 1228 seek(start); 1229 writeBlock(data); 1230 } 1231 1232 -void ByteVectorStream::removeBlock(unsigned long start, unsigned long length) 1233 +void ByteVectorStream::removeBlock(offset_t start, unsigned long length) 1234 { 1235 - unsigned long readPosition = start + length; 1236 - unsigned long writePosition = start; 1237 - if(readPosition < static_cast<unsigned long>(ByteVectorStream::length())) { 1238 - unsigned long bytesToMove = ByteVectorStream::length() - readPosition; 1239 + offset_t readPosition = start + length; 1240 + offset_t writePosition = start; 1241 + if(readPosition < ByteVectorStream::length()) { 1242 + offset_t bytesToMove = ByteVectorStream::length() - readPosition; 1243 memmove(d->data.data() + writePosition, d->data.data() + readPosition, bytesToMove); 1244 writePosition += bytesToMove; 1245 } 1246 @@ -127,7 +127,7 @@ bool ByteVectorStream::isOpen() const 1247 return true; 1248 } 1249 1250 -void ByteVectorStream::seek(long offset, Position p) 1251 +void ByteVectorStream::seek(offset_t offset, Position p) 1252 { 1253 switch(p) { 1254 case Beginning: 1255 @@ -146,17 +146,17 @@ void ByteVectorStream::clear() 1256 { 1257 } 1258 1259 -long ByteVectorStream::tell() const 1260 +offset_t ByteVectorStream::tell() const 1261 { 1262 return d->position; 1263 } 1264 1265 -long ByteVectorStream::length() 1266 +offset_t ByteVectorStream::length() 1267 { 1268 return d->data.size(); 1269 } 1270 1271 -void ByteVectorStream::truncate(long length) 1272 +void ByteVectorStream::truncate(offset_t length) 1273 { 1274 d->data.resize(length); 1275 } 1276 diff --git a/taglib/toolkit/tbytevectorstream.h b/taglib/toolkit/tbytevectorstream.h 1277 index 5aa8fcfd..8c2f4fa4 100644 1278 --- a/taglib/toolkit/tbytevectorstream.h 1279 +++ b/taglib/toolkit/tbytevectorstream.h 1280 @@ -81,7 +81,7 @@ namespace TagLib { 1281 * \note This method is slow since it requires rewriting all of the file 1282 * after the insertion point. 1283 */ 1284 - void insert(const ByteVector &data, unsigned long start = 0, unsigned long replace = 0); 1285 + void insert(const ByteVector &data, offset_t start = 0, unsigned long replace = 0); 1286 1287 /*! 1288 * Removes a block of the file starting a \a start and continuing for 1289 @@ -90,7 +90,7 @@ namespace TagLib { 1290 * \note This method is slow since it involves rewriting all of the file 1291 * after the removed portion. 1292 */ 1293 - void removeBlock(unsigned long start = 0, unsigned long length = 0); 1294 + void removeBlock(offset_t start = 0, unsigned long length = 0); 1295 1296 /*! 1297 * Returns true if the file is read only (or if the file can not be opened). 1298 @@ -109,7 +109,7 @@ namespace TagLib { 1299 * 1300 * \see Position 1301 */ 1302 - void seek(long offset, Position p = Beginning); 1303 + void seek(offset_t offset, Position p = Beginning); 1304 1305 /*! 1306 * Reset the end-of-file and error flags on the file. 1307 @@ -119,17 +119,17 @@ namespace TagLib { 1308 /*! 1309 * Returns the current offset within the file. 1310 */ 1311 - long tell() const; 1312 + offset_t tell() const; 1313 1314 /*! 1315 * Returns the length of the file. 1316 */ 1317 - long length(); 1318 + offset_t length(); 1319 1320 /*! 1321 * Truncates the file to a \a length. 1322 */ 1323 - void truncate(long length); 1324 + void truncate(offset_t length); 1325 1326 ByteVector *data(); 1327 1328 diff --git a/taglib/toolkit/tfile.cpp b/taglib/toolkit/tfile.cpp 1329 index 4f7bf6e7..9fe31e16 100644 1330 --- a/taglib/toolkit/tfile.cpp 1331 +++ b/taglib/toolkit/tfile.cpp 1332 @@ -231,14 +231,14 @@ void File::writeBlock(const ByteVector &data) 1333 d->stream->writeBlock(data); 1334 } 1335 1336 -long File::find(const ByteVector &pattern, long fromOffset, const ByteVector &before) 1337 +offset_t File::find(const ByteVector &pattern, offset_t fromOffset, const ByteVector &before) 1338 { 1339 if(!d->stream || pattern.size() > bufferSize()) 1340 return -1; 1341 1342 // The position in the file that the current buffer starts at. 1343 1344 - long bufferOffset = fromOffset; 1345 + offset_t bufferOffset = fromOffset; 1346 ByteVector buffer; 1347 1348 // These variables are used to keep track of a partial match that happens at 1349 @@ -250,7 +250,7 @@ long File::find(const ByteVector &pattern, long fromOffset, const ByteVector &be 1350 // Save the location of the current read pointer. We will restore the 1351 // position using seek() before all returns. 1352 1353 - long originalPosition = tell(); 1354 + offset_t originalPosition = tell(); 1355 1356 // Start the search at the offset. 1357 1358 @@ -327,7 +327,7 @@ long File::find(const ByteVector &pattern, long fromOffset, const ByteVector &be 1359 } 1360 1361 1362 -long File::rfind(const ByteVector &pattern, long fromOffset, const ByteVector &before) 1363 +offset_t File::rfind(const ByteVector &pattern, offset_t fromOffset, const ByteVector &before) 1364 { 1365 if(!d->stream || pattern.size() > bufferSize()) 1366 return -1; 1367 @@ -347,15 +347,15 @@ long File::rfind(const ByteVector &pattern, long fromOffset, const ByteVector &b 1368 // Save the location of the current read pointer. We will restore the 1369 // position using seek() before all returns. 1370 1371 - long originalPosition = tell(); 1372 + offset_t originalPosition = tell(); 1373 1374 // Start the search at the offset. 1375 1376 if(fromOffset == 0) 1377 fromOffset = length(); 1378 1379 - long bufferLength = bufferSize(); 1380 - long bufferOffset = fromOffset + pattern.size(); 1381 + offset_t bufferLength = bufferSize(); 1382 + offset_t bufferOffset = fromOffset + pattern.size(); 1383 1384 // See the notes in find() for an explanation of this algorithm. 1385 1386 @@ -401,12 +401,12 @@ long File::rfind(const ByteVector &pattern, long fromOffset, const ByteVector &b 1387 return -1; 1388 } 1389 1390 -void File::insert(const ByteVector &data, unsigned long start, unsigned long replace) 1391 +void File::insert(const ByteVector &data, offset_t start, unsigned long replace) 1392 { 1393 d->stream->insert(data, start, replace); 1394 } 1395 1396 -void File::removeBlock(unsigned long start, unsigned long length) 1397 +void File::removeBlock(offset_t start, unsigned long length) 1398 { 1399 d->stream->removeBlock(start, length); 1400 } 1401 @@ -426,12 +426,12 @@ bool File::isValid() const 1402 return isOpen() && d->valid; 1403 } 1404 1405 -void File::seek(long offset, Position p) 1406 +void File::seek(offset_t offset, Position p) 1407 { 1408 d->stream->seek(offset, static_cast<IOStream::Position>(p)); 1409 } 1410 1411 -void File::truncate(long length) 1412 +void File::truncate(offset_t length) 1413 { 1414 d->stream->truncate(length); 1415 } 1416 @@ -441,12 +441,12 @@ void File::clear() 1417 d->stream->clear(); 1418 } 1419 1420 -long File::tell() const 1421 +offset_t File::tell() const 1422 { 1423 return d->stream->tell(); 1424 } 1425 1426 -long File::length() 1427 +offset_t File::length() 1428 { 1429 return d->stream->length(); 1430 } 1431 diff --git a/taglib/toolkit/tfile.h b/taglib/toolkit/tfile.h 1432 index bb8c2b30..c024c4e8 100644 1433 --- a/taglib/toolkit/tfile.h 1434 +++ b/taglib/toolkit/tfile.h 1435 @@ -180,8 +180,8 @@ namespace TagLib { 1436 * \note This has the practical limitation that \a pattern can not be longer 1437 * than the buffer size used by readBlock(). Currently this is 1024 bytes. 1438 */ 1439 - long find(const ByteVector &pattern, 1440 - long fromOffset = 0, 1441 + offset_t find(const ByteVector &pattern, 1442 + offset_t fromOffset = 0, 1443 const ByteVector &before = ByteVector()); 1444 1445 /*! 1446 @@ -196,8 +196,8 @@ namespace TagLib { 1447 * \note This has the practical limitation that \a pattern can not be longer 1448 * than the buffer size used by readBlock(). Currently this is 1024 bytes. 1449 */ 1450 - long rfind(const ByteVector &pattern, 1451 - long fromOffset = 0, 1452 + offset_t rfind(const ByteVector &pattern, 1453 + offset_t fromOffset = 0, 1454 const ByteVector &before = ByteVector()); 1455 1456 /*! 1457 @@ -207,7 +207,7 @@ namespace TagLib { 1458 * \note This method is slow since it requires rewriting all of the file 1459 * after the insertion point. 1460 */ 1461 - void insert(const ByteVector &data, unsigned long start = 0, unsigned long replace = 0); 1462 + void insert(const ByteVector &data, offset_t start = 0, unsigned long replace = 0); 1463 1464 /*! 1465 * Removes a block of the file starting a \a start and continuing for 1466 @@ -216,7 +216,7 @@ namespace TagLib { 1467 * \note This method is slow since it involves rewriting all of the file 1468 * after the removed portion. 1469 */ 1470 - void removeBlock(unsigned long start = 0, unsigned long length = 0); 1471 + void removeBlock(offset_t start = 0, unsigned long length = 0); 1472 1473 /*! 1474 * Returns true if the file is read only (or if the file can not be opened). 1475 @@ -240,7 +240,7 @@ namespace TagLib { 1476 * 1477 * \see Position 1478 */ 1479 - void seek(long offset, Position p = Beginning); 1480 + void seek(offset_t offset, Position p = Beginning); 1481 1482 /*! 1483 * Reset the end-of-file and error flags on the file. 1484 @@ -250,12 +250,12 @@ namespace TagLib { 1485 /*! 1486 * Returns the current offset within the file. 1487 */ 1488 - long tell() const; 1489 + offset_t tell() const; 1490 1491 /*! 1492 * Returns the length of the file. 1493 */ 1494 - long length(); 1495 + offset_t length(); 1496 1497 /*! 1498 * Returns true if \a file can be opened for reading. If the file does not 1499 @@ -303,7 +303,7 @@ namespace TagLib { 1500 /*! 1501 * Truncates the file to a \a length. 1502 */ 1503 - void truncate(long length); 1504 + void truncate(offset_t length); 1505 1506 /*! 1507 * Returns the buffer size that is used for internal buffering. 1508 diff --git a/taglib/toolkit/tfilestream.cpp b/taglib/toolkit/tfilestream.cpp 1509 index 989e1d23..85a859f9 100644 1510 --- a/taglib/toolkit/tfilestream.cpp 1511 +++ b/taglib/toolkit/tfilestream.cpp 1512 @@ -236,7 +236,7 @@ void FileStream::writeBlock(const ByteVector &data) 1513 writeFile(d->file, data); 1514 } 1515 1516 -void FileStream::insert(const ByteVector &data, unsigned long start, unsigned long replace) 1517 +void FileStream::insert(const ByteVector &data, offset_t start, unsigned long replace) 1518 { 1519 if(!isOpen()) { 1520 debug("FileStream::insert() -- invalid file."); 1521 @@ -270,15 +270,15 @@ void FileStream::insert(const ByteVector &data, unsigned long start, unsigned lo 1522 // the *difference* in the tag sizes. We want to avoid overwriting parts 1523 // that aren't yet in memory, so this is necessary. 1524 1525 - unsigned long bufferLength = bufferSize(); 1526 + size_t bufferLength = bufferSize(); 1527 1528 while(data.size() - replace > bufferLength) 1529 bufferLength += bufferSize(); 1530 1531 // Set where to start the reading and writing. 1532 1533 - long readPosition = start + replace; 1534 - long writePosition = start; 1535 + offset_t readPosition = start + replace; 1536 + offset_t writePosition = start; 1537 1538 ByteVector buffer = data; 1539 ByteVector aboutToOverwrite(static_cast<unsigned int>(bufferLength)); 1540 @@ -317,7 +317,7 @@ void FileStream::insert(const ByteVector &data, unsigned long start, unsigned lo 1541 } 1542 } 1543 1544 -void FileStream::removeBlock(unsigned long start, unsigned long length) 1545 +void FileStream::removeBlock(offset_t start, unsigned long length) 1546 { 1547 if(!isOpen()) { 1548 debug("FileStream::removeBlock() -- invalid file."); 1549 @@ -326,8 +326,8 @@ void FileStream::removeBlock(unsigned long start, unsigned long length) 1550 1551 unsigned long bufferLength = bufferSize(); 1552 1553 - long readPosition = start + length; 1554 - long writePosition = start; 1555 + offset_t readPosition = start + length; 1556 + offset_t writePosition = start; 1557 1558 ByteVector buffer(static_cast<unsigned int>(bufferLength)); 1559 1560 @@ -363,7 +363,7 @@ bool FileStream::isOpen() const 1561 return (d->file != InvalidFileHandle); 1562 } 1563 1564 -void FileStream::seek(long offset, Position p) 1565 +void FileStream::seek(offset_t offset, Position p) 1566 { 1567 if(!isOpen()) { 1568 debug("FileStream::seek() -- invalid file."); 1569 @@ -420,16 +420,15 @@ void FileStream::clear() 1570 #endif 1571 } 1572 1573 -long FileStream::tell() const 1574 +offset_t FileStream::tell() const 1575 { 1576 #ifdef _WIN32 1577 1578 const LARGE_INTEGER zero = {}; 1579 LARGE_INTEGER position; 1580 1581 - if(SetFilePointerEx(d->file, zero, &position, FILE_CURRENT) && 1582 - position.QuadPart <= LONG_MAX) { 1583 - return static_cast<long>(position.QuadPart); 1584 + if(SetFilePointerEx(d->file, zero, &position, FILE_CURRENT)) { 1585 + return position.QuadPart; 1586 } 1587 else { 1588 debug("FileStream::tell() -- Failed to get the file pointer."); 1589 @@ -443,7 +442,7 @@ long FileStream::tell() const 1590 #endif 1591 } 1592 1593 -long FileStream::length() 1594 +offset_t FileStream::length() 1595 { 1596 if(!isOpen()) { 1597 debug("FileStream::length() -- invalid file."); 1598 @@ -454,8 +453,8 @@ long FileStream::length() 1599 1600 LARGE_INTEGER fileSize; 1601 1602 - if(GetFileSizeEx(d->file, &fileSize) && fileSize.QuadPart <= LONG_MAX) { 1603 - return static_cast<long>(fileSize.QuadPart); 1604 + if(GetFileSizeEx(d->file, &fileSize)) { 1605 + return fileSize.QuadPart; 1606 } 1607 else { 1608 debug("FileStream::length() -- Failed to get the file size."); 1609 @@ -464,10 +463,10 @@ long FileStream::length() 1610 1611 #else 1612 1613 - const long curpos = tell(); 1614 + const offset_t curpos = tell(); 1615 1616 seek(0, End); 1617 - const long endpos = tell(); 1618 + const offset_t endpos = tell(); 1619 1620 seek(curpos, Beginning); 1621 1622 @@ -480,11 +479,11 @@ long FileStream::length() 1623 // protected members 1624 //////////////////////////////////////////////////////////////////////////////// 1625 1626 -void FileStream::truncate(long length) 1627 +void FileStream::truncate(offset_t length) 1628 { 1629 #ifdef _WIN32 1630 1631 - const long currentPos = tell(); 1632 + const offset_t currentPos = tell(); 1633 1634 seek(length); 1635 1636 diff --git a/taglib/toolkit/tfilestream.h b/taglib/toolkit/tfilestream.h 1637 index dd3b8652..6fee9f05 100644 1638 --- a/taglib/toolkit/tfilestream.h 1639 +++ b/taglib/toolkit/tfilestream.h 1640 @@ -92,7 +92,7 @@ namespace TagLib { 1641 * \note This method is slow since it requires rewriting all of the file 1642 * after the insertion point. 1643 */ 1644 - void insert(const ByteVector &data, unsigned long start = 0, unsigned long replace = 0); 1645 + void insert(const ByteVector &data, offset_t start = 0, unsigned long replace = 0); 1646 1647 /*! 1648 * Removes a block of the file starting a \a start and continuing for 1649 @@ -101,7 +101,7 @@ namespace TagLib { 1650 * \note This method is slow since it involves rewriting all of the file 1651 * after the removed portion. 1652 */ 1653 - void removeBlock(unsigned long start = 0, unsigned long length = 0); 1654 + void removeBlock(offset_t start = 0, unsigned long length = 0); 1655 1656 /*! 1657 * Returns true if the file is read only (or if the file can not be opened). 1658 @@ -120,7 +120,7 @@ namespace TagLib { 1659 * 1660 * \see Position 1661 */ 1662 - void seek(long offset, Position p = Beginning); 1663 + void seek(offset_t offset, Position p = Beginning); 1664 1665 /*! 1666 * Reset the end-of-file and error flags on the file. 1667 @@ -130,17 +130,17 @@ namespace TagLib { 1668 /*! 1669 * Returns the current offset within the file. 1670 */ 1671 - long tell() const; 1672 + offset_t tell() const; 1673 1674 /*! 1675 * Returns the length of the file. 1676 */ 1677 - long length(); 1678 + offset_t length(); 1679 1680 /*! 1681 * Truncates the file to a \a length. 1682 */ 1683 - void truncate(long length); 1684 + void truncate(offset_t length); 1685 1686 protected: 1687 1688 diff --git a/taglib/toolkit/tiostream.h b/taglib/toolkit/tiostream.h 1689 index 1972d935..e089aef8 100644 1690 --- a/taglib/toolkit/tiostream.h 1691 +++ b/taglib/toolkit/tiostream.h 1692 @@ -110,7 +110,7 @@ namespace TagLib { 1693 * after the insertion point. 1694 */ 1695 virtual void insert(const ByteVector &data, 1696 - unsigned long start = 0, unsigned long replace = 0) = 0; 1697 + offset_t start = 0, unsigned long replace = 0) = 0; 1698 1699 /*! 1700 * Removes a block of the file starting a \a start and continuing for 1701 @@ -119,7 +119,7 @@ namespace TagLib { 1702 * \note This method is slow since it involves rewriting all of the file 1703 * after the removed portion. 1704 */ 1705 - virtual void removeBlock(unsigned long start = 0, unsigned long length = 0) = 0; 1706 + virtual void removeBlock(offset_t start = 0, unsigned long length = 0) = 0; 1707 1708 /*! 1709 * Returns true if the file is read only (or if the file can not be opened). 1710 @@ -138,7 +138,7 @@ namespace TagLib { 1711 * 1712 * \see Position 1713 */ 1714 - virtual void seek(long offset, Position p = Beginning) = 0; 1715 + virtual void seek(offset_t offset, Position p = Beginning) = 0; 1716 1717 /*! 1718 * Reset the end-of-stream and error flags on the stream. 1719 @@ -148,17 +148,17 @@ namespace TagLib { 1720 /*! 1721 * Returns the current offset within the stream. 1722 */ 1723 - virtual long tell() const = 0; 1724 + virtual offset_t tell() const = 0; 1725 1726 /*! 1727 * Returns the length of the stream. 1728 */ 1729 - virtual long length() = 0; 1730 + virtual offset_t length() = 0; 1731 1732 /*! 1733 * Truncates the stream to a \a length. 1734 */ 1735 - virtual void truncate(long length) = 0; 1736 + virtual void truncate(offset_t length) = 0; 1737 1738 private: 1739 IOStream(const IOStream &); 1740 diff --git a/taglib/trueaudio/trueaudiofile.cpp b/taglib/trueaudio/trueaudiofile.cpp 1741 index e1dd7b99..77b835ab 100644 1742 --- a/taglib/trueaudio/trueaudiofile.cpp 1743 +++ b/taglib/trueaudio/trueaudiofile.cpp 1744 @@ -63,10 +63,10 @@ public: 1745 } 1746 1747 const ID3v2::FrameFactory *ID3v2FrameFactory; 1748 - long ID3v2Location; 1749 + offset_t ID3v2Location; 1750 long ID3v2OriginalSize; 1751 1752 - long ID3v1Location; 1753 + offset_t ID3v1Location; 1754 1755 TagUnion tag; 1756 1757 @@ -290,7 +290,7 @@ void TrueAudio::File::read(bool readProperties) 1758 1759 if(readProperties) { 1760 1761 - long streamLength; 1762 + offset_t streamLength; 1763 1764 if(d->ID3v1Location >= 0) 1765 streamLength = d->ID3v1Location; 1766 diff --git a/taglib/trueaudio/trueaudioproperties.cpp b/taglib/trueaudio/trueaudioproperties.cpp 1767 index 0aab2419..3a403848 100644 1768 --- a/taglib/trueaudio/trueaudioproperties.cpp 1769 +++ b/taglib/trueaudio/trueaudioproperties.cpp 1770 @@ -61,7 +61,7 @@ public: 1771 // public members 1772 //////////////////////////////////////////////////////////////////////////////// 1773 1774 -TrueAudio::Properties::Properties(const ByteVector &data, long streamLength, ReadStyle style) : 1775 +TrueAudio::Properties::Properties(const ByteVector &data, offset_t streamLength, ReadStyle style) : 1776 AudioProperties(style), 1777 d(new PropertiesPrivate()) 1778 { 1779 @@ -122,7 +122,7 @@ int TrueAudio::Properties::ttaVersion() const 1780 // private members 1781 //////////////////////////////////////////////////////////////////////////////// 1782 1783 -void TrueAudio::Properties::read(const ByteVector &data, long streamLength) 1784 +void TrueAudio::Properties::read(const ByteVector &data, offset_t streamLength) 1785 { 1786 if(data.size() < 4) { 1787 debug("TrueAudio::Properties::read() -- data is too short."); 1788 diff --git a/taglib/trueaudio/trueaudioproperties.h b/taglib/trueaudio/trueaudioproperties.h 1789 index 490fea8e..9a72a7e3 100644 1790 --- a/taglib/trueaudio/trueaudioproperties.h 1791 +++ b/taglib/trueaudio/trueaudioproperties.h 1792 @@ -52,7 +52,7 @@ namespace TagLib { 1793 * Create an instance of TrueAudio::Properties with the data read from the 1794 * ByteVector \a data. 1795 */ 1796 - Properties(const ByteVector &data, long streamLength, ReadStyle style = Average); 1797 + Properties(const ByteVector &data, offset_t streamLength, ReadStyle style = Average); 1798 1799 /*! 1800 * Destroys this TrueAudio::Properties instance. 1801 @@ -120,7 +120,7 @@ namespace TagLib { 1802 Properties(const Properties &); 1803 Properties &operator=(const Properties &); 1804 1805 - void read(const ByteVector &data, long streamLength); 1806 + void read(const ByteVector &data, offset_t streamLength); 1807 1808 class PropertiesPrivate; 1809 PropertiesPrivate *d; 1810 diff --git a/taglib/wavpack/wavpackfile.cpp b/taglib/wavpack/wavpackfile.cpp 1811 index 291e9b88..bdca24ca 100644 1812 --- a/taglib/wavpack/wavpackfile.cpp 1813 +++ b/taglib/wavpack/wavpackfile.cpp 1814 @@ -61,10 +61,10 @@ public: 1815 delete properties; 1816 } 1817 1818 - long APELocation; 1819 + offset_t APELocation; 1820 long APESize; 1821 1822 - long ID3v1Location; 1823 + offset_t ID3v1Location; 1824 1825 TagUnion tag; 1826 1827 @@ -270,7 +270,7 @@ void WavPack::File::read(bool readProperties) 1828 1829 if(readProperties) { 1830 1831 - long streamLength; 1832 + offset_t streamLength; 1833 1834 if(d->APELocation >= 0) 1835 streamLength = d->APELocation; 1836 diff --git a/taglib/wavpack/wavpackproperties.cpp b/taglib/wavpack/wavpackproperties.cpp 1837 index 1dd2a054..cc65f2d0 100644 1838 --- a/taglib/wavpack/wavpackproperties.cpp 1839 +++ b/taglib/wavpack/wavpackproperties.cpp 1840 @@ -66,14 +66,14 @@ public: 1841 // public members 1842 //////////////////////////////////////////////////////////////////////////////// 1843 1844 -WavPack::Properties::Properties(const ByteVector &, long, ReadStyle style) : 1845 +WavPack::Properties::Properties(const ByteVector &, offset_t, ReadStyle style) : 1846 AudioProperties(style), 1847 d(new PropertiesPrivate()) 1848 { 1849 debug("WavPack::Properties::Properties() -- This constructor is no longer used."); 1850 } 1851 1852 -WavPack::Properties::Properties(File *file, long streamLength, ReadStyle style) : 1853 +WavPack::Properties::Properties(File *file, offset_t streamLength, ReadStyle style) : 1854 AudioProperties(style), 1855 d(new PropertiesPrivate()) 1856 { 1857 @@ -257,9 +257,9 @@ namespace 1858 1859 } // namespace 1860 1861 -void WavPack::Properties::read(File *file, long streamLength) 1862 +void WavPack::Properties::read(File *file, offset_t streamLength) 1863 { 1864 - long offset = 0; 1865 + offset_t offset = 0; 1866 1867 while(true) { 1868 file->seek(offset); 1869 @@ -339,9 +339,9 @@ void WavPack::Properties::read(File *file, long streamLength) 1870 } 1871 } 1872 1873 -unsigned int WavPack::Properties::seekFinalIndex(File *file, long streamLength) 1874 +unsigned int WavPack::Properties::seekFinalIndex(File *file, offset_t streamLength) 1875 { 1876 - long offset = streamLength; 1877 + offset_t offset = streamLength; 1878 1879 while (offset >= 32) { 1880 offset = file->rfind("wvpk", offset - 4); 1881 diff --git a/taglib/wavpack/wavpackproperties.h b/taglib/wavpack/wavpackproperties.h 1882 index e1a481df..8360f9c9 100644 1883 --- a/taglib/wavpack/wavpackproperties.h 1884 +++ b/taglib/wavpack/wavpackproperties.h 1885 @@ -58,13 +58,13 @@ namespace TagLib { 1886 * \deprecated This constructor will be dropped in favor of the one below 1887 * in a future version. 1888 */ 1889 - TAGLIB_DEPRECATED Properties(const ByteVector &data, long streamLength, 1890 + TAGLIB_DEPRECATED Properties(const ByteVector &data, offset_t streamLength, 1891 ReadStyle style = Average); 1892 1893 /*! 1894 * Create an instance of WavPack::Properties. 1895 */ 1896 - Properties(File *file, long streamLength, ReadStyle style = Average); 1897 + Properties(File *file, offset_t streamLength, ReadStyle style = Average); 1898 1899 /*! 1900 * Destroys this WavPack::Properties instance. 1901 @@ -137,8 +137,8 @@ namespace TagLib { 1902 Properties(const Properties &); 1903 Properties &operator=(const Properties &); 1904 1905 - void read(File *file, long streamLength); 1906 - unsigned int seekFinalIndex(File *file, long streamLength); 1907 + void read(File *file, offset_t streamLength); 1908 + unsigned int seekFinalIndex(File *file, offset_t streamLength); 1909 1910 class PropertiesPrivate; 1911 PropertiesPrivate *d; 1912 diff --git a/taglib/xm/xmfile.cpp b/taglib/xm/xmfile.cpp 1913 index 61a554c8..e5cd6156 100644 1914 --- a/taglib/xm/xmfile.cpp 1915 +++ b/taglib/xm/xmfile.cpp 1916 @@ -591,7 +591,7 @@ void XM::File::read(bool) 1917 unsigned int count = 4 + instrument.read(*this, instrumentHeaderSize - 4U); 1918 READ_ASSERT(count == std::min(instrumentHeaderSize, (unsigned long)instrument.size() + 4)); 1919 1920 - long offset = 0; 1921 + offset_t offset = 0; 1922 if(sampleCount > 0) { 1923 unsigned long sampleHeaderSize = 0; 1924 sumSampleCount += sampleCount; 1925 diff --git a/tests/plainfile.h b/tests/plainfile.h 1926 index 6147b56b..b42475f9 100644 1927 --- a/tests/plainfile.h 1928 +++ b/tests/plainfile.h 1929 @@ -41,7 +41,7 @@ public: 1930 1931 ByteVector readAll() { 1932 seek(0, End); 1933 - long end = tell(); 1934 + offset_t end = tell(); 1935 seek(0); 1936 return readBlock(end); 1937 } 1938 diff --git a/tests/test_aiff.cpp b/tests/test_aiff.cpp 1939 index 0337729f..03cc545e 100644 1940 --- a/tests/test_aiff.cpp 1941 +++ b/tests/test_aiff.cpp 1942 @@ -141,8 +141,8 @@ public: 1943 CPPUNIT_ASSERT_EQUAL(String("Title1"), f.tag()->title()); 1944 1945 f.save(); 1946 - CPPUNIT_ASSERT_EQUAL(7030L, f.length()); 1947 - CPPUNIT_ASSERT_EQUAL(-1L, f.find("Title2")); 1948 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(7030), f.length()); 1949 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(-1), f.find("Title2")); 1950 } 1951 1952 void testFuzzedFile1() 1953 diff --git a/tests/test_asf.cpp b/tests/test_asf.cpp 1954 index 293abe30..ca13e16d 100644 1955 --- a/tests/test_asf.cpp 1956 +++ b/tests/test_asf.cpp 1957 @@ -389,10 +389,10 @@ public: 1958 ASF::File f(copy.fileName().c_str()); 1959 f.tag()->setTitle(longText(128 * 1024)); 1960 f.save(); 1961 - CPPUNIT_ASSERT_EQUAL(297578L, f.length()); 1962 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(297578), f.length()); 1963 f.tag()->setTitle(longText(16 * 1024)); 1964 f.save(); 1965 - CPPUNIT_ASSERT_EQUAL(68202L, f.length()); 1966 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(68202), f.length()); 1967 } 1968 } 1969 1970 diff --git a/tests/test_bytevectorstream.cpp b/tests/test_bytevectorstream.cpp 1971 index f8308c6d..b13ca61b 100644 1972 --- a/tests/test_bytevectorstream.cpp 1973 +++ b/tests/test_bytevectorstream.cpp 1974 @@ -117,7 +117,7 @@ public: 1975 { 1976 ByteVector v("abcdefghijklmnopqrstuvwxyz"); 1977 ByteVectorStream stream(v); 1978 - CPPUNIT_ASSERT_EQUAL(26L, stream.length()); 1979 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(26), stream.length()); 1980 1981 stream.seek(-4, IOStream::End); 1982 CPPUNIT_ASSERT_EQUAL(ByteVector("w"), stream.readBlock(1)); 1983 diff --git a/tests/test_file.cpp b/tests/test_file.cpp 1984 index ef8c1b10..a30ae4e2 100644 1985 --- a/tests/test_file.cpp 1986 +++ b/tests/test_file.cpp 1987 @@ -53,19 +53,19 @@ public: 1988 } 1989 { 1990 PlainFile file(name.c_str()); 1991 - CPPUNIT_ASSERT_EQUAL(10l, file.length()); 1992 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(10), file.length()); 1993 1994 - CPPUNIT_ASSERT_EQUAL(2l, file.find(ByteVector("23", 2))); 1995 - CPPUNIT_ASSERT_EQUAL(2l, file.find(ByteVector("23", 2), 2)); 1996 - CPPUNIT_ASSERT_EQUAL(7l, file.find(ByteVector("23", 2), 3)); 1997 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(2), file.find(ByteVector("23", 2))); 1998 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(2), file.find(ByteVector("23", 2), 2)); 1999 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(7), file.find(ByteVector("23", 2), 3)); 2000 2001 file.seek(0); 2002 const ByteVector v = file.readBlock(file.length()); 2003 CPPUNIT_ASSERT_EQUAL((unsigned int)10, v.size()); 2004 2005 - CPPUNIT_ASSERT_EQUAL((long)v.find("23"), file.find("23")); 2006 - CPPUNIT_ASSERT_EQUAL((long)v.find("23", 2), file.find("23", 2)); 2007 - CPPUNIT_ASSERT_EQUAL((long)v.find("23", 3), file.find("23", 3)); 2008 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(v.find("23")), file.find("23")); 2009 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(v.find("23", 2)), file.find("23", 2)); 2010 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(v.find("23", 3)), file.find("23", 3)); 2011 } 2012 } 2013 2014 @@ -81,19 +81,19 @@ public: 2015 } 2016 { 2017 PlainFile file(name.c_str()); 2018 - CPPUNIT_ASSERT_EQUAL(10l, file.length()); 2019 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(10), file.length()); 2020 2021 - CPPUNIT_ASSERT_EQUAL(7l, file.rfind(ByteVector("23", 2))); 2022 - CPPUNIT_ASSERT_EQUAL(7l, file.rfind(ByteVector("23", 2), 7)); 2023 - CPPUNIT_ASSERT_EQUAL(2l, file.rfind(ByteVector("23", 2), 6)); 2024 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(7), file.rfind(ByteVector("23", 2))); 2025 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(7), file.rfind(ByteVector("23", 2), 7)); 2026 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(2), file.rfind(ByteVector("23", 2), 6)); 2027 2028 file.seek(0); 2029 const ByteVector v = file.readBlock(file.length()); 2030 CPPUNIT_ASSERT_EQUAL((unsigned int)10, v.size()); 2031 2032 - CPPUNIT_ASSERT_EQUAL((long)v.rfind("23"), file.rfind("23")); 2033 - CPPUNIT_ASSERT_EQUAL((long)v.rfind("23", 7), file.rfind("23", 7)); 2034 - CPPUNIT_ASSERT_EQUAL((long)v.rfind("23", 6), file.rfind("23", 6)); 2035 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(v.rfind("23")), file.rfind("23")); 2036 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(v.rfind("23", 7)), file.rfind("23", 7)); 2037 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(v.rfind("23", 6)), file.rfind("23", 6)); 2038 } 2039 } 2040 2041 @@ -103,22 +103,22 @@ public: 2042 std::string name = copy.fileName(); 2043 2044 PlainFile f(name.c_str()); 2045 - CPPUNIT_ASSERT_EQUAL((long)0, f.tell()); 2046 - CPPUNIT_ASSERT_EQUAL((long)4328, f.length()); 2047 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(0), f.tell()); 2048 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(4328), f.length()); 2049 2050 f.seek(100, File::Beginning); 2051 - CPPUNIT_ASSERT_EQUAL((long)100, f.tell()); 2052 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(100), f.tell()); 2053 f.seek(100, File::Current); 2054 - CPPUNIT_ASSERT_EQUAL((long)200, f.tell()); 2055 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(200), f.tell()); 2056 f.seek(-300, File::Current); 2057 - CPPUNIT_ASSERT_EQUAL((long)200, f.tell()); 2058 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(200), f.tell()); 2059 2060 f.seek(-100, File::End); 2061 - CPPUNIT_ASSERT_EQUAL((long)4228, f.tell()); 2062 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(4228), f.tell()); 2063 f.seek(-100, File::Current); 2064 - CPPUNIT_ASSERT_EQUAL((long)4128, f.tell()); 2065 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(4128), f.tell()); 2066 f.seek(300, File::Current); 2067 - CPPUNIT_ASSERT_EQUAL((long)4428, f.tell()); 2068 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(4428), f.tell()); 2069 } 2070 2071 void testTruncate() 2072 @@ -128,18 +128,17 @@ public: 2073 2074 { 2075 PlainFile f(name.c_str()); 2076 - CPPUNIT_ASSERT_EQUAL(4328L, f.length()); 2077 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(4328), f.length()); 2078 2079 f.truncate(2000); 2080 - CPPUNIT_ASSERT_EQUAL(2000L, f.length()); 2081 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(2000), f.length()); 2082 } 2083 { 2084 PlainFile f(name.c_str()); 2085 - CPPUNIT_ASSERT_EQUAL(2000L, f.length()); 2086 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(2000), f.length()); 2087 } 2088 } 2089 2090 }; 2091 2092 CPPUNIT_TEST_SUITE_REGISTRATION(TestFile); 2093 - 2094 diff --git a/tests/test_flac.cpp b/tests/test_flac.cpp 2095 index c83f1e90..d5352b3c 100644 2096 --- a/tests/test_flac.cpp 2097 +++ b/tests/test_flac.cpp 2098 @@ -91,8 +91,8 @@ public: 2099 { 2100 FLAC::File f(newname.c_str()); 2101 CPPUNIT_ASSERT_EQUAL(String("The Artist"), f.tag()->artist()); 2102 - CPPUNIT_ASSERT_EQUAL(69L, f.find("Artist")); 2103 - CPPUNIT_ASSERT_EQUAL(-1L, f.find("Artist", 70)); 2104 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(69), f.find("Artist")); 2105 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(-1), f.find("Artist", 70)); 2106 } 2107 } 2108 2109 @@ -253,9 +253,9 @@ public: 2110 FLAC::File f(copy.fileName().c_str()); 2111 f.ID3v2Tag(true)->setTitle("0123456789"); 2112 f.save(); 2113 - CPPUNIT_ASSERT_EQUAL(5735L, f.length()); 2114 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(5735), f.length()); 2115 f.save(); 2116 - CPPUNIT_ASSERT_EQUAL(5735L, f.length()); 2117 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(5735), f.length()); 2118 CPPUNIT_ASSERT(f.find("fLaC") >= 0); 2119 } 2120 2121 @@ -266,9 +266,9 @@ public: 2122 FLAC::File f(copy.fileName().c_str()); 2123 f.xiphComment()->setTitle(longText(8 * 1024)); 2124 f.save(); 2125 - CPPUNIT_ASSERT_EQUAL(12862L, f.length()); 2126 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(12862), f.length()); 2127 f.save(); 2128 - CPPUNIT_ASSERT_EQUAL(12862L, f.length()); 2129 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(12862), f.length()); 2130 } 2131 2132 void testSaveMultipleValues() 2133 @@ -449,7 +449,7 @@ public: 2134 { 2135 FLAC::File f(copy.fileName().c_str()); 2136 CPPUNIT_ASSERT(!f.hasID3v1Tag()); 2137 - CPPUNIT_ASSERT_EQUAL((long)4692, f.length()); 2138 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(4692), f.length()); 2139 2140 f.seek(0x0100); 2141 audioStream = f.readBlock(4436); 2142 @@ -457,7 +457,7 @@ public: 2143 f.ID3v1Tag(true)->setTitle("01234 56789 ABCDE FGHIJ"); 2144 f.save(); 2145 CPPUNIT_ASSERT(f.hasID3v1Tag()); 2146 - CPPUNIT_ASSERT_EQUAL((long)4820, f.length()); 2147 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(4820), f.length()); 2148 2149 f.seek(0x0100); 2150 CPPUNIT_ASSERT_EQUAL(audioStream, f.readBlock(4436)); 2151 diff --git a/tests/test_id3v2.cpp b/tests/test_id3v2.cpp 2152 index 36ddc436..9de2596d 100644 2153 --- a/tests/test_id3v2.cpp 2154 +++ b/tests/test_id3v2.cpp 2155 @@ -1553,14 +1553,14 @@ public: 2156 { 2157 MPEG::File f(newname.c_str()); 2158 CPPUNIT_ASSERT(f.hasID3v2Tag()); 2159 - CPPUNIT_ASSERT_EQUAL(74789L, f.length()); 2160 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(74789), f.length()); 2161 f.ID3v2Tag()->setTitle("ABCDEFGHIJ"); 2162 f.save(MPEG::File::ID3v2, File::StripOthers); 2163 } 2164 { 2165 MPEG::File f(newname.c_str()); 2166 CPPUNIT_ASSERT(f.hasID3v2Tag()); 2167 - CPPUNIT_ASSERT_EQUAL(9263L, f.length()); 2168 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(9263), f.length()); 2169 } 2170 } 2171 2172 @@ -1618,7 +1618,7 @@ public: 2173 { 2174 MPEG::File f(copy.fileName().c_str()); 2175 CPPUNIT_ASSERT(f.hasID3v2Tag()); 2176 - CPPUNIT_ASSERT_EQUAL((long)3594, f.length()); 2177 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(3594), f.length()); 2178 CPPUNIT_ASSERT_EQUAL((unsigned int)1505, f.ID3v2Tag()->header()->completeTagSize()); 2179 CPPUNIT_ASSERT_EQUAL(String("Artist A"), f.ID3v2Tag()->artist()); 2180 CPPUNIT_ASSERT_EQUAL(44100, f.audioProperties()->sampleRate()); 2181 @@ -1689,4 +1689,3 @@ public: 2182 }; 2183 2184 CPPUNIT_TEST_SUITE_REGISTRATION(TestID3v2); 2185 - 2186 diff --git a/tests/test_mp4.cpp b/tests/test_mp4.cpp 2187 index 2ead2bab..5c6a9cbb 100644 2188 --- a/tests/test_mp4.cpp 2189 +++ b/tests/test_mp4.cpp 2190 @@ -298,7 +298,7 @@ public: 2191 2192 MP4::Atoms atoms(&f); 2193 MP4::Atom *moov = atoms.atoms[0]; 2194 - CPPUNIT_ASSERT_EQUAL(long(77), moov->length); 2195 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(77), moov->length); 2196 2197 f.tag()->setItem("pgap", true); 2198 f.save(); 2199 @@ -311,7 +311,7 @@ public: 2200 MP4::Atoms atoms(&f); 2201 MP4::Atom *moov = atoms.atoms[0]; 2202 // original size + 'pgap' size + padding 2203 - CPPUNIT_ASSERT_EQUAL(long(77 + 25 + 974), moov->length); 2204 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(77 + 25 + 974), moov->length); 2205 } 2206 } 2207 2208 @@ -589,8 +589,8 @@ public: 2209 f.tag()->setTitle("0123456789"); 2210 f.save(); 2211 f.save(); 2212 - CPPUNIT_ASSERT_EQUAL(2862L, f.find("0123456789")); 2213 - CPPUNIT_ASSERT_EQUAL(-1L, f.find("0123456789", 2863)); 2214 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(2862), f.find("0123456789")); 2215 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(-1), f.find("0123456789", 2863)); 2216 } 2217 2218 void testWithZeroLengthAtom() 2219 diff --git a/tests/test_mpeg.cpp b/tests/test_mpeg.cpp 2220 index 03eb702b..bd3e316d 100644 2221 --- a/tests/test_mpeg.cpp 2222 +++ b/tests/test_mpeg.cpp 2223 @@ -119,10 +119,10 @@ public: 2224 CPPUNIT_ASSERT_EQUAL(44100, f.audioProperties()->sampleRate()); 2225 CPPUNIT_ASSERT(!f.audioProperties()->xingHeader()); 2226 2227 - const long last = f.lastFrameOffset(); 2228 + offset_t last = f.lastFrameOffset(); 2229 const MPEG::Header lastHeader(&f, last, false); 2230 2231 - CPPUNIT_ASSERT_EQUAL(28213L, last); 2232 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(28213), last); 2233 CPPUNIT_ASSERT_EQUAL(209, lastHeader.frameLength()); 2234 } 2235 2236 @@ -258,20 +258,20 @@ public: 2237 { 2238 MPEG::File f(TEST_FILE_PATH_C("ape.mp3")); 2239 CPPUNIT_ASSERT(f.isValid()); 2240 - CPPUNIT_ASSERT_EQUAL((long)0x0000, f.firstFrameOffset()); 2241 - CPPUNIT_ASSERT_EQUAL((long)0x1FD6, f.lastFrameOffset()); 2242 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(0x0000), f.firstFrameOffset()); 2243 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(0x1FD6), f.lastFrameOffset()); 2244 } 2245 { 2246 MPEG::File f(TEST_FILE_PATH_C("ape-id3v1.mp3")); 2247 CPPUNIT_ASSERT(f.isValid()); 2248 - CPPUNIT_ASSERT_EQUAL((long)0x0000, f.firstFrameOffset()); 2249 - CPPUNIT_ASSERT_EQUAL((long)0x1FD6, f.lastFrameOffset()); 2250 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(0x0000), f.firstFrameOffset()); 2251 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(0x1FD6), f.lastFrameOffset()); 2252 } 2253 { 2254 MPEG::File f(TEST_FILE_PATH_C("ape-id3v2.mp3")); 2255 CPPUNIT_ASSERT(f.isValid()); 2256 - CPPUNIT_ASSERT_EQUAL((long)0x041A, f.firstFrameOffset()); 2257 - CPPUNIT_ASSERT_EQUAL((long)0x23F0, f.lastFrameOffset()); 2258 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(0x041A), f.firstFrameOffset()); 2259 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(0x23F0), f.lastFrameOffset()); 2260 } 2261 } 2262 2263 @@ -418,7 +418,7 @@ public: 2264 f.save(); 2265 f.ID3v2Tag(true)->setTitle(std::string(4096, 'X').c_str()); 2266 f.save(); 2267 - CPPUNIT_ASSERT_EQUAL(5141L, f.firstFrameOffset()); 2268 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(5141), f.firstFrameOffset()); 2269 } 2270 } 2271 2272 @@ -430,7 +430,7 @@ public: 2273 f.ID3v2Tag(true)->setTitle("0123456789"); 2274 f.save(); 2275 f.save(); 2276 - CPPUNIT_ASSERT_EQUAL(-1L, f.find("ID3", 3)); 2277 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(-1), f.find("ID3", 3)); 2278 } 2279 2280 void testRepeatedSave3() 2281 @@ -524,8 +524,8 @@ public: 2282 MPEG::File f(copy.fileName().c_str()); 2283 CPPUNIT_ASSERT(f.isValid()); 2284 CPPUNIT_ASSERT(f.hasID3v2Tag()); 2285 - CPPUNIT_ASSERT_EQUAL(2255L, f.firstFrameOffset()); 2286 - CPPUNIT_ASSERT_EQUAL(6015L, f.lastFrameOffset()); 2287 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(2255), f.firstFrameOffset()); 2288 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(6015), f.lastFrameOffset()); 2289 CPPUNIT_ASSERT_EQUAL(String("Title A"), f.ID3v2Tag()->title()); 2290 f.ID3v2Tag()->setTitle("Title B"); 2291 f.save(); 2292 diff --git a/tests/test_ogg.cpp b/tests/test_ogg.cpp 2293 index 0008429e..3c5e4ac6 100644 2294 --- a/tests/test_ogg.cpp 2295 +++ b/tests/test_ogg.cpp 2296 @@ -84,7 +84,7 @@ public: 2297 { 2298 Vorbis::File f(newname.c_str()); 2299 CPPUNIT_ASSERT(f.isValid()); 2300 - CPPUNIT_ASSERT_EQUAL(136383L, f.length()); 2301 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(136383), f.length()); 2302 CPPUNIT_ASSERT_EQUAL(19, f.lastPageHeader()->pageSequenceNumber()); 2303 CPPUNIT_ASSERT_EQUAL(30U, f.packet(0).size()); 2304 CPPUNIT_ASSERT_EQUAL(131127U, f.packet(1).size()); 2305 @@ -100,7 +100,7 @@ public: 2306 { 2307 Vorbis::File f(newname.c_str()); 2308 CPPUNIT_ASSERT(f.isValid()); 2309 - CPPUNIT_ASSERT_EQUAL(4370L, f.length()); 2310 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(4370), f.length()); 2311 CPPUNIT_ASSERT_EQUAL(3, f.lastPageHeader()->pageSequenceNumber()); 2312 CPPUNIT_ASSERT_EQUAL(30U, f.packet(0).size()); 2313 CPPUNIT_ASSERT_EQUAL(60U, f.packet(1).size()); 2314 diff --git a/tests/test_oggflac.cpp b/tests/test_oggflac.cpp 2315 index 1d00d123..b8fde4a9 100644 2316 --- a/tests/test_oggflac.cpp 2317 +++ b/tests/test_oggflac.cpp 2318 @@ -62,7 +62,7 @@ public: 2319 CPPUNIT_ASSERT_EQUAL(String("The Artist"), f.tag()->artist()); 2320 2321 f.seek(0, File::End); 2322 - CPPUNIT_ASSERT_EQUAL(9134L, f.tell()); 2323 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(9134), f.tell()); 2324 } 2325 } 2326 2327 @@ -87,7 +87,7 @@ public: 2328 { 2329 Ogg::FLAC::File f(newname.c_str()); 2330 CPPUNIT_ASSERT(f.isValid()); 2331 - CPPUNIT_ASSERT_EQUAL(141141L, f.length()); 2332 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(141141), f.length()); 2333 CPPUNIT_ASSERT_EQUAL(21, f.lastPageHeader()->pageSequenceNumber()); 2334 CPPUNIT_ASSERT_EQUAL(51U, f.packet(0).size()); 2335 CPPUNIT_ASSERT_EQUAL(131126U, f.packet(1).size()); 2336 @@ -104,7 +104,7 @@ public: 2337 { 2338 Ogg::FLAC::File f(newname.c_str()); 2339 CPPUNIT_ASSERT(f.isValid()); 2340 - CPPUNIT_ASSERT_EQUAL(9128L, f.length()); 2341 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(9128), f.length()); 2342 CPPUNIT_ASSERT_EQUAL(5, f.lastPageHeader()->pageSequenceNumber()); 2343 CPPUNIT_ASSERT_EQUAL(51U, f.packet(0).size()); 2344 CPPUNIT_ASSERT_EQUAL(59U, f.packet(1).size()); 2345 diff --git a/tests/test_opus.cpp b/tests/test_opus.cpp 2346 index 9a49d239..d172e479 100644 2347 --- a/tests/test_opus.cpp 2348 +++ b/tests/test_opus.cpp 2349 @@ -102,7 +102,7 @@ public: 2350 { 2351 Ogg::Opus::File f(newname.c_str()); 2352 CPPUNIT_ASSERT(f.isValid()); 2353 - CPPUNIT_ASSERT_EQUAL(167534L, f.length()); 2354 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(167534), f.length()); 2355 CPPUNIT_ASSERT_EQUAL(27, f.lastPageHeader()->pageSequenceNumber()); 2356 CPPUNIT_ASSERT_EQUAL(19U, f.packet(0).size()); 2357 CPPUNIT_ASSERT_EQUAL(131380U, f.packet(1).size()); 2358 @@ -119,7 +119,7 @@ public: 2359 { 2360 Ogg::Opus::File f(newname.c_str()); 2361 CPPUNIT_ASSERT(f.isValid()); 2362 - CPPUNIT_ASSERT_EQUAL(35521L, f.length()); 2363 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(35521), f.length()); 2364 CPPUNIT_ASSERT_EQUAL(11, f.lastPageHeader()->pageSequenceNumber()); 2365 CPPUNIT_ASSERT_EQUAL(19U, f.packet(0).size()); 2366 CPPUNIT_ASSERT_EQUAL(313U, f.packet(1).size()); 2367 diff --git a/tests/test_riff.cpp b/tests/test_riff.cpp 2368 index f9a20dfb..0aeebde3 100644 2369 --- a/tests/test_riff.cpp 2370 +++ b/tests/test_riff.cpp 2371 @@ -40,7 +40,7 @@ public: 2372 PublicRIFF(FileName file) : RIFF::File(file, BigEndian) {}; 2373 unsigned int riffSize() { return RIFF::File::riffSize(); }; 2374 unsigned int chunkCount() { return RIFF::File::chunkCount(); }; 2375 - unsigned int chunkOffset(unsigned int i) { return RIFF::File::chunkOffset(i); }; 2376 + offset_t chunkOffset(unsigned int i) { return RIFF::File::chunkOffset(i); }; 2377 unsigned int chunkPadding(unsigned int i) { return RIFF::File::chunkPadding(i); }; 2378 unsigned int chunkDataSize(unsigned int i) { return RIFF::File::chunkDataSize(i); }; 2379 ByteVector chunkName(unsigned int i) { return RIFF::File::chunkName(i); }; 2380 @@ -78,7 +78,7 @@ public: 2381 { 2382 PublicRIFF f(filename.c_str()); 2383 CPPUNIT_ASSERT_EQUAL(ByteVector("TEST"), f.chunkName(2)); 2384 - CPPUNIT_ASSERT_EQUAL((unsigned int)(0x1728 + 8), f.chunkOffset(2)); 2385 + CPPUNIT_ASSERT_EQUAL((offset_t)(0x1728 + 8), f.chunkOffset(2)); 2386 2387 f.setChunkData("TEST", "foo"); 2388 } 2389 @@ -87,7 +87,7 @@ public: 2390 CPPUNIT_ASSERT_EQUAL(ByteVector("TEST"), f.chunkName(2)); 2391 CPPUNIT_ASSERT_EQUAL(ByteVector("foo"), f.chunkData(2)); 2392 CPPUNIT_ASSERT_EQUAL((unsigned int)(3), f.chunkDataSize(2)); 2393 - CPPUNIT_ASSERT_EQUAL((unsigned int)(0x1728 + 8), f.chunkOffset(2)); 2394 + CPPUNIT_ASSERT_EQUAL((offset_t)(0x1728 + 8), f.chunkOffset(2)); 2395 2396 f.setChunkData("SSND", "abcd"); 2397 2398 @@ -120,18 +120,18 @@ public: 2399 2400 { 2401 PublicRIFF f(filename.c_str()); 2402 - CPPUNIT_ASSERT_EQUAL((unsigned int)(0xff0 + 8), f.chunkOffset(2)); 2403 + CPPUNIT_ASSERT_EQUAL((offset_t)(0xff0 + 8), f.chunkOffset(2)); 2404 CPPUNIT_ASSERT_EQUAL((unsigned int)(311), f.chunkDataSize(2)); 2405 CPPUNIT_ASSERT_EQUAL(ByteVector("SSND"), f.chunkName(2)); 2406 CPPUNIT_ASSERT_EQUAL((unsigned int)(1), f.chunkPadding(2)); 2407 - CPPUNIT_ASSERT_EQUAL(long(4400), f.length()); 2408 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(4400), f.length()); 2409 CPPUNIT_ASSERT_EQUAL((unsigned int)(4399 - 8), f.riffSize()); 2410 f.setChunkData("TEST", "abcd"); 2411 - CPPUNIT_ASSERT_EQUAL((unsigned int)(4088), f.chunkOffset(2)); 2412 + CPPUNIT_ASSERT_EQUAL((offset_t)(4088), f.chunkOffset(2)); 2413 CPPUNIT_ASSERT_EQUAL((unsigned int)(311), f.chunkDataSize(2)); 2414 CPPUNIT_ASSERT_EQUAL(ByteVector("SSND"), f.chunkName(2)); 2415 CPPUNIT_ASSERT_EQUAL((unsigned int)(1), f.chunkPadding(2)); 2416 - CPPUNIT_ASSERT_EQUAL((unsigned int)(4408), f.chunkOffset(3)); 2417 + CPPUNIT_ASSERT_EQUAL((offset_t)(4408), f.chunkOffset(3)); 2418 CPPUNIT_ASSERT_EQUAL((unsigned int)(4), f.chunkDataSize(3)); 2419 CPPUNIT_ASSERT_EQUAL(ByteVector("TEST"), f.chunkName(3)); 2420 CPPUNIT_ASSERT_EQUAL((unsigned int)(0), f.chunkPadding(3)); 2421 @@ -139,15 +139,15 @@ public: 2422 } 2423 { 2424 PublicRIFF f(filename.c_str()); 2425 - CPPUNIT_ASSERT_EQUAL((unsigned int)(4088), f.chunkOffset(2)); 2426 + CPPUNIT_ASSERT_EQUAL((offset_t)(4088), f.chunkOffset(2)); 2427 CPPUNIT_ASSERT_EQUAL((unsigned int)(311), f.chunkDataSize(2)); 2428 CPPUNIT_ASSERT_EQUAL(ByteVector("SSND"), f.chunkName(2)); 2429 CPPUNIT_ASSERT_EQUAL((unsigned int)(1), f.chunkPadding(2)); 2430 - CPPUNIT_ASSERT_EQUAL((unsigned int)(4408), f.chunkOffset(3)); 2431 + CPPUNIT_ASSERT_EQUAL((offset_t)(4408), f.chunkOffset(3)); 2432 CPPUNIT_ASSERT_EQUAL((unsigned int)(4), f.chunkDataSize(3)); 2433 CPPUNIT_ASSERT_EQUAL(ByteVector("TEST"), f.chunkName(3)); 2434 CPPUNIT_ASSERT_EQUAL((unsigned int)(0), f.chunkPadding(3)); 2435 - CPPUNIT_ASSERT_EQUAL(long(4412), f.length()); 2436 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(4412), f.length()); 2437 } 2438 } 2439 2440 @@ -158,18 +158,18 @@ public: 2441 2442 { 2443 PublicRIFF f(filename.c_str()); 2444 - CPPUNIT_ASSERT_EQUAL((unsigned int)(0xff0 + 8), f.chunkOffset(2)); 2445 + CPPUNIT_ASSERT_EQUAL((offset_t)(0xff0 + 8), f.chunkOffset(2)); 2446 CPPUNIT_ASSERT_EQUAL((unsigned int)(311), f.chunkDataSize(2)); 2447 CPPUNIT_ASSERT_EQUAL(ByteVector("SSND"), f.chunkName(2)); 2448 CPPUNIT_ASSERT_EQUAL((unsigned int)(0), f.chunkPadding(2)); 2449 - CPPUNIT_ASSERT_EQUAL(long(4399), f.length()); 2450 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(4399), f.length()); 2451 CPPUNIT_ASSERT_EQUAL((unsigned int)(4399 - 8), f.riffSize()); 2452 f.setChunkData("TEST", "abcd"); 2453 - CPPUNIT_ASSERT_EQUAL((unsigned int)(4088), f.chunkOffset(2)); 2454 + CPPUNIT_ASSERT_EQUAL((offset_t)(4088), f.chunkOffset(2)); 2455 CPPUNIT_ASSERT_EQUAL((unsigned int)(311), f.chunkDataSize(2)); 2456 CPPUNIT_ASSERT_EQUAL(ByteVector("SSND"), f.chunkName(2)); 2457 CPPUNIT_ASSERT_EQUAL((unsigned int)(1), f.chunkPadding(2)); 2458 - CPPUNIT_ASSERT_EQUAL((unsigned int)(4408), f.chunkOffset(3)); 2459 + CPPUNIT_ASSERT_EQUAL((offset_t)(4408), f.chunkOffset(3)); 2460 CPPUNIT_ASSERT_EQUAL((unsigned int)(4), f.chunkDataSize(3)); 2461 CPPUNIT_ASSERT_EQUAL(ByteVector("TEST"), f.chunkName(3)); 2462 CPPUNIT_ASSERT_EQUAL((unsigned int)(0), f.chunkPadding(3)); 2463 @@ -177,15 +177,15 @@ public: 2464 } 2465 { 2466 PublicRIFF f(filename.c_str()); 2467 - CPPUNIT_ASSERT_EQUAL((unsigned int)(4088), f.chunkOffset(2)); 2468 + CPPUNIT_ASSERT_EQUAL((offset_t)(4088), f.chunkOffset(2)); 2469 CPPUNIT_ASSERT_EQUAL((unsigned int)(311), f.chunkDataSize(2)); 2470 CPPUNIT_ASSERT_EQUAL(ByteVector("SSND"), f.chunkName(2)); 2471 CPPUNIT_ASSERT_EQUAL((unsigned int)(1), f.chunkPadding(2)); 2472 - CPPUNIT_ASSERT_EQUAL((unsigned int)(4408), f.chunkOffset(3)); 2473 + CPPUNIT_ASSERT_EQUAL((offset_t)(4408), f.chunkOffset(3)); 2474 CPPUNIT_ASSERT_EQUAL((unsigned int)(4), f.chunkDataSize(3)); 2475 CPPUNIT_ASSERT_EQUAL(ByteVector("TEST"), f.chunkName(3)); 2476 CPPUNIT_ASSERT_EQUAL((unsigned int)(0), f.chunkPadding(3)); 2477 - CPPUNIT_ASSERT_EQUAL(long(4412), f.length()); 2478 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(4412), f.length()); 2479 } 2480 } 2481 2482 @@ -196,18 +196,18 @@ public: 2483 2484 { 2485 PublicRIFF f(filename.c_str()); 2486 - CPPUNIT_ASSERT_EQUAL((unsigned int)(0xff0 + 8), f.chunkOffset(2)); 2487 + CPPUNIT_ASSERT_EQUAL((offset_t)(0xff0 + 8), f.chunkOffset(2)); 2488 CPPUNIT_ASSERT_EQUAL((unsigned int)(311), f.chunkDataSize(2)); 2489 CPPUNIT_ASSERT_EQUAL(ByteVector("SSND"), f.chunkName(2)); 2490 CPPUNIT_ASSERT_EQUAL((unsigned int)(0), f.chunkPadding(2)); 2491 - CPPUNIT_ASSERT_EQUAL(long(4399), f.length()); 2492 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(4399), f.length()); 2493 CPPUNIT_ASSERT_EQUAL((unsigned int)(4399 - 8), f.riffSize()); 2494 f.setChunkData("TEST", "abc"); 2495 - CPPUNIT_ASSERT_EQUAL((unsigned int)(4088), f.chunkOffset(2)); 2496 + CPPUNIT_ASSERT_EQUAL((offset_t)(4088), f.chunkOffset(2)); 2497 CPPUNIT_ASSERT_EQUAL((unsigned int)(311), f.chunkDataSize(2)); 2498 CPPUNIT_ASSERT_EQUAL(ByteVector("SSND"), f.chunkName(2)); 2499 CPPUNIT_ASSERT_EQUAL((unsigned int)(1), f.chunkPadding(2)); 2500 - CPPUNIT_ASSERT_EQUAL((unsigned int)(4408), f.chunkOffset(3)); 2501 + CPPUNIT_ASSERT_EQUAL((offset_t)(4408), f.chunkOffset(3)); 2502 CPPUNIT_ASSERT_EQUAL((unsigned int)(3), f.chunkDataSize(3)); 2503 CPPUNIT_ASSERT_EQUAL(ByteVector("TEST"), f.chunkName(3)); 2504 CPPUNIT_ASSERT_EQUAL((unsigned int)(1), f.chunkPadding(3)); 2505 @@ -215,15 +215,15 @@ public: 2506 } 2507 { 2508 PublicRIFF f(filename.c_str()); 2509 - CPPUNIT_ASSERT_EQUAL((unsigned int)(4088), f.chunkOffset(2)); 2510 + CPPUNIT_ASSERT_EQUAL((offset_t)(4088), f.chunkOffset(2)); 2511 CPPUNIT_ASSERT_EQUAL((unsigned int)(311), f.chunkDataSize(2)); 2512 CPPUNIT_ASSERT_EQUAL(ByteVector("SSND"), f.chunkName(2)); 2513 CPPUNIT_ASSERT_EQUAL((unsigned int)(1), f.chunkPadding(2)); 2514 - CPPUNIT_ASSERT_EQUAL((unsigned int)(4408), f.chunkOffset(3)); 2515 + CPPUNIT_ASSERT_EQUAL((offset_t)(4408), f.chunkOffset(3)); 2516 CPPUNIT_ASSERT_EQUAL((unsigned int)(3), f.chunkDataSize(3)); 2517 CPPUNIT_ASSERT_EQUAL(ByteVector("TEST"), f.chunkName(3)); 2518 CPPUNIT_ASSERT_EQUAL((unsigned int)(1), f.chunkPadding(3)); 2519 - CPPUNIT_ASSERT_EQUAL(long(4412), f.length()); 2520 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(4412), f.length()); 2521 } 2522 } 2523 2524 @@ -235,21 +235,21 @@ public: 2525 PublicRIFF f(filename.c_str()); 2526 2527 CPPUNIT_ASSERT_EQUAL(5928U, f.riffSize()); 2528 - CPPUNIT_ASSERT_EQUAL(5936L, f.length()); 2529 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(5936), f.length()); 2530 CPPUNIT_ASSERT_EQUAL(ByteVector("COMM"), f.chunkName(0)); 2531 - CPPUNIT_ASSERT_EQUAL((unsigned int)(0x000C + 8), f.chunkOffset(0)); 2532 + CPPUNIT_ASSERT_EQUAL((offset_t)(0x000C + 8), f.chunkOffset(0)); 2533 CPPUNIT_ASSERT_EQUAL(ByteVector("SSND"), f.chunkName(1)); 2534 - CPPUNIT_ASSERT_EQUAL((unsigned int)(0x0026 + 8), f.chunkOffset(1)); 2535 + CPPUNIT_ASSERT_EQUAL((offset_t)(0x0026 + 8), f.chunkOffset(1)); 2536 CPPUNIT_ASSERT_EQUAL(ByteVector("TEST"), f.chunkName(2)); 2537 - CPPUNIT_ASSERT_EQUAL((unsigned int)(0x1728 + 8), f.chunkOffset(2)); 2538 + CPPUNIT_ASSERT_EQUAL((offset_t)(0x1728 + 8), f.chunkOffset(2)); 2539 2540 const ByteVector data(0x400, ' '); 2541 f.setChunkData("SSND", data); 2542 CPPUNIT_ASSERT_EQUAL(1070U, f.riffSize()); 2543 - CPPUNIT_ASSERT_EQUAL(1078L, f.length()); 2544 - CPPUNIT_ASSERT_EQUAL((unsigned int)(0x000C + 8), f.chunkOffset(0)); 2545 - CPPUNIT_ASSERT_EQUAL((unsigned int)(0x0026 + 8), f.chunkOffset(1)); 2546 - CPPUNIT_ASSERT_EQUAL((unsigned int)(0x042E + 8), f.chunkOffset(2)); 2547 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(1078), f.length()); 2548 + CPPUNIT_ASSERT_EQUAL((offset_t)(0x000C + 8), f.chunkOffset(0)); 2549 + CPPUNIT_ASSERT_EQUAL((offset_t)(0x0026 + 8), f.chunkOffset(1)); 2550 + CPPUNIT_ASSERT_EQUAL((offset_t)(0x042E + 8), f.chunkOffset(2)); 2551 2552 f.seek(f.chunkOffset(0) - 8); 2553 CPPUNIT_ASSERT_EQUAL(ByteVector("COMM"), f.readBlock(4)); 2554 @@ -260,10 +260,10 @@ public: 2555 2556 f.setChunkData(0, data); 2557 CPPUNIT_ASSERT_EQUAL(2076U, f.riffSize()); 2558 - CPPUNIT_ASSERT_EQUAL(2084L, f.length()); 2559 - CPPUNIT_ASSERT_EQUAL((unsigned int)(0x000C + 8), f.chunkOffset(0)); 2560 - CPPUNIT_ASSERT_EQUAL((unsigned int)(0x0414 + 8), f.chunkOffset(1)); 2561 - CPPUNIT_ASSERT_EQUAL((unsigned int)(0x081C + 8), f.chunkOffset(2)); 2562 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(2084), f.length()); 2563 + CPPUNIT_ASSERT_EQUAL((offset_t)(0x000C + 8), f.chunkOffset(0)); 2564 + CPPUNIT_ASSERT_EQUAL((offset_t)(0x0414 + 8), f.chunkOffset(1)); 2565 + CPPUNIT_ASSERT_EQUAL((offset_t)(0x081C + 8), f.chunkOffset(2)); 2566 2567 f.seek(f.chunkOffset(0) - 8); 2568 CPPUNIT_ASSERT_EQUAL(ByteVector("COMM"), f.readBlock(4)); 2569 @@ -274,9 +274,9 @@ public: 2570 2571 f.removeChunk("SSND"); 2572 CPPUNIT_ASSERT_EQUAL(1044U, f.riffSize()); 2573 - CPPUNIT_ASSERT_EQUAL(1052L, f.length()); 2574 - CPPUNIT_ASSERT_EQUAL((unsigned int)(0x000C + 8), f.chunkOffset(0)); 2575 - CPPUNIT_ASSERT_EQUAL((unsigned int)(0x0414 + 8), f.chunkOffset(1)); 2576 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(1052), f.length()); 2577 + CPPUNIT_ASSERT_EQUAL((offset_t)(0x000C + 8), f.chunkOffset(0)); 2578 + CPPUNIT_ASSERT_EQUAL((offset_t)(0x0414 + 8), f.chunkOffset(1)); 2579 2580 f.seek(f.chunkOffset(0) - 8); 2581 CPPUNIT_ASSERT_EQUAL(ByteVector("COMM"), f.readBlock(4)); 2582 @@ -285,8 +285,8 @@ public: 2583 2584 f.removeChunk(0); 2585 CPPUNIT_ASSERT_EQUAL(12U, f.riffSize()); 2586 - CPPUNIT_ASSERT_EQUAL(20L, f.length()); 2587 - CPPUNIT_ASSERT_EQUAL((unsigned int)(0x000C + 8), f.chunkOffset(0)); 2588 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(20), f.length()); 2589 + CPPUNIT_ASSERT_EQUAL((offset_t)(0x000C + 8), f.chunkOffset(0)); 2590 2591 f.seek(f.chunkOffset(0) - 8); 2592 CPPUNIT_ASSERT_EQUAL(ByteVector("TEST"), f.readBlock(4)); 2593 @@ -295,4 +295,3 @@ public: 2594 }; 2595 2596 CPPUNIT_TEST_SUITE_REGISTRATION(TestRIFF); 2597 - 2598 diff --git a/tests/test_speex.cpp b/tests/test_speex.cpp 2599 index 1f5bb754..c8268c21 100644 2600 --- a/tests/test_speex.cpp 2601 +++ b/tests/test_speex.cpp 2602 @@ -67,7 +67,7 @@ public: 2603 { 2604 Ogg::Speex::File f(newname.c_str()); 2605 CPPUNIT_ASSERT(f.isValid()); 2606 - CPPUNIT_ASSERT_EQUAL(156330L, f.length()); 2607 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(156330), f.length()); 2608 CPPUNIT_ASSERT_EQUAL(23, f.lastPageHeader()->pageSequenceNumber()); 2609 CPPUNIT_ASSERT_EQUAL(80U, f.packet(0).size()); 2610 CPPUNIT_ASSERT_EQUAL(131116U, f.packet(1).size()); 2611 @@ -84,7 +84,7 @@ public: 2612 { 2613 Ogg::Speex::File f(newname.c_str()); 2614 CPPUNIT_ASSERT(f.isValid()); 2615 - CPPUNIT_ASSERT_EQUAL(24317L, f.length()); 2616 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(24317), f.length()); 2617 CPPUNIT_ASSERT_EQUAL(7, f.lastPageHeader()->pageSequenceNumber()); 2618 CPPUNIT_ASSERT_EQUAL(80U, f.packet(0).size()); 2619 CPPUNIT_ASSERT_EQUAL(49U, f.packet(1).size()); 2620 diff --git a/tests/test_wav.cpp b/tests/test_wav.cpp 2621 index 61081393..55d71e0b 100644 2622 --- a/tests/test_wav.cpp 2623 +++ b/tests/test_wav.cpp 2624 @@ -268,7 +268,7 @@ public: 2625 ScopedFileCopy copy("duplicate_tags", ".wav"); 2626 2627 RIFF::WAV::File f(copy.fileName().c_str()); 2628 - CPPUNIT_ASSERT_EQUAL(17052L, f.length()); 2629 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(17052), f.length()); 2630 2631 // duplicate_tags.wav has duplicate ID3v2/INFO tags. 2632 // title() returns "Title2" if can't skip the second tag. 2633 @@ -280,8 +280,8 @@ public: 2634 CPPUNIT_ASSERT_EQUAL(String("Title1"), f.InfoTag()->title()); 2635 2636 f.save(); 2637 - CPPUNIT_ASSERT_EQUAL(15898L, f.length()); 2638 - CPPUNIT_ASSERT_EQUAL(-1L, f.find("Title2")); 2639 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(15898), f.length()); 2640 + CPPUNIT_ASSERT_EQUAL(static_cast<offset_t>(-1), f.find("Title2")); 2641 } 2642 2643 void testFuzzedFile1()