Stefan Dösinger : wined3d: Check error conditions before creating the object.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Feb 14 09:25:36 CST 2007
Module: wine
Branch: master
Commit: 0ddd236480fa1cf9e3ef1c3b01bdc0f1d335f2b5
URL: http://source.winehq.org/git/wine.git/?a=commit;h=0ddd236480fa1cf9e3ef1c3b01bdc0f1d335f2b5
Author: Stefan Dösinger <stefan at codeweavers.com>
Date: Tue Feb 13 20:24:39 2007 +0100
wined3d: Check error conditions before creating the object.
---
dlls/wined3d/device.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 5804df8..2315a45 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -505,13 +505,18 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateVertexBuffer(IWineD3DDevice *ifac
WINED3DFORMAT Format = WINED3DFMT_VERTEXDATA; /* Dummy format for now */
int dxVersion = ( (IWineD3DImpl *) This->wineD3D)->dxVersion;
BOOL conv;
+
+ if(Size == 0) {
+ WARN("Size 0 requested, returning WINED3DERR_INVALIDCALL\n");
+ *ppVertexBuffer = NULL;
+ return WINED3DERR_INVALIDCALL;
+ }
+
D3DCREATERESOURCEOBJECTINSTANCE(object, VertexBuffer, WINED3DRTYPE_VERTEXBUFFER, Size)
TRACE("(%p) : Size=%d, Usage=%d, FVF=%x, Pool=%d - Memory@%p, Iface@%p\n", This, Size, Usage, FVF, Pool, object->resource.allocatedMemory, object);
*ppVertexBuffer = (IWineD3DVertexBuffer *)object;
- if(Size == 0) return WINED3DERR_INVALIDCALL;
-
if (Pool == WINED3DPOOL_DEFAULT ) { /* Allocate some system memory for now */
object->resource.allocatedMemory = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, object->resource.size);
}
More information about the wine-cvs
mailing list