[wined3d] interlocked functions: resend, now it compiles

Joris Huizer jorishuizer at planet.nl
Tue Jan 18 08:04:10 CST 2005


Changelog:
- get rid of some TRACE(..., This->resource.ref);
-------------- next part --------------
? backup-010320051808-pre-wine.tgz
? backup-010920052053-pre-wine.tgz
? backup-011120051329-pre-wine.tgz
? backup-011120051339-pre-wine.tgz
? backup-011220050008-pre-wine.tgz
? backup-011720051611-pre-wine.tgz
? backup-011820051406-pre-wine.tgz
? backup-123120041614-pre-wine.tgz
? badrefs
? description-pak
? doc-pak
? getrefs
? patch.diff
? ref
? refs
? strncpy.out
? thisref.sh
? versions
? wine-working.deb
? wine_cvs-041231-1_i386.deb
? wine_cvs-050103-1_i386.deb
? wine_cvs-050109-1_i386.deb
? wine_cvs-050111.noalsa-1_i386.deb
? wine_cvs-050112.release-1_i386.deb
? wine_cvs-050117-1_i386.deb
? wine_cvs-050118.with-opengl-1_i386.deb
? programs/notepad2
Index: dlls/wined3d/basetexture.c
===================================================================
RCS file: /home/wine/wine/dlls/wined3d/basetexture.c,v
retrieving revision 1.3
diff -u -r1.3 basetexture.c
--- dlls/wined3d/basetexture.c	17 Jan 2005 13:44:57 -0000	1.3
+++ dlls/wined3d/basetexture.c	18 Jan 2005 14:04:44 -0000
@@ -37,16 +37,17 @@
 
 ULONG WINAPI IWineD3DBaseTextureImpl_AddRef(IWineD3DBaseTexture *iface) {
     IWineD3DBaseTextureImpl *This = (IWineD3DBaseTextureImpl *)iface;
-    TRACE("(%p) : AddRef increasing from %ld\n", This, This->resource.ref);
+    ULONG ref = InterlockedIncrement(&This->resource.ref);
+    
+    TRACE("(%p) : AddRef increasing from %ld\n", This,ref - 1);
     IUnknown_AddRef(This->resource.parent);
-    return InterlockedIncrement(&This->resource.ref);
+    return ref;
 }
 
 ULONG WINAPI IWineD3DBaseTextureImpl_Release(IWineD3DBaseTexture *iface) {
     IWineD3DBaseTextureImpl *This = (IWineD3DBaseTextureImpl *)iface;
-    ULONG ref;
-    TRACE("(%p) : Releasing from %ld\n", This, This->resource.ref);
-    ref = InterlockedDecrement(&This->resource.ref);
+    ULONG ref = InterlockedDecrement(&This->resource.ref);
+    TRACE("(%p) : Releasing from %ld\n", This, ref + 1);
     if (ref == 0) {
         IWineD3DDevice_Release((IWineD3DDevice *)This->resource.wineD3DDevice);
         HeapFree(GetProcessHeap(), 0, This);
Index: dlls/wined3d/indexbuffer.c
===================================================================
RCS file: /home/wine/wine/dlls/wined3d/indexbuffer.c,v
retrieving revision 1.5
diff -u -r1.5 indexbuffer.c
--- dlls/wined3d/indexbuffer.c	17 Jan 2005 13:44:57 -0000	1.5
+++ dlls/wined3d/indexbuffer.c	18 Jan 2005 14:04:45 -0000
@@ -38,16 +38,16 @@
 
 ULONG WINAPI IWineD3DIndexBufferImpl_AddRef(IWineD3DIndexBuffer *iface) {
     IWineD3DIndexBufferImpl *This = (IWineD3DIndexBufferImpl *)iface;
-    TRACE("(%p) : AddRef increasing from %ld\n", This, This->resource.ref);
+    ULONG ref = InterlockedIncrement(&This->resource.ref);
+    TRACE("(%p) : AddRef increasing from %ld\n", This, ref - 1);
     IUnknown_AddRef(This->resource.parent);
-    return InterlockedIncrement(&This->resource.ref);
+    return ref; 
 }
 
 ULONG WINAPI IWineD3DIndexBufferImpl_Release(IWineD3DIndexBuffer *iface) {
     IWineD3DIndexBufferImpl *This = (IWineD3DIndexBufferImpl *)iface;
-    ULONG ref;
-    TRACE("(%p) : Releasing from %ld\n", This, This->resource.ref);
-    ref = InterlockedDecrement(&This->resource.ref);
+    ULONG ref = InterlockedDecrement(&This->resource.ref);
+    TRACE("(%p) : Releasing from %ld\n", This, ref + 1);
     if (ref == 0) {
         HeapFree(GetProcessHeap(), 0, This->allocatedMemory);
         IWineD3DDevice_Release((IWineD3DDevice *)This->resource.wineD3DDevice);
Index: dlls/wined3d/resource.c
===================================================================
RCS file: /home/wine/wine/dlls/wined3d/resource.c,v
retrieving revision 1.4
diff -u -r1.4 resource.c
--- dlls/wined3d/resource.c	9 Jan 2005 17:37:02 -0000	1.4
+++ dlls/wined3d/resource.c	18 Jan 2005 14:04:45 -0000
@@ -36,15 +36,15 @@
 
 ULONG WINAPI IWineD3DResourceImpl_AddRef(IWineD3DResource *iface) {
     IWineD3DResourceImpl *This = (IWineD3DResourceImpl *)iface;
-    TRACE("(%p) : AddRef increasing from %ld\n", This, This->resource.ref);
-    return InterlockedIncrement(&This->resource.ref);
+    ULONG ref = InterlockedIncrement(&This->resource.ref);
+    TRACE("(%p) : AddRef increasing from %ld\n", This, ref - 1);
+    return ref; 
 }
 
 ULONG WINAPI IWineD3DResourceImpl_Release(IWineD3DResource *iface) {
     IWineD3DResourceImpl *This = (IWineD3DResourceImpl *)iface;
-    ULONG ref;
-    TRACE("(%p) : Releasing from %ld\n", This, This->resource.ref);
-    ref = InterlockedDecrement(&This->resource.ref);
+    ULONG ref = InterlockedDecrement(&This->resource.ref);
+    TRACE("(%p) : Releasing from %ld\n", This, ref + 1);
     if (ref == 0) {
         IWineD3DDevice_Release((IWineD3DDevice *)This->resource.wineD3DDevice);
         HeapFree(GetProcessHeap(), 0, This);
Index: dlls/wined3d/surface.c
===================================================================
RCS file: /home/wine/wine/dlls/wined3d/surface.c,v
retrieving revision 1.3
diff -u -r1.3 surface.c
--- dlls/wined3d/surface.c	18 Jan 2005 11:42:29 -0000	1.3
+++ dlls/wined3d/surface.c	18 Jan 2005 14:04:45 -0000
@@ -38,16 +38,16 @@
 
 ULONG WINAPI IWineD3DSurfaceImpl_AddRef(IWineD3DSurface *iface) {
     IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *)iface;
-    TRACE("(%p) : AddRef increasing from %ld\n", This, This->resource.ref);
+    ULONG ref = InterlockedIncrement(&This->resource.ref);
+    TRACE("(%p) : AddRef increasing from %ld\n", This,ref - 1);
     IUnknown_AddRef(This->resource.parent);
-    return InterlockedIncrement(&This->resource.ref);
+    return ref;
 }
 
 ULONG WINAPI IWineD3DSurfaceImpl_Release(IWineD3DSurface *iface) {
     IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *)iface;
-    ULONG ref;
-    TRACE("(%p) : Releasing from %ld\n", This, This->resource.ref);
-    ref = InterlockedDecrement(&This->resource.ref);
+    ULONG ref = InterlockedDecrement(&This->resource.ref);
+    TRACE("(%p) : Releasing from %ld\n", This, ref + 1);
     if (ref == 0) {
         HeapFree(GetProcessHeap(), 0, This->allocatedMemory);
         IWineD3DDevice_Release((IWineD3DDevice *)This->resource.wineD3DDevice);
Index: dlls/wined3d/vertexbuffer.c
===================================================================
RCS file: /home/wine/wine/dlls/wined3d/vertexbuffer.c,v
retrieving revision 1.7
diff -u -r1.7 vertexbuffer.c
--- dlls/wined3d/vertexbuffer.c	17 Jan 2005 13:44:57 -0000	1.7
+++ dlls/wined3d/vertexbuffer.c	18 Jan 2005 14:04:46 -0000
@@ -38,16 +38,16 @@
 
 ULONG WINAPI IWineD3DVertexBufferImpl_AddRef(IWineD3DVertexBuffer *iface) {
     IWineD3DVertexBufferImpl *This = (IWineD3DVertexBufferImpl *)iface;
-    TRACE("(%p) : AddRef increasing from %ld\n", This, This->resource.ref);
+    ULONG ref = InterlockedIncrement(&This->resource.ref);
+    TRACE("(%p) : AddRef increasing from %ld\n", This, ref - 1);
     IUnknown_AddRef(This->resource.parent);
-    return InterlockedIncrement(&This->resource.ref);
+    return ref;
 }
 
 ULONG WINAPI IWineD3DVertexBufferImpl_Release(IWineD3DVertexBuffer *iface) {
     IWineD3DVertexBufferImpl *This = (IWineD3DVertexBufferImpl *)iface;
-    ULONG ref;
-    TRACE("(%p) : Releasing from %ld\n", This, This->resource.ref);
-    ref = InterlockedDecrement(&This->resource.ref);
+    ULONG ref = InterlockedDecrement(&This->resource.ref);
+    TRACE("(%p) : Releasing from %ld\n", This, ref + 1);
     if (ref == 0) {
         HeapFree(GetProcessHeap(), 0, This->allocatedMemory);
         IWineD3DDevice_Release((IWineD3DDevice *)This->resource.wineD3DDevice);


More information about the wine-patches mailing list