From Mailing List:
In my View I'm creating a DataNode and adding it to the DataStorage; I'm also creating a DataInterator and using the SetDataNode method to bind the new DataNode and the DataInteractor. I'm not storing any reference nor smartpointer to that DataNode anywhere else.
I've noticed that the DataNode is never destroyed when I delete it from the DataStorage. I have implemented NodeRemoved on my view to check the reference counting. It arrives with 5 references to this method (a surface node without an interactor comes with 3 references at that time). So, I thought, there is a cycle between the DataInteractor and the Datanode. After getting the DataInteractor and setting its DataNode to NULL, the DataInteractor is destroyed and my DataNode count reduces to 4 references. I still have one more reference than a normal surface node.
I'm registering my own mapper to display my node (it holds a PointSet but I'm displaying it differently); I'm not storing any reference to the node in my Mapper.