From 99e09121631eef001e8d45a661af08f7efd5cbac Mon Sep 17 00:00:00 2001 From: Lynix Date: Tue, 17 Mar 2015 12:26:51 +0100 Subject: [PATCH] (Bitset) Simplified Resize code Removed old code Former-commit-id: e82ec5e69ba9e4d91b7c65a5132b91fe3a60fd7e --- include/Nazara/Core/Bitset.inl | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/include/Nazara/Core/Bitset.inl b/include/Nazara/Core/Bitset.inl index 254cf39d7..4cd789cf8 100644 --- a/include/Nazara/Core/Bitset.inl +++ b/include/Nazara/Core/Bitset.inl @@ -236,26 +236,13 @@ template void NzBitset::Resize(unsigned int bitCount, bool defaultVal) { // On commence par changer la taille du conteneur, avec la valeur correcte d'initialisation - auto oldSize = m_blocks.size(); + unsigned int lastBlockIndex = m_blocks.size()-1; m_blocks.resize(ComputeBlockCount(bitCount), (defaultVal) ? fullBitMask : 0U); unsigned int remainingBits = GetBitIndex(m_bitCount); if (bitCount > m_bitCount && remainingBits > 0 && defaultVal) - { // Initialisation des bits non-utilisés du dernier bloc avant le changement de taille - Block& block = m_blocks[oldSize-1]; // Le bloc à corriger - Block mask = fullBitMask << remainingBits; // Le masque sur les bits en question - - // Set/Reset des bits - /* - if (defaultVal) - block |= mask; - else - block &= ~mask; - */ - // https://graphics.stanford.edu/~seander/bithacks.html#ConditionalSetOrClearBitsWithoutBranching - block = (block & ~mask) | (-defaultVal & mask); - } + m_blocks[lastBlockIndex] |= fullBitMask << remainingBits; m_bitCount = bitCount; ResetExtraBits();