Jeff King [off-list ref] writes:
I think diff_filespec_clear() would not be quite right. It is freeing
only the allocated _data_, but leaving the other portions intact.
You are (as usual) more right than I am ;-)
Yes, the free_data() is designed to retain enough information about
the filespec so that the data can be re-read by the next person who
needs to access it after free_data() is called; i.e. it was a
measure to reduce the memory pressure by trading it off with I/O
cost. It is wrong to name it "clear", which is to "clear the slate,
make it into pristine state" whose side effect is to release held
resources.