Corrected overlapping register detection in TDF validation script

This commit is contained in:
Nav
2025-01-18 18:28:14 +00:00
parent d1d01327ae
commit 4478150995
3 changed files with 32 additions and 13 deletions

View File

@@ -488,19 +488,6 @@ class ValidationService
$failures[] = 'Duplicate register key ("' . $register->key . '") detected';
}
if ($register->alternative !== true) {
foreach ($registerGroup->registers as $registerOther) {
if ($register->key === $registerOther->key || $registerOther->alternative === true) {
continue;
}
if ($register->intersectsWith($registerOther)) {
$failures[] = 'Register "' . $register->key . '" overlaps with register "'
. $registerOther->key . '"';
}
}
}
$processedChildKeys[] = $register->key;
}
@@ -1118,6 +1105,22 @@ class ValidationService
. implode(',', $segmentKeys) . ')';
continue;
}
$registerAddressRange = $register->addressRange($addressSpace->unitSize);
if ($register->alternative !== true) {
foreach ($registerGroup->registers as $registerOther) {
if ($register->key === $registerOther->key || $registerOther->alternative === true) {
continue;
}
$registerOtherAddressRange = $registerOther->addressRange($addressSpace->unitSize);
if ($registerAddressRange->intersectsWith($registerOtherAddressRange)) {
$failures[] = 'Register "' . $register->key . '" overlaps with register "'
. $registerOther->key . '"';
}
}
}
}
}