wined3d: Don't leak memory in IWineD3DPixelShaderImpl_GenerateShader().
Henri Verbeet
hverbeet at codeweavers.com
Tue Dec 9 02:52:38 CST 2008
This fixes a regression introduced by commit
0bf32b12f5a97045c4c2785260961e53184c29ce.
---
dlls/wined3d/pixelshader.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/dlls/wined3d/pixelshader.c b/dlls/wined3d/pixelshader.c
index 0557d86..6a4d7d5 100644
--- a/dlls/wined3d/pixelshader.c
+++ b/dlls/wined3d/pixelshader.c
@@ -275,13 +275,18 @@ static void pshader_set_limits(
static inline GLuint IWineD3DPixelShaderImpl_GenerateShader(
IWineD3DPixelShaderImpl *This) {
SHADER_BUFFER buffer;
+ GLuint shader;
buffer.buffer = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, SHADER_PGMSIZE);
buffer.bsize = 0;
buffer.lineNo = 0;
buffer.newline = TRUE;
- return ((IWineD3DDeviceImpl *)This->baseShader.device)->shader_backend->shader_generate_pshader((IWineD3DPixelShader *) This, &buffer);
+ shader = ((IWineD3DDeviceImpl *)This->baseShader.device)->shader_backend->shader_generate_pshader((IWineD3DPixelShader *)This, &buffer);
+
+ HeapFree(GetProcessHeap(), 0, buffer.buffer);
+
+ return shader;
}
static HRESULT WINAPI IWineD3DPixelShaderImpl_SetFunction(IWineD3DPixelShader *iface, CONST DWORD *pFunction) {
--
1.5.6.4
--------------060001040509070102020103--
More information about the wine-patches
mailing list