Rework temp var mapping handling on copy of macro segments

This commit is contained in:
WarmUpTill
2026-05-20 21:09:09 +02:00
parent 930e8b38d4
commit 680f72e4f9
5 changed files with 18 additions and 13 deletions

View File

@@ -57,20 +57,20 @@ void MacroSegment::SetVarMappings(const std::vector<VarMapping> &mappings)
IncrementTempVarInUseGeneration();
}
void MacroSegment::FixupVarMappingRefs(const MacroSegment *originalSegment)
void MacroSegment::FixupVarMappingRefs()
{
for (auto &mapping : _varMappings) {
auto refSeg = mapping.tempVar._segment.lock();
if (refSeg.get() != originalSegment) {
if (!mapping.tempVar.HasValidID()) {
continue;
}
for (const auto &var : _tempVariables) {
if (var.ID() == mapping.tempVar._id) {
if (var.ID() == mapping.tempVar.GetID()) {
mapping.tempVar = var.GetRef();
break;
}
}
}
NotifyUIAboutTempVarChange(this);
}
std::vector<TempVariable> MacroSegment::GetOwnTempVars() const