Eric Sunshine [off-list ref] writes:
Each constructed blame_entry must own a reference to the suspect.
o->refcnt should equal the number of blame_entries. At construction, a
'struct origin' has refcnt 1. In the original code, which supported
only a single initial range (blame_entry), we had:
o = get-initial-suspect(); # refcnt already 1
ent->suspect = o; # refcnt still 1
Ah, of course.
I forgot that I initialized a new origin with refcnt 1 exactly for
this. As you use it once for each range, you would need to
compensate for it.
Thanks.