let Deque::getItem return for each control path
Signed-off-by: DNKpp <DNKpp2011@gmail.com>
This commit is contained in:
parent
165097a161
commit
7eaaf6afb6
|
@ -92,29 +92,25 @@ class Deque {
|
||||||
T& getItem(size_t virtualIndex) const {
|
T& getItem(size_t virtualIndex) const {
|
||||||
|
|
||||||
// If the virtual index is valid
|
// If the virtual index is valid
|
||||||
if (virtualIndex < mSize) {
|
assert (virtualIndex < mSize);
|
||||||
|
|
||||||
size_t chunkIndex = mFirstChunkIndex;
|
size_t chunkIndex = mFirstChunkIndex;
|
||||||
size_t itemIndex = mFirstItemIndex;
|
size_t itemIndex = mFirstItemIndex;
|
||||||
|
|
||||||
const size_t nbItemsFirstChunk = CHUNK_NB_ITEMS - mFirstItemIndex;
|
const size_t nbItemsFirstChunk = CHUNK_NB_ITEMS - mFirstItemIndex;
|
||||||
if (virtualIndex < nbItemsFirstChunk) {
|
if (virtualIndex < nbItemsFirstChunk) {
|
||||||
itemIndex += virtualIndex;
|
itemIndex += virtualIndex;
|
||||||
}
|
|
||||||
else {
|
|
||||||
|
|
||||||
virtualIndex -= nbItemsFirstChunk;
|
|
||||||
chunkIndex++;
|
|
||||||
|
|
||||||
chunkIndex += virtualIndex / CHUNK_NB_ITEMS;
|
|
||||||
itemIndex = virtualIndex % CHUNK_NB_ITEMS;
|
|
||||||
}
|
|
||||||
|
|
||||||
return mChunks[chunkIndex][itemIndex];
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
assert(false);
|
|
||||||
|
virtualIndex -= nbItemsFirstChunk;
|
||||||
|
chunkIndex++;
|
||||||
|
|
||||||
|
chunkIndex += virtualIndex / CHUNK_NB_ITEMS;
|
||||||
|
itemIndex = virtualIndex % CHUNK_NB_ITEMS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return mChunks[chunkIndex][itemIndex];
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Add more chunks
|
/// Add more chunks
|
||||||
|
|
Loading…
Reference in New Issue
Block a user