Robert wrote:
I don't understand your proposal.
Either you are making a change to the fingerprint (and courting disaster) or you are not (so not avoiding collisions). I must be missing something here.
The trick is, and this is also in luowy's proposal, to restrict the change to this specific pattern
by adding not only some constant but by first testing for the pattern.
This testing is done in "IF (btyp.comp = Array) & ((bstrobj = NIL) OR (bstrobj.name = null)) THEN".
Only if the pattern occurs (the base type of a Pointer is an anonymous fixed size array) there is a change in the fingerprint.
This pattern is very rare. It does not show up in the BlackBox distribution.
If you use a POINTER TO ARRAY structure, you typically use a dynamic array not a fixed size array.
And if you use a fixed size array there are some chances that you use a named type for that, not an anonymous one.
- Josef