Merge branch 'fix/contact-usage-counting-v2' into feature/general-tab-contact-count

This commit is contained in:
ispyisail
2026-09-09 11:45:49 +12:00
2 changed files with 11 additions and 2 deletions
+6
View File
@@ -29,6 +29,12 @@
rules can be unit tested on their own. MasterElement::contactUsage()
is the thin wrapper that feeds it the linked elements.
This counts contacts, which is what tells you how many contacts an
auxiliary block must provide. It is deliberately not the count that
MasterElement::isFull() uses: a master's max_slaves is a number of
slots, and a slave fills exactly one slot however many contacts it
carries.
Two rules are easy to get wrong, and both live here so that every
caller gets them right:
- a slave stands for as many contacts as its "number" kind
+5 -2
View File
@@ -282,8 +282,11 @@ bool MasterElement::isFull() const
return false;
}
// Return true if the contacts already used reached or exceeded the limit
return contactUsage().total() >= max_slaves;
// max_slaves is a number of slots, not of contacts: it sizes the
// element's contact group table, and a slave occupies exactly one
// group however many contacts that group stands for. So the slots
// in use are the linked elements, not the contacts they carry.
return connected_elements.size() >= max_slaves;
}
/**