I don't like it. The maximum range of a variable is an arbitrary value and this "loop avoidance" will not do us much good on a 64-bit architecture.
If this is a real concern, we should be either using a tortoise/hare algorithm here in order to bomb out on circular references. Or, much preferable, we should catch any such cases where the circular reference is established. This can only happen when an existing grob already established as a parent of some other grob gets its parent pointed to another existing grob. Since it is much too late by the time Grob::common_refpoint is called to figure out the culprit in the circular refpoint chain, that's close to useless for debugging. https://codereview.appspot.com/134600043/ _______________________________________________ lilypond-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/lilypond-devel
