You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
(10) |
Sep
|
Oct
|
Nov
|
Dec
(3) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(1) |
Feb
(2) |
Mar
(3) |
Apr
(2) |
May
(10) |
Jun
(2) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
|
2008 |
Jan
(6) |
Feb
(4) |
Mar
(5) |
Apr
(2) |
May
(1) |
Jun
(1) |
Jul
(4) |
Aug
(6) |
Sep
(2) |
Oct
(9) |
Nov
(1) |
Dec
(4) |
2009 |
Jan
(9) |
Feb
(2) |
Mar
(2) |
Apr
(2) |
May
(6) |
Jun
(18) |
Jul
(33) |
Aug
(39) |
Sep
(33) |
Oct
(24) |
Nov
(23) |
Dec
(22) |
2010 |
Jan
(29) |
Feb
(32) |
Mar
(51) |
Apr
(17) |
May
(31) |
Jun
(21) |
Jul
(32) |
Aug
(28) |
Sep
(35) |
Oct
(27) |
Nov
(11) |
Dec
(13) |
2011 |
Jan
(14) |
Feb
(13) |
Mar
(27) |
Apr
(27) |
May
(28) |
Jun
(20) |
Jul
(43) |
Aug
(52) |
Sep
(66) |
Oct
(61) |
Nov
(11) |
Dec
(8) |
2012 |
Jan
(20) |
Feb
(30) |
Mar
(38) |
Apr
(21) |
May
(33) |
Jun
(21) |
Jul
(25) |
Aug
(9) |
Sep
(24) |
Oct
(42) |
Nov
(27) |
Dec
(41) |
2013 |
Jan
(20) |
Feb
(35) |
Mar
(156) |
Apr
(298) |
May
(258) |
Jun
(201) |
Jul
(105) |
Aug
(60) |
Sep
(193) |
Oct
(245) |
Nov
(280) |
Dec
(194) |
2014 |
Jan
(63) |
Feb
(202) |
Mar
(200) |
Apr
(23) |
May
(53) |
Jun
(105) |
Jul
(18) |
Aug
(26) |
Sep
(110) |
Oct
(187) |
Nov
(97) |
Dec
(74) |
2015 |
Jan
(45) |
Feb
(55) |
Mar
(116) |
Apr
(116) |
May
(193) |
Jun
(164) |
Jul
(50) |
Aug
(111) |
Sep
(98) |
Oct
(71) |
Nov
(103) |
Dec
(63) |
2016 |
Jan
(33) |
Feb
(101) |
Mar
(182) |
Apr
(139) |
May
(140) |
Jun
(103) |
Jul
(165) |
Aug
(286) |
Sep
(208) |
Oct
(127) |
Nov
(97) |
Dec
(54) |
2017 |
Jan
(64) |
Feb
(335) |
Mar
(202) |
Apr
(212) |
May
(139) |
Jun
(127) |
Jul
(294) |
Aug
(154) |
Sep
(170) |
Oct
(152) |
Nov
(156) |
Dec
(62) |
2018 |
Jan
(168) |
Feb
(237) |
Mar
(196) |
Apr
(174) |
May
(174) |
Jun
(161) |
Jul
(127) |
Aug
(88) |
Sep
(149) |
Oct
(66) |
Nov
(52) |
Dec
(135) |
2019 |
Jan
(146) |
Feb
(126) |
Mar
(104) |
Apr
(58) |
May
(60) |
Jun
(28) |
Jul
(197) |
Aug
(129) |
Sep
(141) |
Oct
(148) |
Nov
(63) |
Dec
(100) |
2020 |
Jan
(74) |
Feb
(37) |
Mar
(59) |
Apr
(154) |
May
(194) |
Jun
(133) |
Jul
(313) |
Aug
(197) |
Sep
(49) |
Oct
(162) |
Nov
(143) |
Dec
(57) |
2021 |
Jan
(120) |
Feb
(107) |
Mar
(314) |
Apr
(157) |
May
(524) |
Jun
(169) |
Jul
(72) |
Aug
(133) |
Sep
(135) |
Oct
(146) |
Nov
(198) |
Dec
(325) |
2022 |
Jan
(409) |
Feb
(249) |
Mar
(138) |
Apr
(95) |
May
(102) |
Jun
(221) |
Jul
(66) |
Aug
(120) |
Sep
(192) |
Oct
(131) |
Nov
(53) |
Dec
(171) |
2023 |
Jan
(357) |
Feb
(82) |
Mar
(168) |
Apr
(218) |
May
(196) |
Jun
(86) |
Jul
(115) |
Aug
(49) |
Sep
(190) |
Oct
(102) |
Nov
(45) |
Dec
(76) |
2024 |
Jan
(86) |
Feb
(50) |
Mar
(324) |
Apr
(209) |
May
(197) |
Jun
(232) |
Jul
(194) |
Aug
(247) |
Sep
(219) |
Oct
(266) |
Nov
(328) |
Dec
(304) |
2025 |
Jan
(191) |
Feb
(115) |
Mar
(137) |
Apr
(32) |
May
(126) |
Jun
(403) |
Jul
(213) |
Aug
(189) |
Sep
|
Oct
|
Nov
|
Dec
|
From: <sv...@op...> - 2024-03-15 12:57:23
|
Author: manx Date: Fri Mar 15 13:57:08 2024 New Revision: 20359 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20359 Log: Merged revision(s) 20358 from trunk/OpenMPT: [Ref] mpt/base/numeric.hpp: Small cleanup. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/src/mpt/base/numeric.hpp Modified: branches/OpenMPT-1.31/src/mpt/base/numeric.hpp ============================================================================== --- branches/OpenMPT-1.31/src/mpt/base/numeric.hpp Fri Mar 15 13:56:44 2024 (r20358) +++ branches/OpenMPT-1.31/src/mpt/base/numeric.hpp Fri Mar 15 13:57:08 2024 (r20359) @@ -86,8 +86,7 @@ if (x > (std::numeric_limits<T>::max() - (target - 1))) { return std::numeric_limits<T>::max(); } - T result = ((x + (target - 1)) / target) * target; - return result; + return ((x + (target - 1)) / target) * target; } // Returns sign of a number (-1 for negative numbers, 1 for positive numbers, 0 for 0) |
From: <sv...@op...> - 2024-03-15 12:56:54
|
Author: manx Date: Fri Mar 15 13:56:44 2024 New Revision: 20358 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20358 Log: [Ref] mpt/base/numeric.hpp: Small cleanup. Modified: trunk/OpenMPT/src/mpt/base/numeric.hpp Modified: trunk/OpenMPT/src/mpt/base/numeric.hpp ============================================================================== --- trunk/OpenMPT/src/mpt/base/numeric.hpp Fri Mar 15 13:24:06 2024 (r20357) +++ trunk/OpenMPT/src/mpt/base/numeric.hpp Fri Mar 15 13:56:44 2024 (r20358) @@ -86,8 +86,7 @@ if (x > (std::numeric_limits<T>::max() - (target - 1))) { return std::numeric_limits<T>::max(); } - T result = ((x + (target - 1)) / target) * target; - return result; + return ((x + (target - 1)) / target) * target; } // Returns sign of a number (-1 for negative numbers, 1 for positive numbers, 0 for 0) |
From: <sv...@op...> - 2024-03-15 12:24:17
|
Author: manx Date: Fri Mar 15 13:24:06 2024 New Revision: 20357 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20357 Log: [Doc] libopenmpt: Update changelog. Modified: branches/OpenMPT-1.28/libopenmpt/dox/changelog.md Modified: branches/OpenMPT-1.28/libopenmpt/dox/changelog.md ============================================================================== --- branches/OpenMPT-1.28/libopenmpt/dox/changelog.md Fri Mar 15 13:23:55 2024 (r20356) +++ branches/OpenMPT-1.28/libopenmpt/dox/changelog.md Fri Mar 15 13:24:06 2024 (r20357) @@ -7,6 +7,15 @@ ### libopenmpt 0.4.40-pre + * [**Sec**] Null-pointer write (32bit platforms) or excessive memory + allocation (64bit platforms) when reading close to 4GiB of data from + unseekable files (r20350, r20351). + * [**Sec**] Write buffer overflow when reading unseekable files close to + 4GiB in size (r20352). + * [**Sec**] Possible out-of-memory (32bit platforms) or excessive memory + allocation (64bit platforms) when reading malformed data from unseekable + files (r20353). + ### libopenmpt 0.4.39 (2024-03-03) * Setting all possible `load_skip` flags resulted in nothing being loaded at |
From: <sv...@op...> - 2024-03-15 12:24:16
|
Author: manx Date: Fri Mar 15 13:23:55 2024 New Revision: 20356 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20356 Log: [Doc] libopenmpt: Update changelog. Modified: branches/OpenMPT-1.29/libopenmpt/dox/changelog.md Modified: branches/OpenMPT-1.29/libopenmpt/dox/changelog.md ============================================================================== --- branches/OpenMPT-1.29/libopenmpt/dox/changelog.md Fri Mar 15 13:23:47 2024 (r20355) +++ branches/OpenMPT-1.29/libopenmpt/dox/changelog.md Fri Mar 15 13:23:55 2024 (r20356) @@ -7,6 +7,17 @@ ### libopenmpt 0.5.28-pre + * [**Sec**] Null-pointer write (32bit platforms) or excessive memory + allocation (64bit platforms) when reading close to 4GiB of data from + unseekable files (r20346, r20347). + * [**Sec**] Write buffer overflow when reading unseekable files close to + 4GiB in size (r20348). + * [**Sec**] Possible out-of-memory (32bit platforms) or excessive memory + allocation (64bit platforms) when reading malformed data from unseekable + files (r20349). + * [**Sec**] DMF: Possible null-pointer write or excessive memory allocation + when reading DMF files (r20325). + * xmp-openmpt: Metadata retrievel for playlist items was broken. ### libopenmpt 0.5.27 (2024-03-03) |
From: <sv...@op...> - 2024-03-15 12:24:05
|
Author: manx Date: Fri Mar 15 13:23:47 2024 New Revision: 20355 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20355 Log: [Doc] libopenmpt: Update changelog. Modified: branches/OpenMPT-1.30/libopenmpt/dox/changelog.md Modified: branches/OpenMPT-1.30/libopenmpt/dox/changelog.md ============================================================================== --- branches/OpenMPT-1.30/libopenmpt/dox/changelog.md Fri Mar 15 13:23:36 2024 (r20354) +++ branches/OpenMPT-1.30/libopenmpt/dox/changelog.md Fri Mar 15 13:23:47 2024 (r20355) @@ -7,6 +7,17 @@ ### libopenmpt 0.6.14-pre + * [**Sec**] Null-pointer write (32bit platforms) or excessive memory + allocation (64bit platforms) when reading close to 4GiB of data from + unseekable files (r20341, r20343). + * [**Sec**] Write buffer overflow when reading unseekable files close to + 4GiB in size (r20344). + * [**Sec**] Possible out-of-memory (32bit platforms) or excessive memory + allocation (64bit platforms) when reading malformed data from unseekable + files (r20345). + * [**Sec**] DMF: Possible null-pointer write or excessive memory allocation + when reading DMF files (r20324). + * xmp-openmpt: Metadata retrievel for playlist items was broken. ### libopenmpt 0.6.13 (2024-03-03) |
From: <sv...@op...> - 2024-03-15 12:23:54
|
Author: manx Date: Fri Mar 15 13:23:36 2024 New Revision: 20354 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20354 Log: [Doc] libopenmpt: Update changelog. Modified: branches/OpenMPT-1.31/doc/libopenmpt/changelog.md Modified: branches/OpenMPT-1.31/doc/libopenmpt/changelog.md ============================================================================== --- branches/OpenMPT-1.31/doc/libopenmpt/changelog.md Fri Mar 15 13:14:36 2024 (r20353) +++ branches/OpenMPT-1.31/doc/libopenmpt/changelog.md Fri Mar 15 13:23:36 2024 (r20354) @@ -7,6 +7,17 @@ ### libopenmpt 0.7.5-pre + * [**Sec**] Null-pointer write (32bit platforms) or excessive memory + allocation (64bit platforms) when reading close to 4GiB of data from + unseekable files (r20336, r20338). + * [**Sec**] Write buffer overflow when reading unseekable files close to + 4GiB in size (r20339). + * [**Sec**] Possible out-of-memory (32bit platforms) or excessive memory + allocation (64bit platforms) when reading malformed data from unseekable + files (r20340). + * [**Sec**] DMF: Possible null-pointer write or excessive memory allocation + when reading DMF files (r20323). + * xmp-openmpt: Metadata retrievel for playlist items was broken. ### libopenmpt 0.7.4 (2024-03-03) |
From: <sv...@op...> - 2024-03-15 12:14:48
|
Author: manx Date: Fri Mar 15 13:14:36 2024 New Revision: 20353 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20353 Log: Merged revision(s) 20349 from branches/OpenMPT-1.29: Merged revision(s) 20335 from trunk/OpenMPT: [Fix] mpt/io_read/filedata_base_unseekable.hpp: Avoid memory denial-of-service when trying to read way more data than the actual file size from unseekable files. ........ ........ Modified: branches/OpenMPT-1.28/ (props changed) branches/OpenMPT-1.28/common/mptIO.cpp Modified: branches/OpenMPT-1.28/common/mptIO.cpp ============================================================================== --- branches/OpenMPT-1.28/common/mptIO.cpp Fri Mar 15 13:14:11 2024 (r20352) +++ branches/OpenMPT-1.28/common/mptIO.cpp Fri Mar 15 13:14:36 2024 (r20353) @@ -475,16 +475,16 @@ return; } std::size_t alignedpos = Util::SaturateAlignUp<std::size_t>(target, QUANTUM_SIZE); - std::size_t needcount = alignedpos - cachesize; - EnsureCacheBuffer(needcount); - std::size_t readcount = InternalRead(&cache[cachesize], alignedpos - cachesize); - cachesize += readcount; - if(!InternalEof()) + while(!InternalEof() && (cachesize < alignedpos)) { - // can read further - return; + EnsureCacheBuffer(BUFFER_SIZE); + std::size_t readcount = InternalRead(&cache[cachesize], BUFFER_SIZE); + cachesize += readcount; + } + if(InternalEof()) + { + streamFullyCached = true; } - streamFullyCached = true; } void FileDataContainerUnseekable::ReadCached(mpt::byte *dst, IFileDataContainer::off_t pos, IFileDataContainer::off_t count) const |
From: <sv...@op...> - 2024-03-15 12:14:26
|
Author: manx Date: Fri Mar 15 13:14:11 2024 New Revision: 20352 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20352 Log: Merged revision(s) 20348 from branches/OpenMPT-1.29: Merged revision(s) 20333 from trunk/OpenMPT: [Fix] mpt/io_read/filedata_base_unseekable.hpp: Avoid integer overflow in EnsureCacheBuffer() when reading unseekable files are close to uint32_max in size. ........ ........ Modified: branches/OpenMPT-1.28/ (props changed) branches/OpenMPT-1.28/common/mptIO.cpp Modified: branches/OpenMPT-1.28/common/mptIO.cpp ============================================================================== --- branches/OpenMPT-1.28/common/mptIO.cpp Fri Mar 15 13:13:46 2024 (r20351) +++ branches/OpenMPT-1.28/common/mptIO.cpp Fri Mar 15 13:14:11 2024 (r20352) @@ -428,7 +428,7 @@ void FileDataContainerUnseekable::EnsureCacheBuffer(std::size_t requiredbuffersize) const { - if(cache.size() >= cachesize + requiredbuffersize) + if(cache.size() - cachesize >= requiredbuffersize) { return; } |
From: <sv...@op...> - 2024-03-15 12:14:02
|
Author: manx Date: Fri Mar 15 13:13:46 2024 New Revision: 20351 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20351 Log: Merged revision(s) 20347 from branches/OpenMPT-1.29: Merged revision(s) 20332 from trunk/OpenMPT: [Fix] mpt/io_read/filedata_base_unseekable.hpp: Fix integer overflow when trying to read close to uint32_max bytes from unseekable files. ........ ........ Modified: branches/OpenMPT-1.28/ (props changed) branches/OpenMPT-1.28/common/mptIO.cpp Modified: branches/OpenMPT-1.28/common/mptIO.cpp ============================================================================== --- branches/OpenMPT-1.28/common/mptIO.cpp Fri Mar 15 13:13:15 2024 (r20350) +++ branches/OpenMPT-1.28/common/mptIO.cpp Fri Mar 15 13:13:46 2024 (r20351) @@ -434,10 +434,10 @@ } if(cache.size() == 0) { - cache.resize(Util::AlignUp<std::size_t>(cachesize + requiredbuffersize, BUFFER_SIZE)); + cache.resize(Util::SaturateAlignUp<std::size_t>(cachesize + requiredbuffersize, BUFFER_SIZE)); } else if(Util::ExponentialGrow(cache.size()) < cachesize + requiredbuffersize) { - cache.resize(Util::AlignUp<std::size_t>(cachesize + requiredbuffersize, BUFFER_SIZE)); + cache.resize(Util::SaturateAlignUp<std::size_t>(cachesize + requiredbuffersize, BUFFER_SIZE)); } else { cache.resize(Util::ExponentialGrow(cache.size())); @@ -474,7 +474,7 @@ { return; } - std::size_t alignedpos = Util::AlignUp<std::size_t>(target, QUANTUM_SIZE); + std::size_t alignedpos = Util::SaturateAlignUp<std::size_t>(target, QUANTUM_SIZE); std::size_t needcount = alignedpos - cachesize; EnsureCacheBuffer(needcount); std::size_t readcount = InternalRead(&cache[cachesize], alignedpos - cachesize); |
From: <sv...@op...> - 2024-03-15 12:13:32
|
Author: manx Date: Fri Mar 15 13:13:15 2024 New Revision: 20350 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20350 Log: Merged revision(s) 20346 from branches/OpenMPT-1.29: Merged revision(s) 20330 from trunk/OpenMPT: [Ref] mpt/base/numeric.hpp: Add mpt::saturate_align_up. ........ ........ Modified: branches/OpenMPT-1.28/ (props changed) branches/OpenMPT-1.28/common/mptBaseUtils.h Modified: branches/OpenMPT-1.28/common/mptBaseUtils.h ============================================================================== --- branches/OpenMPT-1.28/common/mptBaseUtils.h Fri Mar 15 13:09:56 2024 (r20349) +++ branches/OpenMPT-1.28/common/mptBaseUtils.h Fri Mar 15 13:13:15 2024 (r20350) @@ -701,6 +701,18 @@ return (x / target) * target; } + // rounds x up to multiples of target or saturation of T + template <typename T> + inline T SaturateAlignUp(T x, T target) + { + if(x > (std::numeric_limits<T>::max() - (target - 1))) + { + return std::numeric_limits<T>::max(); + } + T result = ((x + (target - 1)) / target) * target; + return result; + } + } // namespace Util |
From: <sv...@op...> - 2024-03-15 12:10:13
|
Author: manx Date: Fri Mar 15 13:09:56 2024 New Revision: 20349 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20349 Log: Merged revision(s) 20335 from trunk/OpenMPT: [Fix] mpt/io_read/filedata_base_unseekable.hpp: Avoid memory denial-of-service when trying to read way more data than the actual file size from unseekable files. ........ Modified: branches/OpenMPT-1.29/ (props changed) branches/OpenMPT-1.29/common/mptIO.cpp Modified: branches/OpenMPT-1.29/common/mptIO.cpp ============================================================================== --- branches/OpenMPT-1.29/common/mptIO.cpp Fri Mar 15 13:07:05 2024 (r20348) +++ branches/OpenMPT-1.29/common/mptIO.cpp Fri Mar 15 13:09:56 2024 (r20349) @@ -401,16 +401,16 @@ return; } std::size_t alignedpos = Util::SaturateAlignUp<std::size_t>(target, QUANTUM_SIZE); - std::size_t needcount = alignedpos - cachesize; - EnsureCacheBuffer(needcount); - std::size_t readcount = InternalRead(&cache[cachesize], alignedpos - cachesize); - cachesize += readcount; - if(!InternalEof()) + while(!InternalEof() && (cachesize < alignedpos)) { - // can read further - return; + EnsureCacheBuffer(BUFFER_SIZE); + std::size_t readcount = InternalRead(&cache[cachesize], BUFFER_SIZE); + cachesize += readcount; + } + if(InternalEof()) + { + streamFullyCached = true; } - streamFullyCached = true; } void FileDataContainerUnseekable::ReadCached(std::byte *dst, IFileDataContainer::off_t pos, IFileDataContainer::off_t count) const |
From: <sv...@op...> - 2024-03-15 12:07:19
|
Author: manx Date: Fri Mar 15 13:07:05 2024 New Revision: 20348 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20348 Log: Merged revision(s) 20333 from trunk/OpenMPT: [Fix] mpt/io_read/filedata_base_unseekable.hpp: Avoid integer overflow in EnsureCacheBuffer() when reading unseekable files are close to uint32_max in size. ........ Modified: branches/OpenMPT-1.29/ (props changed) branches/OpenMPT-1.29/common/mptIO.cpp Modified: branches/OpenMPT-1.29/common/mptIO.cpp ============================================================================== --- branches/OpenMPT-1.29/common/mptIO.cpp Fri Mar 15 13:00:49 2024 (r20347) +++ branches/OpenMPT-1.29/common/mptIO.cpp Fri Mar 15 13:07:05 2024 (r20348) @@ -354,7 +354,7 @@ void FileDataContainerUnseekable::EnsureCacheBuffer(std::size_t requiredbuffersize) const { - if(cache.size() >= cachesize + requiredbuffersize) + if(cache.size() - cachesize >= requiredbuffersize) { return; } |
From: <sv...@op...> - 2024-03-15 12:01:05
|
Author: manx Date: Fri Mar 15 13:00:49 2024 New Revision: 20347 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20347 Log: Merged revision(s) 20332 from trunk/OpenMPT: [Fix] mpt/io_read/filedata_base_unseekable.hpp: Fix integer overflow when trying to read close to uint32_max bytes from unseekable files. ........ Modified: branches/OpenMPT-1.29/ (props changed) branches/OpenMPT-1.29/common/mptIO.cpp Modified: branches/OpenMPT-1.29/common/mptIO.cpp ============================================================================== --- branches/OpenMPT-1.29/common/mptIO.cpp Fri Mar 15 12:58:51 2024 (r20346) +++ branches/OpenMPT-1.29/common/mptIO.cpp Fri Mar 15 13:00:49 2024 (r20347) @@ -360,10 +360,10 @@ } if(cache.size() == 0) { - cache.resize(Util::AlignUp<std::size_t>(cachesize + requiredbuffersize, BUFFER_SIZE)); + cache.resize(Util::SaturateAlignUp<std::size_t>(cachesize + requiredbuffersize, BUFFER_SIZE)); } else if(Util::ExponentialGrow(cache.size()) < cachesize + requiredbuffersize) { - cache.resize(Util::AlignUp<std::size_t>(cachesize + requiredbuffersize, BUFFER_SIZE)); + cache.resize(Util::SaturateAlignUp<std::size_t>(cachesize + requiredbuffersize, BUFFER_SIZE)); } else { cache.resize(Util::ExponentialGrow(cache.size())); @@ -400,7 +400,7 @@ { return; } - std::size_t alignedpos = Util::AlignUp<std::size_t>(target, QUANTUM_SIZE); + std::size_t alignedpos = Util::SaturateAlignUp<std::size_t>(target, QUANTUM_SIZE); std::size_t needcount = alignedpos - cachesize; EnsureCacheBuffer(needcount); std::size_t readcount = InternalRead(&cache[cachesize], alignedpos - cachesize); |
From: <sv...@op...> - 2024-03-15 11:59:04
|
Author: manx Date: Fri Mar 15 12:58:51 2024 New Revision: 20346 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20346 Log: Merged revision(s) 20330 from trunk/OpenMPT: [Ref] mpt/base/numeric.hpp: Add mpt::saturate_align_up. ........ Modified: branches/OpenMPT-1.29/ (props changed) branches/OpenMPT-1.29/common/mptBaseUtils.h Modified: branches/OpenMPT-1.29/common/mptBaseUtils.h ============================================================================== --- branches/OpenMPT-1.29/common/mptBaseUtils.h Fri Mar 15 12:51:33 2024 (r20345) +++ branches/OpenMPT-1.29/common/mptBaseUtils.h Fri Mar 15 12:58:51 2024 (r20346) @@ -697,6 +697,18 @@ return (x / target) * target; } + // rounds x up to multiples of target or saturation of T + template <typename T> + inline T SaturateAlignUp(T x, T target) + { + if(x > (std::numeric_limits<T>::max() - (target - 1))) + { + return std::numeric_limits<T>::max(); + } + T result = ((x + (target - 1)) / target) * target; + return result; + } + } // namespace Util |
From: <sv...@op...> - 2024-03-15 11:51:46
|
Author: manx Date: Fri Mar 15 12:51:33 2024 New Revision: 20345 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20345 Log: Merged revision(s) 20335 from trunk/OpenMPT: [Fix] mpt/io_read/filedata_base_unseekable.hpp: Avoid memory denial-of-service when trying to read way more data than the actual file size from unseekable files. ........ Modified: branches/OpenMPT-1.30/ (props changed) branches/OpenMPT-1.30/src/mpt/io_read/filedata_base_unseekable.hpp Modified: branches/OpenMPT-1.30/src/mpt/io_read/filedata_base_unseekable.hpp ============================================================================== --- branches/OpenMPT-1.30/src/mpt/io_read/filedata_base_unseekable.hpp Fri Mar 15 12:50:51 2024 (r20344) +++ branches/OpenMPT-1.30/src/mpt/io_read/filedata_base_unseekable.hpp Fri Mar 15 12:51:33 2024 (r20345) @@ -87,15 +87,14 @@ return; } std::size_t alignedpos = mpt::saturate_align_up<std::size_t>(target, QUANTUM_SIZE); - std::size_t needcount = alignedpos - cachesize; - EnsureCacheBuffer(needcount); - std::size_t readcount = InternalReadUnseekable(mpt::span(&cache[cachesize], alignedpos - cachesize)).size(); - cachesize += readcount; - if (!InternalEof()) { - // can read further - return; + while (!InternalEof() && (cachesize < alignedpos)) { + EnsureCacheBuffer(BUFFER_SIZE); + std::size_t readcount = InternalReadUnseekable(mpt::span(&cache[cachesize], BUFFER_SIZE)).size(); + cachesize += readcount; + } + if (InternalEof()) { + streamFullyCached = true; } - streamFullyCached = true; } private: |
From: <sv...@op...> - 2024-03-15 11:51:07
|
Author: manx Date: Fri Mar 15 12:50:51 2024 New Revision: 20344 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20344 Log: Merged revision(s) 20333 from trunk/OpenMPT: [Fix] mpt/io_read/filedata_base_unseekable.hpp: Avoid integer overflow in EnsureCacheBuffer() when reading unseekable files are close to uint32_max in size. ........ Modified: branches/OpenMPT-1.30/ (props changed) branches/OpenMPT-1.30/src/mpt/io_read/filedata_base_unseekable.hpp Modified: branches/OpenMPT-1.30/src/mpt/io_read/filedata_base_unseekable.hpp ============================================================================== --- branches/OpenMPT-1.30/src/mpt/io_read/filedata_base_unseekable.hpp Fri Mar 15 12:50:18 2024 (r20343) +++ branches/OpenMPT-1.30/src/mpt/io_read/filedata_base_unseekable.hpp Fri Mar 15 12:50:51 2024 (r20344) @@ -50,7 +50,7 @@ }; void EnsureCacheBuffer(std::size_t requiredbuffersize) const { - if (cache.size() >= cachesize + requiredbuffersize) { + if (cache.size() - cachesize >= requiredbuffersize) { return; } if (cache.size() == 0) { |
From: <sv...@op...> - 2024-03-15 11:50:37
|
Author: manx Date: Fri Mar 15 12:50:18 2024 New Revision: 20343 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20343 Log: Merged revision(s) 20332 from trunk/OpenMPT: [Fix] mpt/io_read/filedata_base_unseekable.hpp: Fix integer overflow when trying to read close to uint32_max bytes from unseekable files. ........ Modified: branches/OpenMPT-1.30/ (props changed) branches/OpenMPT-1.30/src/mpt/io_read/filedata_base_unseekable.hpp Modified: branches/OpenMPT-1.30/src/mpt/io_read/filedata_base_unseekable.hpp ============================================================================== --- branches/OpenMPT-1.30/src/mpt/io_read/filedata_base_unseekable.hpp Fri Mar 15 12:49:06 2024 (r20342) +++ branches/OpenMPT-1.30/src/mpt/io_read/filedata_base_unseekable.hpp Fri Mar 15 12:50:18 2024 (r20343) @@ -54,9 +54,9 @@ return; } if (cache.size() == 0) { - cache.resize(mpt::align_up<std::size_t>(cachesize + requiredbuffersize, BUFFER_SIZE)); + cache.resize(mpt::saturate_align_up<std::size_t>(cachesize + requiredbuffersize, BUFFER_SIZE)); } else if (mpt::exponential_grow(cache.size()) < cachesize + requiredbuffersize) { - cache.resize(mpt::align_up<std::size_t>(cachesize + requiredbuffersize, BUFFER_SIZE)); + cache.resize(mpt::saturate_align_up<std::size_t>(cachesize + requiredbuffersize, BUFFER_SIZE)); } else { cache.resize(mpt::exponential_grow(cache.size())); } @@ -86,7 +86,7 @@ if (target <= cachesize) { return; } - std::size_t alignedpos = mpt::align_up<std::size_t>(target, QUANTUM_SIZE); + std::size_t alignedpos = mpt::saturate_align_up<std::size_t>(target, QUANTUM_SIZE); std::size_t needcount = alignedpos - cachesize; EnsureCacheBuffer(needcount); std::size_t readcount = InternalReadUnseekable(mpt::span(&cache[cachesize], alignedpos - cachesize)).size(); |
Author: manx Date: Fri Mar 15 12:49:06 2024 New Revision: 20342 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20342 Log: Merged revision(s) 20337 from branches/OpenMPT-1.31: Merged revision(s) 20331, 20334 from trunk/OpenMPT: [Ref] mpt/base/tests/tests_base_numeric.hpp: Add tests for mpt::saturate_align_up. ........ [Var] Run clang-format. ........ ........ Added: branches/OpenMPT-1.30/src/mpt/base/tests/tests_base_numeric.hpp - copied unchanged from r20337, branches/OpenMPT-1.31/src/mpt/base/tests/tests_base_numeric.hpp Modified: branches/OpenMPT-1.30/ (props changed) branches/OpenMPT-1.30/build/autotools/Makefile.am branches/OpenMPT-1.30/build/vs2017uwp/libopenmpt.vcxproj branches/OpenMPT-1.30/build/vs2017uwp/libopenmpt.vcxproj.filters branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-ANSI.vcxproj branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-ANSI.vcxproj.filters branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-NativeSupport.vcxproj branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-NativeSupport.vcxproj.filters branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-UTF8.vcxproj branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-UTF8.vcxproj.filters branches/OpenMPT-1.30/build/vs2017win10/OpenMPT.vcxproj branches/OpenMPT-1.30/build/vs2017win10/OpenMPT.vcxproj.filters branches/OpenMPT-1.30/build/vs2017win10/PluginBridge.vcxproj branches/OpenMPT-1.30/build/vs2017win10/PluginBridge.vcxproj.filters branches/OpenMPT-1.30/build/vs2017win10/PluginBridgeLegacy.vcxproj branches/OpenMPT-1.30/build/vs2017win10/PluginBridgeLegacy.vcxproj.filters branches/OpenMPT-1.30/build/vs2017win10/libopenmpt-small.vcxproj branches/OpenMPT-1.30/build/vs2017win10/libopenmpt-small.vcxproj.filters branches/OpenMPT-1.30/build/vs2017win10/libopenmpt.vcxproj branches/OpenMPT-1.30/build/vs2017win10/libopenmpt.vcxproj.filters branches/OpenMPT-1.30/build/vs2017win10/libopenmpt_test.vcxproj branches/OpenMPT-1.30/build/vs2017win10/libopenmpt_test.vcxproj.filters branches/OpenMPT-1.30/build/vs2017win10/updatesigntool.vcxproj branches/OpenMPT-1.30/build/vs2017win10/updatesigntool.vcxproj.filters branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-ANSI.vcxproj branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-ANSI.vcxproj.filters branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-NativeSupport.vcxproj branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-NativeSupport.vcxproj.filters branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-UTF8.vcxproj branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-UTF8.vcxproj.filters branches/OpenMPT-1.30/build/vs2017win7/OpenMPT.vcxproj branches/OpenMPT-1.30/build/vs2017win7/OpenMPT.vcxproj.filters branches/OpenMPT-1.30/build/vs2017win7/PluginBridge.vcxproj branches/OpenMPT-1.30/build/vs2017win7/PluginBridge.vcxproj.filters branches/OpenMPT-1.30/build/vs2017win7/PluginBridgeLegacy.vcxproj branches/OpenMPT-1.30/build/vs2017win7/PluginBridgeLegacy.vcxproj.filters branches/OpenMPT-1.30/build/vs2017win7/libopenmpt-small.vcxproj branches/OpenMPT-1.30/build/vs2017win7/libopenmpt-small.vcxproj.filters branches/OpenMPT-1.30/build/vs2017win7/libopenmpt.vcxproj branches/OpenMPT-1.30/build/vs2017win7/libopenmpt.vcxproj.filters branches/OpenMPT-1.30/build/vs2017win7/libopenmpt_test.vcxproj branches/OpenMPT-1.30/build/vs2017win7/libopenmpt_test.vcxproj.filters branches/OpenMPT-1.30/build/vs2017win7/updatesigntool.vcxproj branches/OpenMPT-1.30/build/vs2017win7/updatesigntool.vcxproj.filters branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-ANSI.vcxproj branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-ANSI.vcxproj.filters branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-NativeSupport.vcxproj branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-NativeSupport.vcxproj.filters branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-UTF8.vcxproj branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-UTF8.vcxproj.filters branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT.vcxproj branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT.vcxproj.filters branches/OpenMPT-1.30/build/vs2017winxp/PluginBridge.vcxproj branches/OpenMPT-1.30/build/vs2017winxp/PluginBridge.vcxproj.filters branches/OpenMPT-1.30/build/vs2017winxp/PluginBridgeLegacy.vcxproj branches/OpenMPT-1.30/build/vs2017winxp/PluginBridgeLegacy.vcxproj.filters branches/OpenMPT-1.30/build/vs2017winxp/libopenmpt-small.vcxproj branches/OpenMPT-1.30/build/vs2017winxp/libopenmpt-small.vcxproj.filters branches/OpenMPT-1.30/build/vs2017winxp/libopenmpt.vcxproj branches/OpenMPT-1.30/build/vs2017winxp/libopenmpt.vcxproj.filters branches/OpenMPT-1.30/build/vs2017winxp/libopenmpt_test.vcxproj branches/OpenMPT-1.30/build/vs2017winxp/libopenmpt_test.vcxproj.filters branches/OpenMPT-1.30/build/vs2017winxp/updatesigntool.vcxproj branches/OpenMPT-1.30/build/vs2017winxp/updatesigntool.vcxproj.filters branches/OpenMPT-1.30/build/vs2019uwp/libopenmpt-small.vcxproj branches/OpenMPT-1.30/build/vs2019uwp/libopenmpt-small.vcxproj.filters branches/OpenMPT-1.30/build/vs2019uwp/libopenmpt.vcxproj branches/OpenMPT-1.30/build/vs2019uwp/libopenmpt.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win10/OpenMPT-ANSI.vcxproj branches/OpenMPT-1.30/build/vs2019win10/OpenMPT-ANSI.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win10/OpenMPT-NativeSupport.vcxproj branches/OpenMPT-1.30/build/vs2019win10/OpenMPT-NativeSupport.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win10/OpenMPT-UTF8.vcxproj branches/OpenMPT-1.30/build/vs2019win10/OpenMPT-UTF8.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win10/OpenMPT.vcxproj branches/OpenMPT-1.30/build/vs2019win10/OpenMPT.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win10/PluginBridge.vcxproj branches/OpenMPT-1.30/build/vs2019win10/PluginBridge.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win10/PluginBridgeLegacy.vcxproj branches/OpenMPT-1.30/build/vs2019win10/PluginBridgeLegacy.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win10/libopenmpt-small.vcxproj branches/OpenMPT-1.30/build/vs2019win10/libopenmpt-small.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win10/libopenmpt.vcxproj branches/OpenMPT-1.30/build/vs2019win10/libopenmpt.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win10/libopenmpt_test.vcxproj branches/OpenMPT-1.30/build/vs2019win10/libopenmpt_test.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win10/updatesigntool.vcxproj branches/OpenMPT-1.30/build/vs2019win10/updatesigntool.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win7/OpenMPT-ANSI.vcxproj branches/OpenMPT-1.30/build/vs2019win7/OpenMPT-ANSI.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win7/OpenMPT-NativeSupport.vcxproj branches/OpenMPT-1.30/build/vs2019win7/OpenMPT-NativeSupport.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win7/OpenMPT-UTF8.vcxproj branches/OpenMPT-1.30/build/vs2019win7/OpenMPT-UTF8.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win7/OpenMPT.vcxproj branches/OpenMPT-1.30/build/vs2019win7/OpenMPT.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win7/PluginBridge.vcxproj branches/OpenMPT-1.30/build/vs2019win7/PluginBridge.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win7/PluginBridgeLegacy.vcxproj branches/OpenMPT-1.30/build/vs2019win7/PluginBridgeLegacy.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win7/libopenmpt-small.vcxproj branches/OpenMPT-1.30/build/vs2019win7/libopenmpt-small.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win7/libopenmpt.vcxproj branches/OpenMPT-1.30/build/vs2019win7/libopenmpt.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win7/libopenmpt_test.vcxproj branches/OpenMPT-1.30/build/vs2019win7/libopenmpt_test.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win7/updatesigntool.vcxproj branches/OpenMPT-1.30/build/vs2019win7/updatesigntool.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win81/OpenMPT-ANSI.vcxproj branches/OpenMPT-1.30/build/vs2019win81/OpenMPT-ANSI.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win81/OpenMPT-NativeSupport.vcxproj branches/OpenMPT-1.30/build/vs2019win81/OpenMPT-NativeSupport.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win81/OpenMPT-UTF8.vcxproj branches/OpenMPT-1.30/build/vs2019win81/OpenMPT-UTF8.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win81/OpenMPT.vcxproj branches/OpenMPT-1.30/build/vs2019win81/OpenMPT.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win81/PluginBridge.vcxproj branches/OpenMPT-1.30/build/vs2019win81/PluginBridge.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win81/PluginBridgeLegacy.vcxproj branches/OpenMPT-1.30/build/vs2019win81/PluginBridgeLegacy.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win81/libopenmpt-small.vcxproj branches/OpenMPT-1.30/build/vs2019win81/libopenmpt-small.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win81/libopenmpt.vcxproj branches/OpenMPT-1.30/build/vs2019win81/libopenmpt.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win81/libopenmpt_test.vcxproj branches/OpenMPT-1.30/build/vs2019win81/libopenmpt_test.vcxproj.filters branches/OpenMPT-1.30/build/vs2019win81/updatesigntool.vcxproj branches/OpenMPT-1.30/build/vs2019win81/updatesigntool.vcxproj.filters branches/OpenMPT-1.30/build/vs2022uwp/libopenmpt-small.vcxproj branches/OpenMPT-1.30/build/vs2022uwp/libopenmpt-small.vcxproj.filters branches/OpenMPT-1.30/build/vs2022uwp/libopenmpt.vcxproj branches/OpenMPT-1.30/build/vs2022uwp/libopenmpt.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win10/OpenMPT-ANSI.vcxproj branches/OpenMPT-1.30/build/vs2022win10/OpenMPT-ANSI.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win10/OpenMPT-NativeSupport.vcxproj branches/OpenMPT-1.30/build/vs2022win10/OpenMPT-NativeSupport.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win10/OpenMPT-UTF8.vcxproj branches/OpenMPT-1.30/build/vs2022win10/OpenMPT-UTF8.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win10/OpenMPT.vcxproj branches/OpenMPT-1.30/build/vs2022win10/OpenMPT.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win10/PluginBridge.vcxproj branches/OpenMPT-1.30/build/vs2022win10/PluginBridge.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win10/PluginBridgeLegacy.vcxproj branches/OpenMPT-1.30/build/vs2022win10/PluginBridgeLegacy.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win10/libopenmpt-small.vcxproj branches/OpenMPT-1.30/build/vs2022win10/libopenmpt-small.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win10/libopenmpt.vcxproj branches/OpenMPT-1.30/build/vs2022win10/libopenmpt.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win10/libopenmpt_test.vcxproj branches/OpenMPT-1.30/build/vs2022win10/libopenmpt_test.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win10/updatesigntool.vcxproj branches/OpenMPT-1.30/build/vs2022win10/updatesigntool.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win10clang/OpenMPT-ANSI.vcxproj branches/OpenMPT-1.30/build/vs2022win10clang/OpenMPT-ANSI.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win10clang/OpenMPT-NativeSupport.vcxproj branches/OpenMPT-1.30/build/vs2022win10clang/OpenMPT-NativeSupport.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win10clang/OpenMPT-UTF8.vcxproj branches/OpenMPT-1.30/build/vs2022win10clang/OpenMPT-UTF8.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win10clang/OpenMPT.vcxproj branches/OpenMPT-1.30/build/vs2022win10clang/OpenMPT.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win10clang/PluginBridge.vcxproj branches/OpenMPT-1.30/build/vs2022win10clang/PluginBridge.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win10clang/PluginBridgeLegacy.vcxproj branches/OpenMPT-1.30/build/vs2022win10clang/PluginBridgeLegacy.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win10clang/libopenmpt-small.vcxproj branches/OpenMPT-1.30/build/vs2022win10clang/libopenmpt-small.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win10clang/libopenmpt.vcxproj branches/OpenMPT-1.30/build/vs2022win10clang/libopenmpt.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win10clang/libopenmpt_test.vcxproj branches/OpenMPT-1.30/build/vs2022win10clang/libopenmpt_test.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win10clang/updatesigntool.vcxproj branches/OpenMPT-1.30/build/vs2022win10clang/updatesigntool.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win7/OpenMPT-ANSI.vcxproj branches/OpenMPT-1.30/build/vs2022win7/OpenMPT-ANSI.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win7/OpenMPT-NativeSupport.vcxproj branches/OpenMPT-1.30/build/vs2022win7/OpenMPT-NativeSupport.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win7/OpenMPT-UTF8.vcxproj branches/OpenMPT-1.30/build/vs2022win7/OpenMPT-UTF8.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win7/OpenMPT.vcxproj branches/OpenMPT-1.30/build/vs2022win7/OpenMPT.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win7/PluginBridge.vcxproj branches/OpenMPT-1.30/build/vs2022win7/PluginBridge.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win7/PluginBridgeLegacy.vcxproj branches/OpenMPT-1.30/build/vs2022win7/PluginBridgeLegacy.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win7/libopenmpt-small.vcxproj branches/OpenMPT-1.30/build/vs2022win7/libopenmpt-small.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win7/libopenmpt.vcxproj branches/OpenMPT-1.30/build/vs2022win7/libopenmpt.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win7/libopenmpt_test.vcxproj branches/OpenMPT-1.30/build/vs2022win7/libopenmpt_test.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win7/updatesigntool.vcxproj branches/OpenMPT-1.30/build/vs2022win7/updatesigntool.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win81/OpenMPT-ANSI.vcxproj branches/OpenMPT-1.30/build/vs2022win81/OpenMPT-ANSI.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win81/OpenMPT-NativeSupport.vcxproj branches/OpenMPT-1.30/build/vs2022win81/OpenMPT-NativeSupport.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win81/OpenMPT-UTF8.vcxproj branches/OpenMPT-1.30/build/vs2022win81/OpenMPT-UTF8.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win81/OpenMPT.vcxproj branches/OpenMPT-1.30/build/vs2022win81/OpenMPT.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win81/PluginBridge.vcxproj branches/OpenMPT-1.30/build/vs2022win81/PluginBridge.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win81/PluginBridgeLegacy.vcxproj branches/OpenMPT-1.30/build/vs2022win81/PluginBridgeLegacy.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win81/libopenmpt-small.vcxproj branches/OpenMPT-1.30/build/vs2022win81/libopenmpt-small.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win81/libopenmpt.vcxproj branches/OpenMPT-1.30/build/vs2022win81/libopenmpt.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win81/libopenmpt_test.vcxproj branches/OpenMPT-1.30/build/vs2022win81/libopenmpt_test.vcxproj.filters branches/OpenMPT-1.30/build/vs2022win81/updatesigntool.vcxproj branches/OpenMPT-1.30/build/vs2022win81/updatesigntool.vcxproj.filters branches/OpenMPT-1.30/build/xcode9-iphoneos/libopenmpt.xcodeproj/project.pbxproj branches/OpenMPT-1.30/build/xcode9-macosx/libopenmpt.xcodeproj/project.pbxproj branches/OpenMPT-1.30/test/mpt_tests_base.cpp Modified: branches/OpenMPT-1.30/build/autotools/Makefile.am ============================================================================== --- branches/OpenMPT-1.30/build/autotools/Makefile.am Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/autotools/Makefile.am Fri Mar 15 12:49:06 2024 (r20342) @@ -233,6 +233,7 @@ MPT_FILES_SRC_MPT += src/mpt/base/tests/tests_base_arithmetic_shift.hpp MPT_FILES_SRC_MPT += src/mpt/base/tests/tests_base_bit.hpp MPT_FILES_SRC_MPT += src/mpt/base/tests/tests_base_math.hpp +MPT_FILES_SRC_MPT += src/mpt/base/tests/tests_base_numeric.hpp MPT_FILES_SRC_MPT += src/mpt/base/tests/tests_base_saturate_cast.hpp MPT_FILES_SRC_MPT += src/mpt/base/tests/tests_base_saturate_round.hpp MPT_FILES_SRC_MPT += src/mpt/base/tests/tests_base_wrapping_divide.hpp Modified: branches/OpenMPT-1.30/build/vs2017uwp/libopenmpt.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017uwp/libopenmpt.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017uwp/libopenmpt.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -750,6 +750,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017uwp/libopenmpt.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017uwp/libopenmpt.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017uwp/libopenmpt.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -288,6 +288,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-ANSI.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-ANSI.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-ANSI.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -1742,6 +1742,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-ANSI.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-ANSI.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -1017,6 +1017,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-NativeSupport.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-NativeSupport.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-NativeSupport.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -1294,6 +1294,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-NativeSupport.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-NativeSupport.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-NativeSupport.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -426,6 +426,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-UTF8.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-UTF8.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-UTF8.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -1742,6 +1742,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-UTF8.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win10/OpenMPT-UTF8.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -1017,6 +1017,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017win10/OpenMPT.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win10/OpenMPT.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win10/OpenMPT.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -1742,6 +1742,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017win10/OpenMPT.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win10/OpenMPT.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win10/OpenMPT.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -1017,6 +1017,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017win10/PluginBridge.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win10/PluginBridge.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win10/PluginBridge.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -1421,6 +1421,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017win10/PluginBridge.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win10/PluginBridge.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win10/PluginBridge.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -282,6 +282,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017win10/PluginBridgeLegacy.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win10/PluginBridgeLegacy.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win10/PluginBridgeLegacy.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -1421,6 +1421,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017win10/PluginBridgeLegacy.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win10/PluginBridgeLegacy.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win10/PluginBridgeLegacy.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -282,6 +282,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017win10/libopenmpt-small.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win10/libopenmpt-small.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win10/libopenmpt-small.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -1358,6 +1358,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017win10/libopenmpt-small.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win10/libopenmpt-small.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win10/libopenmpt-small.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -585,6 +585,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017win10/libopenmpt.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win10/libopenmpt.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win10/libopenmpt.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -1358,6 +1358,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017win10/libopenmpt.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win10/libopenmpt.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win10/libopenmpt.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -585,6 +585,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017win10/libopenmpt_test.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win10/libopenmpt_test.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win10/libopenmpt_test.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -1310,6 +1310,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017win10/libopenmpt_test.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win10/libopenmpt_test.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win10/libopenmpt_test.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -591,6 +591,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017win10/updatesigntool.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win10/updatesigntool.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win10/updatesigntool.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -1255,6 +1255,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017win10/updatesigntool.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win10/updatesigntool.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win10/updatesigntool.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -366,6 +366,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-ANSI.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-ANSI.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-ANSI.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -998,6 +998,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-ANSI.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-ANSI.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -1017,6 +1017,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-NativeSupport.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-NativeSupport.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-NativeSupport.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -682,6 +682,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-NativeSupport.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-NativeSupport.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-NativeSupport.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -426,6 +426,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-UTF8.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-UTF8.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-UTF8.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -998,6 +998,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-UTF8.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win7/OpenMPT-UTF8.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -1017,6 +1017,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017win7/OpenMPT.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win7/OpenMPT.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win7/OpenMPT.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -998,6 +998,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017win7/OpenMPT.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win7/OpenMPT.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win7/OpenMPT.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -1017,6 +1017,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017win7/PluginBridge.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win7/PluginBridge.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win7/PluginBridge.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -725,6 +725,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017win7/PluginBridge.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win7/PluginBridge.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win7/PluginBridge.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -282,6 +282,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017win7/PluginBridgeLegacy.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win7/PluginBridgeLegacy.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win7/PluginBridgeLegacy.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -731,6 +731,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017win7/PluginBridgeLegacy.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win7/PluginBridgeLegacy.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win7/PluginBridgeLegacy.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -282,6 +282,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017win7/libopenmpt-small.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win7/libopenmpt-small.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win7/libopenmpt-small.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -746,6 +746,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017win7/libopenmpt-small.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win7/libopenmpt-small.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win7/libopenmpt-small.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -585,6 +585,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017win7/libopenmpt.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win7/libopenmpt.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win7/libopenmpt.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -746,6 +746,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017win7/libopenmpt.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win7/libopenmpt.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win7/libopenmpt.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -585,6 +585,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017win7/libopenmpt_test.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win7/libopenmpt_test.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win7/libopenmpt_test.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -722,6 +722,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017win7/libopenmpt_test.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win7/libopenmpt_test.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win7/libopenmpt_test.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -591,6 +591,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017win7/updatesigntool.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win7/updatesigntool.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win7/updatesigntool.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -655,6 +655,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017win7/updatesigntool.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017win7/updatesigntool.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017win7/updatesigntool.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -366,6 +366,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-ANSI.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-ANSI.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-ANSI.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -1004,6 +1004,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-ANSI.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-ANSI.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -975,6 +975,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-NativeSupport.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-NativeSupport.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-NativeSupport.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -722,6 +722,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-NativeSupport.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-NativeSupport.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-NativeSupport.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -426,6 +426,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-UTF8.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-UTF8.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-UTF8.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -1004,6 +1004,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-UTF8.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT-UTF8.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -975,6 +975,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -1004,6 +1004,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT.vcxproj.filters Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017winxp/OpenMPT.vcxproj.filters Fri Mar 15 12:49:06 2024 (r20342) @@ -975,6 +975,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.30/build/vs2017winxp/PluginBridge.vcxproj ============================================================================== --- branches/OpenMPT-1.30/build/vs2017winxp/PluginBridge.vcxproj Fri Mar 15 12:45:47 2024 (r20341) +++ branches/OpenMPT-1.30/build/vs2017winxp/PluginBridge.vcxproj Fri Mar 15 12:49:06 2024 (r20342) @@ -753,6 +753,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_ro... [truncated message content] |
From: <sv...@op...> - 2024-03-15 11:46:05
|
Author: manx Date: Fri Mar 15 12:45:47 2024 New Revision: 20341 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20341 Log: Merged revision(s) 20330 from trunk/OpenMPT: [Ref] mpt/base/numeric.hpp: Add mpt::saturate_align_up. ........ Modified: branches/OpenMPT-1.30/ (props changed) branches/OpenMPT-1.30/src/mpt/base/numeric.hpp Modified: branches/OpenMPT-1.30/src/mpt/base/numeric.hpp ============================================================================== --- branches/OpenMPT-1.30/src/mpt/base/numeric.hpp Fri Mar 15 12:44:11 2024 (r20340) +++ branches/OpenMPT-1.30/src/mpt/base/numeric.hpp Fri Mar 15 12:45:47 2024 (r20341) @@ -80,6 +80,16 @@ return (x / target) * target; } +// rounds x up to multiples of target or saturation of T +template <typename T> +constexpr T saturate_align_up(T x, T target) { + if (x > (std::numeric_limits<T>::max() - (target - 1))) { + return std::numeric_limits<T>::max(); + } + T result = ((x + (target - 1)) / target) * target; + return result; +} + // Returns sign of a number (-1 for negative numbers, 1 for positive numbers, 0 for 0) template <class T> constexpr int signum(T value) { |
From: <sv...@op...> - 2024-03-15 11:44:28
|
Author: manx Date: Fri Mar 15 12:44:11 2024 New Revision: 20340 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20340 Log: Merged revision(s) 20335 from trunk/OpenMPT: [Fix] mpt/io_read/filedata_base_unseekable.hpp: Avoid memory denial-of-service when trying to read way more data than the actual file size from unseekable files. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/src/mpt/io_read/filedata_base_unseekable.hpp Modified: branches/OpenMPT-1.31/src/mpt/io_read/filedata_base_unseekable.hpp ============================================================================== --- branches/OpenMPT-1.31/src/mpt/io_read/filedata_base_unseekable.hpp Fri Mar 15 12:43:37 2024 (r20339) +++ branches/OpenMPT-1.31/src/mpt/io_read/filedata_base_unseekable.hpp Fri Mar 15 12:44:11 2024 (r20340) @@ -87,15 +87,14 @@ return; } std::size_t alignedpos = mpt::saturate_align_up<std::size_t>(target, QUANTUM_SIZE); - std::size_t needcount = alignedpos - cachesize; - EnsureCacheBuffer(needcount); - std::size_t readcount = InternalReadUnseekable(mpt::span(&cache[cachesize], alignedpos - cachesize)).size(); - cachesize += readcount; - if (!InternalEof()) { - // can read further - return; + while (!InternalEof() && (cachesize < alignedpos)) { + EnsureCacheBuffer(BUFFER_SIZE); + std::size_t readcount = InternalReadUnseekable(mpt::span(&cache[cachesize], BUFFER_SIZE)).size(); + cachesize += readcount; + } + if (InternalEof()) { + streamFullyCached = true; } - streamFullyCached = true; } private: |
From: <sv...@op...> - 2024-03-15 11:43:47
|
Author: manx Date: Fri Mar 15 12:43:37 2024 New Revision: 20339 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20339 Log: Merged revision(s) 20333 from trunk/OpenMPT: [Fix] mpt/io_read/filedata_base_unseekable.hpp: Avoid integer overflow in EnsureCacheBuffer() when reading unseekable files are close to uint32_max in size. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/src/mpt/io_read/filedata_base_unseekable.hpp Modified: branches/OpenMPT-1.31/src/mpt/io_read/filedata_base_unseekable.hpp ============================================================================== --- branches/OpenMPT-1.31/src/mpt/io_read/filedata_base_unseekable.hpp Fri Mar 15 12:43:12 2024 (r20338) +++ branches/OpenMPT-1.31/src/mpt/io_read/filedata_base_unseekable.hpp Fri Mar 15 12:43:37 2024 (r20339) @@ -50,7 +50,7 @@ }; void EnsureCacheBuffer(std::size_t requiredbuffersize) const { - if (cache.size() >= cachesize + requiredbuffersize) { + if (cache.size() - cachesize >= requiredbuffersize) { return; } if (cache.size() == 0) { |
From: <sv...@op...> - 2024-03-15 11:43:23
|
Author: manx Date: Fri Mar 15 12:43:12 2024 New Revision: 20338 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20338 Log: Merged revision(s) 20332 from trunk/OpenMPT: [Fix] mpt/io_read/filedata_base_unseekable.hpp: Fix integer overflow when trying to read close to uint32_max bytes from unseekable files. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/src/mpt/io_read/filedata_base_unseekable.hpp Modified: branches/OpenMPT-1.31/src/mpt/io_read/filedata_base_unseekable.hpp ============================================================================== --- branches/OpenMPT-1.31/src/mpt/io_read/filedata_base_unseekable.hpp Fri Mar 15 12:42:28 2024 (r20337) +++ branches/OpenMPT-1.31/src/mpt/io_read/filedata_base_unseekable.hpp Fri Mar 15 12:43:12 2024 (r20338) @@ -54,9 +54,9 @@ return; } if (cache.size() == 0) { - cache.resize(mpt::align_up<std::size_t>(cachesize + requiredbuffersize, BUFFER_SIZE)); + cache.resize(mpt::saturate_align_up<std::size_t>(cachesize + requiredbuffersize, BUFFER_SIZE)); } else if (mpt::exponential_grow(cache.size()) < cachesize + requiredbuffersize) { - cache.resize(mpt::align_up<std::size_t>(cachesize + requiredbuffersize, BUFFER_SIZE)); + cache.resize(mpt::saturate_align_up<std::size_t>(cachesize + requiredbuffersize, BUFFER_SIZE)); } else { cache.resize(mpt::exponential_grow(cache.size())); } @@ -86,7 +86,7 @@ if (target <= cachesize) { return; } - std::size_t alignedpos = mpt::align_up<std::size_t>(target, QUANTUM_SIZE); + std::size_t alignedpos = mpt::saturate_align_up<std::size_t>(target, QUANTUM_SIZE); std::size_t needcount = alignedpos - cachesize; EnsureCacheBuffer(needcount); std::size_t readcount = InternalReadUnseekable(mpt::span(&cache[cachesize], alignedpos - cachesize)).size(); |
Author: manx Date: Fri Mar 15 12:42:28 2024 New Revision: 20337 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20337 Log: Merged revision(s) 20331, 20334 from trunk/OpenMPT: [Ref] mpt/base/tests/tests_base_numeric.hpp: Add tests for mpt::saturate_align_up. ........ [Var] Run clang-format. ........ Added: branches/OpenMPT-1.31/src/mpt/base/tests/tests_base_numeric.hpp - copied, changed from r20331, trunk/OpenMPT/src/mpt/base/tests/tests_base_numeric.hpp Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/build/autotools/Makefile.am branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-ANSI.vcxproj branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-ANSI.vcxproj.filters branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-NativeSupport.vcxproj branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-NativeSupport.vcxproj.filters branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-UTF8.vcxproj branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-UTF8.vcxproj.filters branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT.vcxproj branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT.vcxproj.filters branches/OpenMPT-1.31/build/vs2017winxp/PluginBridge.vcxproj branches/OpenMPT-1.31/build/vs2017winxp/PluginBridge.vcxproj.filters branches/OpenMPT-1.31/build/vs2017winxp/PluginBridgeLegacy.vcxproj branches/OpenMPT-1.31/build/vs2017winxp/PluginBridgeLegacy.vcxproj.filters branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt-small.vcxproj branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt-small.vcxproj.filters branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt.vcxproj branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt.vcxproj.filters branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt_test.vcxproj branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt_test.vcxproj.filters branches/OpenMPT-1.31/build/vs2017winxp/updatesigntool.vcxproj branches/OpenMPT-1.31/build/vs2017winxp/updatesigntool.vcxproj.filters branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj.filters branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-NativeSupport.vcxproj branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-NativeSupport.vcxproj.filters branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj.filters branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT.vcxproj branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT.vcxproj.filters branches/OpenMPT-1.31/build/vs2017winxpansi/PluginBridge.vcxproj branches/OpenMPT-1.31/build/vs2017winxpansi/PluginBridge.vcxproj.filters branches/OpenMPT-1.31/build/vs2017winxpansi/PluginBridgeLegacy.vcxproj branches/OpenMPT-1.31/build/vs2017winxpansi/PluginBridgeLegacy.vcxproj.filters branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt-small.vcxproj branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt-small.vcxproj.filters branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt.vcxproj branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt.vcxproj.filters branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt_test.vcxproj branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt_test.vcxproj.filters branches/OpenMPT-1.31/build/vs2017winxpansi/updatesigntool.vcxproj branches/OpenMPT-1.31/build/vs2017winxpansi/updatesigntool.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-ANSI.vcxproj branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-ANSI.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-NativeSupport.vcxproj branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-NativeSupport.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-UTF8.vcxproj branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-UTF8.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win10/OpenMPT.vcxproj branches/OpenMPT-1.31/build/vs2019win10/OpenMPT.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win10/PluginBridge.vcxproj branches/OpenMPT-1.31/build/vs2019win10/PluginBridge.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win10/PluginBridgeLegacy.vcxproj branches/OpenMPT-1.31/build/vs2019win10/PluginBridgeLegacy.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win10/libopenmpt-small.vcxproj branches/OpenMPT-1.31/build/vs2019win10/libopenmpt-small.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win10/libopenmpt.vcxproj branches/OpenMPT-1.31/build/vs2019win10/libopenmpt.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win10/libopenmpt_test.vcxproj branches/OpenMPT-1.31/build/vs2019win10/libopenmpt_test.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win10/updatesigntool.vcxproj branches/OpenMPT-1.31/build/vs2019win10/updatesigntool.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win10uwp/libopenmpt-small.vcxproj branches/OpenMPT-1.31/build/vs2019win10uwp/libopenmpt-small.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win10uwp/libopenmpt.vcxproj branches/OpenMPT-1.31/build/vs2019win10uwp/libopenmpt.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win7/OpenMPT-ANSI.vcxproj branches/OpenMPT-1.31/build/vs2019win7/OpenMPT-ANSI.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win7/OpenMPT-NativeSupport.vcxproj branches/OpenMPT-1.31/build/vs2019win7/OpenMPT-NativeSupport.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win7/OpenMPT-UTF8.vcxproj branches/OpenMPT-1.31/build/vs2019win7/OpenMPT-UTF8.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win7/OpenMPT.vcxproj branches/OpenMPT-1.31/build/vs2019win7/OpenMPT.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win7/PluginBridge.vcxproj branches/OpenMPT-1.31/build/vs2019win7/PluginBridge.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win7/PluginBridgeLegacy.vcxproj branches/OpenMPT-1.31/build/vs2019win7/PluginBridgeLegacy.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win7/libopenmpt-small.vcxproj branches/OpenMPT-1.31/build/vs2019win7/libopenmpt-small.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win7/libopenmpt.vcxproj branches/OpenMPT-1.31/build/vs2019win7/libopenmpt.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win7/libopenmpt_test.vcxproj branches/OpenMPT-1.31/build/vs2019win7/libopenmpt_test.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win7/updatesigntool.vcxproj branches/OpenMPT-1.31/build/vs2019win7/updatesigntool.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win81/OpenMPT-ANSI.vcxproj branches/OpenMPT-1.31/build/vs2019win81/OpenMPT-ANSI.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win81/OpenMPT-NativeSupport.vcxproj branches/OpenMPT-1.31/build/vs2019win81/OpenMPT-NativeSupport.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win81/OpenMPT-UTF8.vcxproj branches/OpenMPT-1.31/build/vs2019win81/OpenMPT-UTF8.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win81/OpenMPT.vcxproj branches/OpenMPT-1.31/build/vs2019win81/OpenMPT.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win81/PluginBridge.vcxproj branches/OpenMPT-1.31/build/vs2019win81/PluginBridge.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win81/PluginBridgeLegacy.vcxproj branches/OpenMPT-1.31/build/vs2019win81/PluginBridgeLegacy.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win81/libopenmpt-small.vcxproj branches/OpenMPT-1.31/build/vs2019win81/libopenmpt-small.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win81/libopenmpt.vcxproj branches/OpenMPT-1.31/build/vs2019win81/libopenmpt.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win81/libopenmpt_test.vcxproj branches/OpenMPT-1.31/build/vs2019win81/libopenmpt_test.vcxproj.filters branches/OpenMPT-1.31/build/vs2019win81/updatesigntool.vcxproj branches/OpenMPT-1.31/build/vs2019win81/updatesigntool.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win10/OpenMPT-ANSI.vcxproj branches/OpenMPT-1.31/build/vs2022win10/OpenMPT-ANSI.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win10/OpenMPT-NativeSupport.vcxproj branches/OpenMPT-1.31/build/vs2022win10/OpenMPT-NativeSupport.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win10/OpenMPT-UTF8.vcxproj branches/OpenMPT-1.31/build/vs2022win10/OpenMPT-UTF8.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win10/OpenMPT.vcxproj branches/OpenMPT-1.31/build/vs2022win10/OpenMPT.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win10/PluginBridge.vcxproj branches/OpenMPT-1.31/build/vs2022win10/PluginBridge.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win10/PluginBridgeLegacy.vcxproj branches/OpenMPT-1.31/build/vs2022win10/PluginBridgeLegacy.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win10/libopenmpt-small.vcxproj branches/OpenMPT-1.31/build/vs2022win10/libopenmpt-small.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win10/libopenmpt.vcxproj branches/OpenMPT-1.31/build/vs2022win10/libopenmpt.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win10/libopenmpt_test.vcxproj branches/OpenMPT-1.31/build/vs2022win10/libopenmpt_test.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win10/updatesigntool.vcxproj branches/OpenMPT-1.31/build/vs2022win10/updatesigntool.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win10clang/OpenMPT-ANSI.vcxproj branches/OpenMPT-1.31/build/vs2022win10clang/OpenMPT-ANSI.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win10clang/OpenMPT-NativeSupport.vcxproj branches/OpenMPT-1.31/build/vs2022win10clang/OpenMPT-NativeSupport.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win10clang/OpenMPT-UTF8.vcxproj branches/OpenMPT-1.31/build/vs2022win10clang/OpenMPT-UTF8.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win10clang/OpenMPT.vcxproj branches/OpenMPT-1.31/build/vs2022win10clang/OpenMPT.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win10clang/PluginBridge.vcxproj branches/OpenMPT-1.31/build/vs2022win10clang/PluginBridge.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win10clang/PluginBridgeLegacy.vcxproj branches/OpenMPT-1.31/build/vs2022win10clang/PluginBridgeLegacy.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win10clang/libopenmpt-small.vcxproj branches/OpenMPT-1.31/build/vs2022win10clang/libopenmpt-small.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win10clang/libopenmpt.vcxproj branches/OpenMPT-1.31/build/vs2022win10clang/libopenmpt.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win10clang/libopenmpt_test.vcxproj branches/OpenMPT-1.31/build/vs2022win10clang/libopenmpt_test.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win10clang/updatesigntool.vcxproj branches/OpenMPT-1.31/build/vs2022win10clang/updatesigntool.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win10uwp/libopenmpt-small.vcxproj branches/OpenMPT-1.31/build/vs2022win10uwp/libopenmpt-small.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win10uwp/libopenmpt.vcxproj branches/OpenMPT-1.31/build/vs2022win10uwp/libopenmpt.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win7/OpenMPT-ANSI.vcxproj branches/OpenMPT-1.31/build/vs2022win7/OpenMPT-ANSI.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win7/OpenMPT-NativeSupport.vcxproj branches/OpenMPT-1.31/build/vs2022win7/OpenMPT-NativeSupport.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win7/OpenMPT-UTF8.vcxproj branches/OpenMPT-1.31/build/vs2022win7/OpenMPT-UTF8.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win7/OpenMPT.vcxproj branches/OpenMPT-1.31/build/vs2022win7/OpenMPT.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win7/PluginBridge.vcxproj branches/OpenMPT-1.31/build/vs2022win7/PluginBridge.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win7/PluginBridgeLegacy.vcxproj branches/OpenMPT-1.31/build/vs2022win7/PluginBridgeLegacy.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win7/libopenmpt-small.vcxproj branches/OpenMPT-1.31/build/vs2022win7/libopenmpt-small.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win7/libopenmpt.vcxproj branches/OpenMPT-1.31/build/vs2022win7/libopenmpt.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win7/libopenmpt_test.vcxproj branches/OpenMPT-1.31/build/vs2022win7/libopenmpt_test.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win7/updatesigntool.vcxproj branches/OpenMPT-1.31/build/vs2022win7/updatesigntool.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win81/OpenMPT-ANSI.vcxproj branches/OpenMPT-1.31/build/vs2022win81/OpenMPT-ANSI.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win81/OpenMPT-NativeSupport.vcxproj branches/OpenMPT-1.31/build/vs2022win81/OpenMPT-NativeSupport.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win81/OpenMPT-UTF8.vcxproj branches/OpenMPT-1.31/build/vs2022win81/OpenMPT-UTF8.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win81/OpenMPT.vcxproj branches/OpenMPT-1.31/build/vs2022win81/OpenMPT.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win81/PluginBridge.vcxproj branches/OpenMPT-1.31/build/vs2022win81/PluginBridge.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win81/PluginBridgeLegacy.vcxproj branches/OpenMPT-1.31/build/vs2022win81/PluginBridgeLegacy.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win81/libopenmpt-small.vcxproj branches/OpenMPT-1.31/build/vs2022win81/libopenmpt-small.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win81/libopenmpt.vcxproj branches/OpenMPT-1.31/build/vs2022win81/libopenmpt.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win81/libopenmpt_test.vcxproj branches/OpenMPT-1.31/build/vs2022win81/libopenmpt_test.vcxproj.filters branches/OpenMPT-1.31/build/vs2022win81/updatesigntool.vcxproj branches/OpenMPT-1.31/build/vs2022win81/updatesigntool.vcxproj.filters branches/OpenMPT-1.31/build/xcode-ios/libopenmpt.xcodeproj/project.pbxproj branches/OpenMPT-1.31/build/xcode-macosx/libopenmpt.xcodeproj/project.pbxproj branches/OpenMPT-1.31/test/mpt_tests_base.cpp Modified: branches/OpenMPT-1.31/build/autotools/Makefile.am ============================================================================== --- branches/OpenMPT-1.31/build/autotools/Makefile.am Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/autotools/Makefile.am Fri Mar 15 12:42:28 2024 (r20337) @@ -261,6 +261,7 @@ MPT_FILES_SRC_MPT += src/mpt/base/tests/tests_base_arithmetic_shift.hpp MPT_FILES_SRC_MPT += src/mpt/base/tests/tests_base_bit.hpp MPT_FILES_SRC_MPT += src/mpt/base/tests/tests_base_math.hpp +MPT_FILES_SRC_MPT += src/mpt/base/tests/tests_base_numeric.hpp MPT_FILES_SRC_MPT += src/mpt/base/tests/tests_base_saturate_cast.hpp MPT_FILES_SRC_MPT += src/mpt/base/tests/tests_base_saturate_round.hpp MPT_FILES_SRC_MPT += src/mpt/base/tests/tests_base_wrapping_divide.hpp Modified: branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-ANSI.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-ANSI.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-ANSI.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -1018,6 +1018,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-ANSI.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-ANSI.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -1005,6 +1005,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-NativeSupport.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-NativeSupport.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-NativeSupport.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -715,6 +715,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-NativeSupport.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-NativeSupport.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-NativeSupport.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -417,6 +417,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-UTF8.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-UTF8.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-UTF8.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -1018,6 +1018,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-UTF8.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT-UTF8.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -1005,6 +1005,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -1018,6 +1018,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxp/OpenMPT.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -1005,6 +1005,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2017winxp/PluginBridge.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxp/PluginBridge.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxp/PluginBridge.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -767,6 +767,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2017winxp/PluginBridge.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxp/PluginBridge.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxp/PluginBridge.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -312,6 +312,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2017winxp/PluginBridgeLegacy.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxp/PluginBridgeLegacy.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxp/PluginBridgeLegacy.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -773,6 +773,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2017winxp/PluginBridgeLegacy.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxp/PluginBridgeLegacy.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxp/PluginBridgeLegacy.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -312,6 +312,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt-small.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt-small.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt-small.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -800,6 +800,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt-small.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt-small.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt-small.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -633,6 +633,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -800,6 +800,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -633,6 +633,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt_test.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt_test.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt_test.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -830,6 +830,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt_test.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt_test.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxp/libopenmpt_test.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -639,6 +639,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2017winxp/updatesigntool.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxp/updatesigntool.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxp/updatesigntool.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -698,6 +698,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2017winxp/updatesigntool.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxp/updatesigntool.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxp/updatesigntool.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -399,6 +399,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -1018,6 +1018,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-ANSI.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -1005,6 +1005,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-NativeSupport.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-NativeSupport.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-NativeSupport.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -715,6 +715,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-NativeSupport.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-NativeSupport.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-NativeSupport.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -417,6 +417,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -1018,6 +1018,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT-UTF8.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -1005,6 +1005,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -1018,6 +1018,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxpansi/OpenMPT.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -1005,6 +1005,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2017winxpansi/PluginBridge.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxpansi/PluginBridge.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxpansi/PluginBridge.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -767,6 +767,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2017winxpansi/PluginBridge.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxpansi/PluginBridge.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxpansi/PluginBridge.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -312,6 +312,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2017winxpansi/PluginBridgeLegacy.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxpansi/PluginBridgeLegacy.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxpansi/PluginBridgeLegacy.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -773,6 +773,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2017winxpansi/PluginBridgeLegacy.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxpansi/PluginBridgeLegacy.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxpansi/PluginBridgeLegacy.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -312,6 +312,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt-small.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt-small.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt-small.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -800,6 +800,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt-small.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt-small.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt-small.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -633,6 +633,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -800,6 +800,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -633,6 +633,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt_test.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt_test.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt_test.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -830,6 +830,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt_test.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt_test.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxpansi/libopenmpt_test.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -639,6 +639,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2017winxpansi/updatesigntool.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxpansi/updatesigntool.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxpansi/updatesigntool.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -698,6 +698,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2017winxpansi/updatesigntool.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2017winxpansi/updatesigntool.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2017winxpansi/updatesigntool.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -399,6 +399,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-ANSI.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-ANSI.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-ANSI.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -1793,6 +1793,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-ANSI.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-ANSI.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-ANSI.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -1047,6 +1047,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-NativeSupport.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-NativeSupport.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-NativeSupport.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -1346,6 +1346,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-NativeSupport.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-NativeSupport.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-NativeSupport.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -459,6 +459,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-UTF8.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-UTF8.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-UTF8.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -1793,6 +1793,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-UTF8.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-UTF8.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2019win10/OpenMPT-UTF8.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -1047,6 +1047,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2019win10/OpenMPT.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2019win10/OpenMPT.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2019win10/OpenMPT.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -1793,6 +1793,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2019win10/OpenMPT.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2019win10/OpenMPT.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2019win10/OpenMPT.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -1047,6 +1047,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2019win10/PluginBridge.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2019win10/PluginBridge.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2019win10/PluginBridge.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -1472,6 +1472,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2019win10/PluginBridge.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2019win10/PluginBridge.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2019win10/PluginBridge.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -318,6 +318,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2019win10/PluginBridgeLegacy.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2019win10/PluginBridgeLegacy.vcxproj Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2019win10/PluginBridgeLegacy.vcxproj Fri Mar 15 12:42:28 2024 (r20337) @@ -1472,6 +1472,7 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_arithmetic_shift.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_bit.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp" /> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_round.hpp" /> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_wrapping_divide.hpp" /> Modified: branches/OpenMPT-1.31/build/vs2019win10/PluginBridgeLegacy.vcxproj.filters ============================================================================== --- branches/OpenMPT-1.31/build/vs2019win10/PluginBridgeLegacy.vcxproj.filters Fri Mar 15 12:40:10 2024 (r20336) +++ branches/OpenMPT-1.31/build/vs2019win10/PluginBridgeLegacy.vcxproj.filters Fri Mar 15 12:42:28 2024 (r20337) @@ -318,6 +318,9 @@ <ClInclude Include="..\..\src\mpt\base\tests\tests_base_math.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> + <ClInclude Include="..\..\src\mpt\base\tests\tests_base_numeric.hpp"> + <Filter>src\mpt\base\tests</Filter> + </ClInclude> <ClInclude Include="..\..\src\mpt\base\tests\tests_base_saturate_cast.hpp"> <Filter>src\mpt\base\tests</Filter> </ClInclude> Modified: branches/OpenMPT-1.31/build/vs2019win10/libopenmpt-small.vcxproj ============================================================================== --- branches/OpenMPT-1.31/build/vs2019wi... [truncated message content] |
From: <sv...@op...> - 2024-03-15 11:40:26
|
Author: manx Date: Fri Mar 15 12:40:10 2024 New Revision: 20336 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20336 Log: Merged revision(s) 20330 from trunk/OpenMPT: [Ref] mpt/base/numeric.hpp: Add mpt::saturate_align_up. ........ Modified: branches/OpenMPT-1.31/ (props changed) branches/OpenMPT-1.31/src/mpt/base/numeric.hpp Modified: branches/OpenMPT-1.31/src/mpt/base/numeric.hpp ============================================================================== --- branches/OpenMPT-1.31/src/mpt/base/numeric.hpp Fri Mar 15 12:39:15 2024 (r20335) +++ branches/OpenMPT-1.31/src/mpt/base/numeric.hpp Fri Mar 15 12:40:10 2024 (r20336) @@ -80,6 +80,16 @@ return (x / target) * target; } +// rounds x up to multiples of target or saturation of T +template <typename T> +constexpr T saturate_align_up(T x, T target) { + if (x > (std::numeric_limits<T>::max() - (target - 1))) { + return std::numeric_limits<T>::max(); + } + T result = ((x + (target - 1)) / target) * target; + return result; +} + // Returns sign of a number (-1 for negative numbers, 1 for positive numbers, 0 for 0) template <class T> constexpr int signum(T value) { |
From: <sv...@op...> - 2024-03-15 11:39:31
|
Author: manx Date: Fri Mar 15 12:39:15 2024 New Revision: 20335 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=20335 Log: [Fix] mpt/io_read/filedata_base_unseekable.hpp: Avoid memory denial-of-service when trying to read way more data than the actual file size from unseekable files. Modified: trunk/OpenMPT/src/mpt/io_read/filedata_base_unseekable.hpp Modified: trunk/OpenMPT/src/mpt/io_read/filedata_base_unseekable.hpp ============================================================================== --- trunk/OpenMPT/src/mpt/io_read/filedata_base_unseekable.hpp Fri Mar 15 11:44:54 2024 (r20334) +++ trunk/OpenMPT/src/mpt/io_read/filedata_base_unseekable.hpp Fri Mar 15 12:39:15 2024 (r20335) @@ -86,15 +86,14 @@ return; } std::size_t alignedpos = mpt::saturate_align_up<std::size_t>(target, QUANTUM_SIZE); - std::size_t needcount = alignedpos - cachesize; - EnsureCacheBuffer(needcount); - std::size_t readcount = InternalReadUnseekable(mpt::span(&cache[cachesize], alignedpos - cachesize)).size(); - cachesize += readcount; - if (!InternalEof()) { - // can read further - return; + while (!InternalEof() && (cachesize < alignedpos)) { + EnsureCacheBuffer(BUFFER_SIZE); + std::size_t readcount = InternalReadUnseekable(mpt::span(&cache[cachesize], BUFFER_SIZE)).size(); + cachesize += readcount; + } + if (InternalEof()) { + streamFullyCached = true; } - streamFullyCached = true; } private: |