MCPcopy Create free account
hub / github.com/ablab/spades / set

Method set

ext/include/llvm/ADT/SparseBitVector.h:507–529  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

505 }
506
507 void set(unsigned Idx) {
508 unsigned ElementIndex = Idx / ElementSize;
509 ElementListIter ElementIter;
510 if (Elements.empty()) {
511 ElementIter = Elements.emplace(Elements.end(), ElementIndex);
512 } else {
513 ElementIter = FindLowerBound(ElementIndex);
514
515 if (ElementIter == Elements.end() ||
516 ElementIter->index() != ElementIndex) {
517 // We may have hit the beginning of our SparseBitVector, in which case,
518 // we may need to insert right after this element, which requires moving
519 // the current iterator forward one, because insert does insert before.
520 if (ElementIter != Elements.end() &&
521 ElementIter->index() < ElementIndex)
522 ++ElementIter;
523 ElementIter = Elements.emplace(ElementIter, ElementIndex);
524 }
525 }
526 CurrElementIter = ElementIter;
527
528 ElementIter->set(Idx % ElementSize);
529 }
530
531 bool test_and_set(unsigned Idx) {
532 bool old = test(Idx);

Callers

nothing calls this directly

Calls 4

emptyMethod · 0.45
emplaceMethod · 0.45
endMethod · 0.45
indexMethod · 0.45

Tested by

no test coverage detected