]> granicus.if.org Git - graphviz/commit
get_cycle_centroid: undo caching of 'cycle' list
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Mon, 17 Jan 2022 16:09:11 +0000 (08:09 -0800)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Tue, 18 Jan 2022 15:42:37 +0000 (07:42 -0800)
commite982a7f8dc7367911b823c81ca527629575f5ec4
tree3251ce54e9ddc413eb3e0ed75c6627948878d40c
parente83af7018f0c990ccbf20df898b3b90e426bb883
get_cycle_centroid: undo caching of 'cycle' list

This function attempted to save time by caching the results of a graph cycle
search and then reusing them in a future call. The logic used for this caching
is invalid. It compares graph pointers to see if it is operating on the same
graph as last time, but this can return a false positive if the previous graph
has been deallocated and a new (unrelated) graph has been allocated at the same
address.

This logic would eventually have to be unwound or adjusted in order to support
multithreading in this code too.

It is possible this is the root cause of the issue described in #2162, though I
was never able to reproduce that issue.
lib/common/routespl.c