MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / shiftLeft

Method shiftLeft

source/core/StarBTreeDatabase.cpp:382–401  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

380}
381
382void BTreeDatabase::IndexNode::shiftLeft(ByteArray const& mid, IndexNode& right, size_t count) {
383 count = std::min(right.pointerCount(), count);
384
385 if (count == 0)
386 return;
387
388 pointers.append(Element{mid, *right.beginPointer});
389
390 ElementList::iterator s = right.pointers.begin();
391 std::advance(s, count - 1);
392 pointers.insert(pointers.end(), right.pointers.begin(), s);
393
394 right.pointers.erase(right.pointers.begin(), s);
395 if (right.pointers.size() != 0) {
396 right.beginPointer = right.pointers.at(0).pointer;
397 right.pointers.eraseAt(0);
398 } else {
399 right.beginPointer.reset();
400 }
401}
402
403void BTreeDatabase::IndexNode::shiftRight(ByteArray const& mid, IndexNode& left, size_t count) {
404 count = std::min(left.pointerCount(), count);

Callers 2

indexShiftMethod · 0.45
leafShiftMethod · 0.45

Calls 11

eraseAtMethod · 0.80
pointerCountMethod · 0.45
appendMethod · 0.45
beginMethod · 0.45
insertMethod · 0.45
endMethod · 0.45
eraseMethod · 0.45
sizeMethod · 0.45
atMethod · 0.45
resetMethod · 0.45
countMethod · 0.45

Tested by

no test coverage detected