Fix a shitload of warnings in 64 bits mode

Former-commit-id: c7792a7d5b1f85ab934da25324831b9daa3f47ff [formerly 3469974c48432be1f65808bff0ea39d9e22f5b50]
Former-commit-id: 5080815e9e1a3aebe237ff9a291b908ce0292eca
This commit is contained in:
Lynix
2016-06-13 21:09:55 +02:00
parent f36eec7346
commit 819b46f5fc
39 changed files with 191 additions and 188 deletions

View File

@@ -26,9 +26,9 @@ namespace Nz
class Bit;
Bitset();
explicit Bitset(unsigned int bitCount, bool val);
explicit Bitset(std::size_t bitCount, bool val);
explicit Bitset(const char* bits);
Bitset(const char* bits, unsigned int bitCount);
Bitset(const char* bits, std::size_t bitCount);
Bitset(const Bitset& bitset) = default;
explicit Bitset(const String& bits);
template<typename T> Bitset(T value);
@@ -36,16 +36,16 @@ namespace Nz
~Bitset() noexcept = default;
void Clear() noexcept;
unsigned int Count() const;
std::size_t Count() const;
void Flip();
unsigned int FindFirst() const;
unsigned int FindNext(unsigned int bit) const;
std::size_t FindFirst() const;
std::size_t FindNext(std::size_t bit) const;
Block GetBlock(unsigned int i) const;
unsigned int GetBlockCount() const;
unsigned int GetCapacity() const;
unsigned int GetSize() const;
Block GetBlock(std::size_t i) const;
std::size_t GetBlockCount() const;
std::size_t GetCapacity() const;
std::size_t GetSize() const;
void PerformsAND(const Bitset& a, const Bitset& b);
void PerformsNOT(const Bitset& a);
@@ -54,19 +54,19 @@ namespace Nz
bool Intersects(const Bitset& bitset) const;
void Reserve(unsigned int bitCount);
void Resize(unsigned int bitCount, bool defaultVal = false);
void Reserve(std::size_t bitCount);
void Resize(std::size_t bitCount, bool defaultVal = false);
void Reset();
void Reset(unsigned int bit);
void Reset(std::size_t bit);
void Set(bool val = true);
void Set(unsigned int bit, bool val = true);
void SetBlock(unsigned int i, Block block);
void Set(std::size_t bit, bool val = true);
void SetBlock(std::size_t i, Block block);
void Swap(Bitset& bitset);
bool Test(unsigned int bit) const;
bool Test(std::size_t bit) const;
bool TestAll() const;
bool TestAny() const;
bool TestNone() const;
@@ -74,9 +74,9 @@ namespace Nz
template<typename T> T To() const;
String ToString() const;
void UnboundedReset(unsigned int bit);
void UnboundedSet(unsigned int bit, bool val = true);
bool UnboundedTest(unsigned int bit) const;
void UnboundedReset(std::size_t bit);
void UnboundedSet(std::size_t bit, bool val = true);
bool UnboundedTest(std::size_t bit) const;
Bit operator[](int index);
bool operator[](int index) const;
@@ -93,20 +93,20 @@ namespace Nz
Bitset& operator^=(const Bitset& bitset);
static constexpr Block fullBitMask = std::numeric_limits<Block>::max();
static constexpr unsigned int bitsPerBlock = std::numeric_limits<Block>::digits;
static constexpr unsigned int npos = std::numeric_limits<unsigned int>::max();
static constexpr std::size_t bitsPerBlock = std::numeric_limits<Block>::digits;
static constexpr std::size_t npos = std::numeric_limits<std::size_t>::max();
private:
unsigned int FindFirstFrom(unsigned int blockIndex) const;
std::size_t FindFirstFrom(std::size_t blockIndex) const;
Block GetLastBlockMask() const;
void ResetExtraBits();
static unsigned int ComputeBlockCount(unsigned int bitCount);
static unsigned int GetBitIndex(unsigned int bit);
static unsigned int GetBlockIndex(unsigned int bit);
static std::size_t ComputeBlockCount(std::size_t bitCount);
static std::size_t GetBitIndex(std::size_t bit);
static std::size_t GetBlockIndex(std::size_t bit);
std::vector<Block, Allocator> m_blocks;
unsigned int m_bitCount;
std::size_t m_bitCount;
};
template<typename Block, class Allocator>

View File

@@ -42,7 +42,7 @@ namespace Nz
*/
template<typename Block, class Allocator>
Bitset<Block, Allocator>::Bitset(unsigned int bitCount, bool val) :
Bitset<Block, Allocator>::Bitset(std::size_t bitCount, bool val) :
Bitset()
{
Resize(bitCount, val);
@@ -72,11 +72,11 @@ namespace Nz
*/
template<typename Block, class Allocator>
Bitset<Block, Allocator>::Bitset(const char* bits, unsigned int bitCount) :
Bitset<Block, Allocator>::Bitset(const char* bits, std::size_t bitCount) :
m_blocks(ComputeBlockCount(bitCount), 0U),
m_bitCount(bitCount)
{
for (unsigned int i = 0; i < bitCount; ++i)
for (std::size_t i = 0; i < bitCount; ++i)
{
switch (*bits++)
{
@@ -126,7 +126,7 @@ namespace Nz
else
{
// Note: I was kinda tired when I wrote this, there's probably a much easier method than checking bits to write bits
for (unsigned int bitPos = 0; bitPos < std::numeric_limits<T>::digits; bitPos++)
for (std::size_t bitPos = 0; bitPos < std::numeric_limits<T>::digits; bitPos++)
{
if (value & (T(1U) << bitPos))
UnboundedSet(bitPos, true);
@@ -153,13 +153,13 @@ namespace Nz
*/
template<typename Block, class Allocator>
unsigned int Bitset<Block, Allocator>::Count() const
std::size_t Bitset<Block, Allocator>::Count() const
{
if (m_blocks.empty())
return 0;
unsigned int count = 0;
for (unsigned int i = 0; i < m_blocks.size(); ++i)
std::size_t count = 0;
for (std::size_t i = 0; i < m_blocks.size(); ++i)
count += CountBits(m_blocks[i]);
return count;
@@ -184,7 +184,7 @@ namespace Nz
*/
template<typename Block, class Allocator>
unsigned int Bitset<Block, Allocator>::FindFirst() const
std::size_t Bitset<Block, Allocator>::FindFirst() const
{
return FindFirstFrom(0);
}
@@ -199,7 +199,7 @@ namespace Nz
*/
template<typename Block, class Allocator>
unsigned int Bitset<Block, Allocator>::FindNext(unsigned int bit) const
std::size_t Bitset<Block, Allocator>::FindNext(std::size_t bit) const
{
NazaraAssert(bit < m_bitCount, "Bit index out of range");
@@ -207,8 +207,8 @@ namespace Nz
return npos;
// The block of the bit and its index
unsigned int blockIndex = GetBlockIndex(bit);
unsigned int bitIndex = GetBitIndex(bit);
std::size_t blockIndex = GetBlockIndex(bit);
std::size_t bitIndex = GetBitIndex(bit);
// We get the block
Block block = m_blocks[blockIndex];
@@ -233,7 +233,7 @@ namespace Nz
*/
template<typename Block, class Allocator>
Block Bitset<Block, Allocator>::GetBlock(unsigned int i) const
Block Bitset<Block, Allocator>::GetBlock(std::size_t i) const
{
NazaraAssert(i < m_blocks.size(), "Block index out of range");
@@ -246,7 +246,7 @@ namespace Nz
*/
template<typename Block, class Allocator>
unsigned int Bitset<Block, Allocator>::GetBlockCount() const
std::size_t Bitset<Block, Allocator>::GetBlockCount() const
{
return m_blocks.size();
}
@@ -257,7 +257,7 @@ namespace Nz
*/
template<typename Block, class Allocator>
unsigned int Bitset<Block, Allocator>::GetCapacity() const
std::size_t Bitset<Block, Allocator>::GetCapacity() const
{
return m_blocks.capacity()*bitsPerBlock;
}
@@ -268,7 +268,7 @@ namespace Nz
*/
template<typename Block, class Allocator>
unsigned int Bitset<Block, Allocator>::GetSize() const
std::size_t Bitset<Block, Allocator>::GetSize() const
{
return m_bitCount;
}
@@ -285,7 +285,7 @@ namespace Nz
template<typename Block, class Allocator>
void Bitset<Block, Allocator>::PerformsAND(const Bitset& a, const Bitset& b)
{
std::pair<unsigned int, unsigned int> minmax = std::minmax(a.GetBlockCount(), b.GetBlockCount());
std::pair<std::size_t, std::size_t> minmax = std::minmax(a.GetBlockCount(), b.GetBlockCount());
// We reinitialise our blocks with zero
m_blocks.clear();
@@ -293,7 +293,7 @@ namespace Nz
m_bitCount = std::max(a.GetSize(), b.GetSize());
// In case of the "AND", we can stop with the smallest size (because x & 0 = 0)
for (unsigned int i = 0; i < minmax.first; ++i)
for (std::size_t i = 0; i < minmax.first; ++i)
m_blocks[i] = a.GetBlock(i) & b.GetBlock(i);
ResetExtraBits();
@@ -311,7 +311,7 @@ namespace Nz
m_blocks.resize(a.GetBlockCount());
m_bitCount = a.GetSize();
for (unsigned int i = 0; i < m_blocks.size(); ++i)
for (std::size_t i = 0; i < m_blocks.size(); ++i)
m_blocks[i] = ~a.GetBlock(i);
ResetExtraBits();
@@ -332,15 +332,15 @@ namespace Nz
const Bitset& greater = (a.GetSize() > b.GetSize()) ? a : b;
const Bitset& lesser = (a.GetSize() > b.GetSize()) ? b : a;
unsigned int maxBlockCount = greater.GetBlockCount();
unsigned int minBlockCount = lesser.GetBlockCount();
std::size_t maxBlockCount = greater.GetBlockCount();
std::size_t minBlockCount = lesser.GetBlockCount();
m_blocks.resize(maxBlockCount);
m_bitCount = greater.GetSize();
for (unsigned int i = 0; i < minBlockCount; ++i)
for (std::size_t i = 0; i < minBlockCount; ++i)
m_blocks[i] = a.GetBlock(i) | b.GetBlock(i);
for (unsigned int i = minBlockCount; i < maxBlockCount; ++i)
for (std::size_t i = minBlockCount; i < maxBlockCount; ++i)
m_blocks[i] = greater.GetBlock(i); // (x | 0 = x)
ResetExtraBits();
@@ -361,15 +361,15 @@ namespace Nz
const Bitset& greater = (a.GetSize() > b.GetSize()) ? a : b;
const Bitset& lesser = (a.GetSize() > b.GetSize()) ? b : a;
unsigned int maxBlockCount = greater.GetBlockCount();
unsigned int minBlockCount = lesser.GetBlockCount();
std::size_t maxBlockCount = greater.GetBlockCount();
std::size_t minBlockCount = lesser.GetBlockCount();
m_blocks.resize(maxBlockCount);
m_bitCount = greater.GetSize();
for (unsigned int i = 0; i < minBlockCount; ++i)
for (std::size_t i = 0; i < minBlockCount; ++i)
m_blocks[i] = a.GetBlock(i) ^ b.GetBlock(i);
for (unsigned int i = minBlockCount; i < maxBlockCount; ++i)
for (std::size_t i = minBlockCount; i < maxBlockCount; ++i)
m_blocks[i] = greater.GetBlock(i); // (x ^ 0 = x)
ResetExtraBits();
@@ -385,8 +385,8 @@ namespace Nz
bool Bitset<Block, Allocator>::Intersects(const Bitset& bitset) const
{
// We only test the blocks in common
unsigned int sharedBlocks = std::min(GetBlockCount(), bitset.GetBlockCount());
for (unsigned int i = 0; i < sharedBlocks; ++i)
std::size_t sharedBlocks = std::min(GetBlockCount(), bitset.GetBlockCount());
for (std::size_t i = 0; i < sharedBlocks; ++i)
{
Block a = GetBlock(i);
Block b = bitset.GetBlock(i);
@@ -404,7 +404,7 @@ namespace Nz
*/
template<typename Block, class Allocator>
void Bitset<Block, Allocator>::Reserve(unsigned int bitCount)
void Bitset<Block, Allocator>::Reserve(std::size_t bitCount)
{
m_blocks.reserve(ComputeBlockCount(bitCount));
}
@@ -417,13 +417,13 @@ namespace Nz
*/
template<typename Block, class Allocator>
void Bitset<Block, Allocator>::Resize(unsigned int bitCount, bool defaultVal)
void Bitset<Block, Allocator>::Resize(std::size_t bitCount, bool defaultVal)
{
// We begin with changing the size of container, with the correct value of initialisation
unsigned int lastBlockIndex = m_blocks.size() - 1;
std::size_t lastBlockIndex = m_blocks.size() - 1;
m_blocks.resize(ComputeBlockCount(bitCount), (defaultVal) ? fullBitMask : 0U);
unsigned int remainingBits = GetBitIndex(m_bitCount);
std::size_t remainingBits = GetBitIndex(m_bitCount);
if (bitCount > m_bitCount && remainingBits > 0 && defaultVal)
// Initialisation of unused bits in the last block before the size change
m_blocks[lastBlockIndex] |= fullBitMask << remainingBits;
@@ -451,7 +451,7 @@ namespace Nz
*/
template<typename Block, class Allocator>
void Bitset<Block, Allocator>::Reset(unsigned int bit)
void Bitset<Block, Allocator>::Reset(std::size_t bit)
{
Set(bit, false);
}
@@ -482,7 +482,7 @@ namespace Nz
*/
template<typename Block, class Allocator>
void Bitset<Block, Allocator>::Set(unsigned int bit, bool val)
void Bitset<Block, Allocator>::Set(std::size_t bit, bool val)
{
NazaraAssert(bit < m_bitCount, "Bit index out of range");
@@ -503,7 +503,7 @@ namespace Nz
* \remark Produce a NazaraAssert if i is greather than number of blocks in bitset
*/
template<typename Block, class Allocator>
void Bitset<Block, Allocator>::SetBlock(unsigned int i, Block block)
void Bitset<Block, Allocator>::SetBlock(std::size_t i, Block block)
{
NazaraAssert(i < m_blocks.size(), "Block index out of range");
@@ -537,7 +537,7 @@ namespace Nz
*/
template<typename Block, class Allocator>
bool Bitset<Block, Allocator>::Test(unsigned int bit) const
bool Bitset<Block, Allocator>::Test(std::size_t bit) const
{
NazaraAssert(bit < m_bitCount, "Bit index out of range");
@@ -555,7 +555,7 @@ namespace Nz
// Special case for the last block
Block lastBlockMask = GetLastBlockMask();
for (unsigned int i = 0; i < m_blocks.size(); ++i)
for (std::size_t i = 0; i < m_blocks.size(); ++i)
{
Block mask = (i == m_blocks.size() - 1) ? lastBlockMask : fullBitMask;
if (m_blocks[i] == mask) // The extra bits are set to zero, thus we can't test without proceeding with a mask
@@ -576,7 +576,7 @@ namespace Nz
if (m_blocks.empty())
return false;
for (unsigned int i = 0; i < m_blocks.size(); ++i)
for (std::size_t i = 0; i < m_blocks.size(); ++i)
{
if (m_blocks[i])
return true;
@@ -612,7 +612,7 @@ namespace Nz
NazaraAssert(m_bitCount <= std::numeric_limits<T>::digits, "Bit count cannot be greater than T bit count");
T value = 0;
for (unsigned int i = 0; i < m_blocks.size(); ++i)
for (std::size_t i = 0; i < m_blocks.size(); ++i)
value |= static_cast<T>(m_blocks[i]) << i*bitsPerBlock;
return value;
@@ -628,7 +628,7 @@ namespace Nz
{
String str(m_bitCount, '0');
for (unsigned int i = 0; i < m_bitCount; ++i)
for (std::size_t i = 0; i < m_bitCount; ++i)
{
if (Test(i))
str[m_bitCount - i - 1] = '1'; // Inversion de l'indice
@@ -648,7 +648,7 @@ namespace Nz
*/
template<typename Block, class Allocator>
void Bitset<Block, Allocator>::UnboundedReset(unsigned int bit)
void Bitset<Block, Allocator>::UnboundedReset(std::size_t bit)
{
UnboundedSet(bit, false);
}
@@ -665,7 +665,7 @@ namespace Nz
*/
template<typename Block, class Allocator>
void Bitset<Block, Allocator>::UnboundedSet(unsigned int bit, bool val)
void Bitset<Block, Allocator>::UnboundedSet(std::size_t bit, bool val)
{
if (bit < m_bitCount)
Set(bit, val);
@@ -687,7 +687,7 @@ namespace Nz
*/
template<typename Block, class Allocator>
bool Bitset<Block, Allocator>::UnboundedTest(unsigned int bit) const
bool Bitset<Block, Allocator>::UnboundedTest(std::size_t bit) const
{
if (bit < m_bitCount)
return Test(bit);
@@ -816,13 +816,13 @@ namespace Nz
*/
template<typename Block, class Allocator>
unsigned int Bitset<Block, Allocator>::FindFirstFrom(unsigned int blockIndex) const
std::size_t Bitset<Block, Allocator>::FindFirstFrom(std::size_t blockIndex) const
{
if (blockIndex >= m_blocks.size())
return npos;
// We are looking for the first non-null block
unsigned int i = blockIndex;
std::size_t i = blockIndex;
for (; i < m_blocks.size(); ++i)
{
if (m_blocks[i])
@@ -868,7 +868,7 @@ namespace Nz
*/
template<typename Block, class Allocator>
unsigned int Bitset<Block, Allocator>::ComputeBlockCount(unsigned int bitCount)
std::size_t Bitset<Block, Allocator>::ComputeBlockCount(std::size_t bitCount)
{
return GetBlockIndex(bitCount) + ((GetBitIndex(bitCount) != 0U) ? 1U : 0U);
}
@@ -879,7 +879,7 @@ namespace Nz
*/
template<typename Block, class Allocator>
unsigned int Bitset<Block, Allocator>::GetBitIndex(unsigned int bit)
std::size_t Bitset<Block, Allocator>::GetBitIndex(std::size_t bit)
{
return bit & (bitsPerBlock - 1U); // bit % bitsPerBlock
}
@@ -890,7 +890,7 @@ namespace Nz
*/
template<typename Block, class Allocator>
unsigned int Bitset<Block, Allocator>::GetBlockIndex(unsigned int bit)
std::size_t Bitset<Block, Allocator>::GetBlockIndex(std::size_t bit)
{
return bit / bitsPerBlock;
}
@@ -1106,18 +1106,18 @@ namespace Nz
const Bitset<Block, Allocator>& greater = (lhs.GetBlockCount() > rhs.GetBlockCount()) ? lhs : rhs;
const Bitset<Block, Allocator>& lesser = (lhs.GetBlockCount() > rhs.GetBlockCount()) ? rhs : lhs;
unsigned int maxBlockCount = greater.GetBlockCount();
unsigned int minBlockCount = lesser.GetBlockCount();
std::size_t maxBlockCount = greater.GetBlockCount();
std::size_t minBlockCount = lesser.GetBlockCount();
// We test the blocks in common to check the equality of bits
for (unsigned int i = 0; i < minBlockCount; ++i)
for (std::size_t i = 0; i < minBlockCount; ++i)
{
if (lhs.GetBlock(i) != rhs.GetBlock(i))
return false;
}
// Now we check for the blocks that only the biggest bitset owns, and to be equal, they must be set to '0'
for (unsigned int i = minBlockCount; i < maxBlockCount; ++i)
for (std::size_t i = minBlockCount; i < maxBlockCount; ++i)
if (greater.GetBlock(i))
return false;
@@ -1152,20 +1152,20 @@ namespace Nz
const Bitset<Block, Allocator>& greater = (lhs.GetBlockCount() > rhs.GetBlockCount()) ? lhs : rhs;
const Bitset<Block, Allocator>& lesser = (lhs.GetBlockCount() > rhs.GetBlockCount()) ? rhs : lhs;
unsigned int maxBlockCount = greater.GetBlockCount();
unsigned int minBlockCount = lesser.GetBlockCount();
std::size_t maxBlockCount = greater.GetBlockCount();
std::size_t minBlockCount = lesser.GetBlockCount();
// If the greatest bitset has a single bit active in a block outside the lesser bitset range, then it is greater
for (unsigned int i = maxBlockCount; i > minBlockCount; ++i)
for (std::size_t i = maxBlockCount; i > minBlockCount; ++i)
{
if (greater.GetBlock(i))
return lhs.GetBlockCount() < rhs.GetBlockCount();
}
// Compare the common blocks
for (unsigned int i = 0; i < minBlockCount; ++i)
for (std::size_t i = 0; i < minBlockCount; ++i)
{
unsigned int index = (minBlockCount - i - 1); // Compare from the most significant block to the less significant block
std::size_t index = (minBlockCount - i - 1); // Compare from the most significant block to the less significant block
if (lhs.GetBlock(index) < rhs.GetBlock(index))
return true;
}

View File

@@ -33,8 +33,8 @@ namespace Nz
inline void SwapBytes(void* buffer, std::size_t size)
{
UInt8* bytes = static_cast<UInt8*>(buffer);
unsigned int i = 0;
unsigned int j = size - 1;
std::size_t i = 0;
std::size_t j = size - 1;
while (i < j)
std::swap(bytes[i++], bytes[j--]);

View File

@@ -39,7 +39,7 @@ namespace Nz
static bool IsExtensionSupported(const String& extension);
static bool LoadFromFile(Type* resource, const String& filePath, const Parameters& parameters = Parameters());
static bool LoadFromMemory(Type* resource, const void* data, unsigned int size, const Parameters& parameters = Parameters());
static bool LoadFromMemory(Type* resource, const void* data, std::size_t size, const Parameters& parameters = Parameters());
static bool LoadFromStream(Type* resource, Stream& stream, const Parameters& parameters = Parameters());
static void RegisterLoader(ExtensionGetter extensionGetter, StreamChecker checkFunc, StreamLoader streamLoader, FileLoader fileLoader = nullptr, MemoryLoader memoryLoader = nullptr);

View File

@@ -160,7 +160,7 @@ namespace Nz
* \remark Produces a NazaraError if all loaders failed or no loader was found
*/
template<typename Type, typename Parameters>
bool ResourceLoader<Type, Parameters>::LoadFromMemory(Type* resource, const void* data, unsigned int size, const Parameters& parameters)
bool ResourceLoader<Type, Parameters>::LoadFromMemory(Type* resource, const void* data, std::size_t size, const Parameters& parameters)
{
NazaraAssert(resource, "Invalid resource");
NazaraAssert(data, "Invalid data pointer");