Skip to content

Commit 98b1fc9

Browse files
committed
eval just got better
1 parent 35f1ef1 commit 98b1fc9

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

src/backend/evaluator/evaluator.cpp

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -435,6 +435,20 @@ void Evaluator::setCircuitIO(const DataUpdateEventManager::EventData* data) {
435435
logError("Position for connection end ID {} not found in CircuitBlockData for Circuit ID {}", "Evaluator::setCircuitIO", connectionEndId, circuitId);
436436
return;
437437
}
438+
// find block position
439+
440+
SharedCircuit circuit = circuitManager.getCircuit(circuitId);
441+
if (!circuit) {
442+
logError("Circuit with ID {} not found", "Evaluator::setCircuitIO", circuitId);
443+
return;
444+
}
445+
const BlockContainer& blockContainer = circuit->getBlockContainer();
446+
const Block* block = blockContainer.getBlock(*position);
447+
if (!block) {
448+
logError("Block at position {} not found in Circuit ID {}", "Evaluator::setCircuitIO", position->toString(), circuitId);
449+
return;
450+
}
451+
Position blockPosition = block->getPosition();
438452
// use checkToCreateExternalConnections
439453
// iterate over eval_circuit_id_t
440454
for (eval_circuit_id_t evalCircuitId : evalCircuitContainer.ids()) {
@@ -445,7 +459,7 @@ void Evaluator::setCircuitIO(const DataUpdateEventManager::EventData* data) {
445459
if (evalCircuit->getCircuitId() != circuitId) {
446460
continue;
447461
}
448-
checkToCreateExternalConnections(pauseGuard, evalCircuitId, *position);
462+
checkToCreateExternalConnections(pauseGuard, evalCircuitId, blockPosition);
449463
}
450464
if (changedSim){
451465
evalSimulator->endEdit(pauseGuard);
@@ -938,6 +952,7 @@ void Evaluator::checkToCreateExternalConnections(SimPauseGuard& pauseGuard, eval
938952
}
939953
for (const EvalPosition& evalPosition : visitedEvalPositions) {
940954
dirtyNodes.insert(evalPosition);
955+
changedPositioning = true;
941956
}
942957
}
943958
}

0 commit comments

Comments
 (0)