- 1
- 2
- 3
- 4
- 5
- 6
- 7
// round up the blockSize to fit an integer number of pointers...
m_blockSize = static_cast<QMPoolSize>(sizeof(QFreeBlock));//start with one
uint_fast16_t nblocks = uf16_1; //# free blocks in a memory block
while (m_blockSize < static_cast<QMPoolSize>(blockSize)) {
m_blockSize += static_cast<QMPoolSize>(sizeof(QFreeBlock));
++nblocks;
}
в догонку к #17616. делим на 4 с округлением, с помощью цикла.
P.S. касты и цикл само собой разумеется в ж не нужны:
m_blockSize = (blockSize + sizeof(QFreeBlock)-1) & ~(sizeof(QFreeBlock)-1);
nblocks = m_blockSize / sizeof(QFreeBlock);
А с unsigned'ом походу боится проебать зависание на слишком больших blockSize.
Да, так и есть. Добавил и всё соптимизнулось в сдвиг.
армагедон - skynet просто съоптимизировало человечество в nop.
Просто люди деградировали.