WineD3D refcounting fun part II :)

Robert Shearman rob at
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.

Rob Shearman

More information about the wine-devel mailing list