コード例 #1
0
uint QFragmentMapData::findNode(int k) const
{
    uint x = root();

    uint s = k;
    while (x) {
        if (sizeLeft(x) <= s) {
            if (s < sizeLeft(x) + size(x))
                return x;
            s -= sizeLeft(x) + size(x);
            x = X.right;
        } else {
            x = X.left;
        }
    }
    return 0;
}
コード例 #2
0
int QFragmentMapData::length() const {
    uint root = this->root();
    return root ? sizeLeft(root) + size(root) + sizeRight(root) : 0;
}
コード例 #3
0
ファイル: MemReader.cpp プロジェクト: acsl-mipt/bmcl
void MemReader::peek(void* dest, std::size_t size, std::size_t offset) const
{
    BMCL_ASSERT(sizeLeft() >= (size + offset));
    std::memcpy(dest, _current + offset, size);
}
コード例 #4
0
ファイル: MemReader.cpp プロジェクト: acsl-mipt/bmcl
void MemReader::readImpl(void* dest, std::size_t size)
{
    BMCL_ASSERT(sizeLeft() >= size);
    std::memcpy(dest, _current, size);
    _current += size;
}
コード例 #5
0
ファイル: MemReader.cpp プロジェクト: acsl-mipt/bmcl
void MemReader::skipImpl(std::size_t size)
{
    BMCL_ASSERT(sizeLeft() >= size);
    _current += size;
}