[PATCH] WineD3D: Some ARB code fixes=0A=

Stefan Doesinger stefan at codeweavers.com
Fri Sep 5 13:45:38 CDT 2008


=0A=
Fixes another memleak and a copypaste error=0A=
---=0A=
 dlls/wined3d/arb_program_shader.c |   10 ++++++++--=0A=
 1 files changed, 8 insertions(+), 2 deletions(-)=0A=
=0A=
diff --git a/dlls/wined3d/arb_program_shader.c =
b/dlls/wined3d/arb_program_shader.c=0A=
index c6990f5..0ed903c 100644=0A=
--- a/dlls/wined3d/arb_program_shader.c=0A=
+++ b/dlls/wined3d/arb_program_shader.c=0A=
@@ -2894,7 +2894,7 @@ static GLuint gen_arbfp_ffp_shader(struct =
ffp_settings *settings, IWineD3DStateB=0A=
     if (glGetError() =3D=3D GL_INVALID_OPERATION) {=0A=
         GLint pos;=0A=
         glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &pos);=0A=
-        FIXME("Vertex program error at position %d: %s\n", pos,=0A=
+        FIXME("Fragment program error at position %d: %s\n", pos,=0A=
               debugstr_a((const char =
*)glGetString(GL_PROGRAM_ERROR_STRING_ARB)));=0A=
     }=0A=
     HeapFree(GetProcessHeap(), 0, buffer.buffer);=0A=
@@ -3442,7 +3442,10 @@ GLuint gen_yuv_shader(IWineD3DDeviceImpl *device, =
WINED3DFORMAT fmt, GLenum text=0A=
     checkGLcall("GL_EXTCALL(glGenProgramsARB(1, &shader))");=0A=
     GL_EXTCALL(glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, shader));=0A=
     checkGLcall("glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, shader)");=0A=
-    if(!shader) return 0;=0A=
+    if(!shader) {=0A=
+        HeapFree(GetProcessHeap(), 0, buffer.buffer);=0A=
+        return 0;=0A=
+    }=0A=
 =0A=
     /* The YUY2 and UYVY formats contain two pixels packed into a 32 =
bit macropixel,=0A=
      * giving effectively 16 bit per pixel. The color consists of a =
luminance(Y) and=0A=
@@ -3491,10 +3494,12 @@ GLuint gen_yuv_shader(IWineD3DDeviceImpl =
*device, WINED3DFORMAT fmt, GLenum text=0A=
 =0A=
     if(fmt =3D=3D WINED3DFMT_UYVY || fmt =3D=3DWINED3DFMT_YUY2) {=0A=
         if(gen_planar_yuv_read(&buffer, fmt, textype, =
&luminance_component) =3D=3D FALSE) {=0A=
+            HeapFree(GetProcessHeap(), 0, buffer.buffer);=0A=
             return 0;=0A=
         }=0A=
     } else {=0A=
         if(gen_yv12_read(&buffer, fmt, textype, &luminance_component) =
=3D=3D FALSE) {=0A=
+            HeapFree(GetProcessHeap(), 0, buffer.buffer);=0A=
             return 0;=0A=
         }=0A=
     }=0A=
@@ -3519,6 +3524,7 @@ GLuint gen_yuv_shader(IWineD3DDeviceImpl *device, =
WINED3DFORMAT fmt, GLenum text=0A=
         FIXME("Fragment program error at position %d: %s\n", pos,=0A=
               debugstr_a((const char =
*)glGetString(GL_PROGRAM_ERROR_STRING_ARB)));=0A=
     }=0A=
+    HeapFree(GetProcessHeap(), 0, buffer.buffer);=0A=
 =0A=
     if(fmt =3D=3D WINED3DFMT_YUY2) {=0A=
         if(textype =3D=3D GL_TEXTURE_RECTANGLE_ARB) {=0A=
-- =0A=
1.5.6.4=0A=
=0A=

------=_NextPart_000_001B_01C9132F.9AA6C0A0--




More information about the wine-patches mailing list