ddraw: Check for NULL pointers in DeleteViewport.

This commit is contained in:
Stefan Dösinger 2013-01-26 13:39:44 +01:00 committed by Alexandre Julliard
parent b822c259fd
commit 8e6e420a9d
1 changed files with 10 additions and 2 deletions

View File

@ -817,6 +817,12 @@ static HRESULT WINAPI d3d_device3_DeleteViewport(IDirect3DDevice3 *iface, IDirec
TRACE("iface %p, viewport %p.\n", iface, viewport);
if (!vp)
{
WARN("NULL viewport, returning DDERR_INVALIDPARAMS\n");
return DDERR_INVALIDPARAMS;
}
wined3d_mutex_lock();
if (vp->active_device != device)
@ -841,7 +847,8 @@ static HRESULT WINAPI d3d_device2_DeleteViewport(IDirect3DDevice2 *iface, IDirec
TRACE("iface %p, viewport %p.\n", iface, viewport);
return d3d_device3_DeleteViewport(&device->IDirect3DDevice3_iface, &vp->IDirect3DViewport3_iface);
return d3d_device3_DeleteViewport(&device->IDirect3DDevice3_iface,
vp ? &vp->IDirect3DViewport3_iface : NULL);
}
static HRESULT WINAPI d3d_device1_DeleteViewport(IDirect3DDevice *iface, IDirect3DViewport *viewport)
@ -851,7 +858,8 @@ static HRESULT WINAPI d3d_device1_DeleteViewport(IDirect3DDevice *iface, IDirect
TRACE("iface %p, viewport %p.\n", iface, viewport);
return d3d_device3_DeleteViewport(&device->IDirect3DDevice3_iface, &vp->IDirect3DViewport3_iface);
return d3d_device3_DeleteViewport(&device->IDirect3DDevice3_iface,
vp ? &vp->IDirect3DViewport3_iface : NULL);
}
/*****************************************************************************