Fix temp var mapping not working after copy-paste of segment

This commit is contained in:
WarmUpTill
2026-05-10 20:45:48 +02:00
parent eda9dde23d
commit 774ccb7fbd
4 changed files with 31 additions and 0 deletions

View File

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