MCPcopy Create free account
hub / github.com/ZDoom/Raze / removeNodes

Method removeNodes

libraries/asmjit/asmjit/base/codebuilder.cpp:406–441  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

404}
405
406void CodeBuilder::removeNodes(CBNode* first, CBNode* last) noexcept {
407 if (first == last) {
408 removeNode(first);
409 return;
410 }
411
412 CBNode* prev = first->_prev;
413 CBNode* next = last->_next;
414
415 if (_firstNode == first)
416 _firstNode = next;
417 else
418 prev->_next = next;
419
420 if (_lastNode == last)
421 _lastNode = prev;
422 else
423 next->_prev = prev;
424
425 CBNode* node = first;
426 for (;;) {
427 CBNode* next = node->getNext();
428 ASMJIT_ASSERT(next != nullptr);
429
430 node->_prev = nullptr;
431 node->_next = nullptr;
432
433 if (_cursor == node)
434 _cursor = prev;
435 CodeBuilder_nodeRemoved(this, node);
436
437 if (node == last)
438 break;
439 node = next;
440 }
441}
442
443CBNode* CodeBuilder::setCursor(CBNode* node) noexcept {
444 CBNode* old = _cursor;

Callers

nothing calls this directly

Calls 2

CodeBuilder_nodeRemovedFunction · 0.85
getNextMethod · 0.45

Tested by

no test coverage detected