ProcessVariableProxy::removeNode() was effectively taking a reference to
a shared pointer as an argument and is removing the same (effective)
shared pointer from a list. This poses a problem if the reference passed
points to the list directly and is the last shared pointer to this
object so it gets freed, because removeNode() is accessing the object
after removing it from the list.
ProcessVariableProxy::removeNode() was effectively taking a reference to a shared pointer as an argument and is removing the same (effective) shared pointer from a list. This poses a problem if the reference passed points to the list directly and is the last shared pointer to this object so it gets freed, because removeNode() is accessing the object after removing it from the list.