WineD3D refcounting fun part II :)
rob at codeweavers.com
Fri Feb 24 06:14:19 CST 2006
H. Verbeet wrote:
>I also suspect there might be a couple of circular references in the
>form of device->stateblock->object->device, but I haven't had time to
>really look into that yet. I *think* wined3d shouldn't keep references
>to objects in the device's Set* methods, but I remember that when I
>removed them in IWineD3DDeviceImpl_SetVertexShader Oliver put them
>back again in a later patch for some reason.
It would be good to write out on paper or otherwise the hierarchy of
which lifetimes a given object controls so that you can be sure of this.
There should be no loops.
I am not at all familiar with the wined3d code, but from what I've seen
discussed here it would seem that wined3d shouldn't keep references to
any objects. Instead the other objects should release the corresponding
wined3d object when they are destroyed.
More information about the wine-devel