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

Function CodeBuilder_nodeRemoved

libraries/asmjit/asmjit/base/codebuilder.cpp:355–380  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

353}
354
355static ASMJIT_INLINE void CodeBuilder_nodeRemoved(CodeBuilder* self, CBNode* node_) noexcept {
356 if (node_->isJmpOrJcc()) {
357 CBJump* node = static_cast<CBJump*>(node_);
358 CBLabel* label = node->getTarget();
359
360 if (label) {
361 // Disconnect.
362 CBJump** pPrev = &label->_from;
363 for (;;) {
364 ASMJIT_ASSERT(*pPrev != nullptr);
365
366 CBJump* current = *pPrev;
367 if (!current) break;
368
369 if (current == node) {
370 *pPrev = node->_jumpNext;
371 break;
372 }
373
374 pPrev = &current->_jumpNext;
375 }
376
377 label->subNumRefs();
378 }
379 }
380}
381
382CBNode* CodeBuilder::removeNode(CBNode* node) noexcept {
383 CBNode* prev = node->_prev;

Callers 2

removeNodeMethod · 0.85
removeNodesMethod · 0.85

Calls 3

isJmpOrJccMethod · 0.80
getTargetMethod · 0.80
subNumRefsMethod · 0.80

Tested by

no test coverage detected