mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-24 17:49:52 +01:00
add a few NULL checks
This commit is contained in:
parent
3e198a628f
commit
befbb19a2e
@ -57,7 +57,7 @@ HRESULT ddp_SetEntries(
|
|||||||
This->data_rgb[255].rgbReserved = 0;
|
This->data_rgb[255].rgbReserved = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_ddraw->primary && g_ddraw->primary->palette == This && g_ddraw->render.run)
|
if (g_ddraw && g_ddraw->primary && g_ddraw->primary->palette == This && g_ddraw->render.run)
|
||||||
{
|
{
|
||||||
InterlockedExchange(&g_ddraw->render.palette_updated, TRUE);
|
InterlockedExchange(&g_ddraw->render.palette_updated, TRUE);
|
||||||
ReleaseSemaphore(g_ddraw->render.sem, 1, NULL);
|
ReleaseSemaphore(g_ddraw->render.sem, 1, NULL);
|
||||||
|
@ -39,7 +39,8 @@ HRESULT dds_Blt(
|
|||||||
dbg_dump_dds_blt_flags(dwFlags);
|
dbg_dump_dds_blt_flags(dwFlags);
|
||||||
dbg_dump_dds_blt_fx_flags((dwFlags & DDBLT_DDFX) && lpDDBltFx ? lpDDBltFx->dwDDFX : 0);
|
dbg_dump_dds_blt_fx_flags((dwFlags & DDBLT_DDFX) && lpDDBltFx ? lpDDBltFx->dwDDFX : 0);
|
||||||
|
|
||||||
if (g_ddraw->iskkndx &&
|
if (g_ddraw &&
|
||||||
|
g_ddraw->iskkndx &&
|
||||||
(dwFlags & DDBLT_COLORFILL) &&
|
(dwFlags & DDBLT_COLORFILL) &&
|
||||||
lpDestRect &&
|
lpDestRect &&
|
||||||
lpDestRect->right == 640 &&
|
lpDestRect->right == 640 &&
|
||||||
@ -239,7 +240,7 @@ HRESULT dds_Blt(
|
|||||||
{
|
{
|
||||||
RGBQUAD* quad =
|
RGBQUAD* quad =
|
||||||
src_surface->palette ? src_surface->palette->data_rgb :
|
src_surface->palette ? src_surface->palette->data_rgb :
|
||||||
g_ddraw->primary && g_ddraw->primary->palette ? g_ddraw->primary->palette->data_rgb :
|
g_ddraw && g_ddraw->primary && g_ddraw->primary->palette ? g_ddraw->primary->palette->data_rgb :
|
||||||
NULL;
|
NULL;
|
||||||
|
|
||||||
if (quad)
|
if (quad)
|
||||||
@ -382,7 +383,7 @@ HRESULT dds_Blt(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((This->caps & DDSCAPS_PRIMARYSURFACE) && g_ddraw->render.run)
|
if ((This->caps & DDSCAPS_PRIMARYSURFACE) && g_ddraw && g_ddraw->render.run)
|
||||||
{
|
{
|
||||||
InterlockedExchange(&g_ddraw->render.surface_updated, TRUE);
|
InterlockedExchange(&g_ddraw->render.surface_updated, TRUE);
|
||||||
|
|
||||||
@ -523,7 +524,7 @@ HRESULT dds_BltFast(
|
|||||||
{
|
{
|
||||||
RGBQUAD* quad =
|
RGBQUAD* quad =
|
||||||
src_surface->palette ? src_surface->palette->data_rgb :
|
src_surface->palette ? src_surface->palette->data_rgb :
|
||||||
g_ddraw->primary && g_ddraw->primary->palette ? g_ddraw->primary->palette->data_rgb :
|
g_ddraw && g_ddraw->primary && g_ddraw->primary->palette ? g_ddraw->primary->palette->data_rgb :
|
||||||
NULL;
|
NULL;
|
||||||
|
|
||||||
if (quad)
|
if (quad)
|
||||||
@ -603,7 +604,7 @@ HRESULT dds_BltFast(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((This->caps & DDSCAPS_PRIMARYSURFACE) && g_ddraw->render.run)
|
if ((This->caps & DDSCAPS_PRIMARYSURFACE) && g_ddraw && g_ddraw->render.run)
|
||||||
{
|
{
|
||||||
InterlockedExchange(&g_ddraw->render.surface_updated, TRUE);
|
InterlockedExchange(&g_ddraw->render.surface_updated, TRUE);
|
||||||
|
|
||||||
@ -652,7 +653,7 @@ HRESULT dds_GetSurfaceDesc(IDirectDrawSurfaceImpl* This, LPDDSURFACEDESC lpDDSur
|
|||||||
lpDDSurfaceDesc->ddsCaps.dwCaps = This->caps;
|
lpDDSurfaceDesc->ddsCaps.dwCaps = This->caps;
|
||||||
lpDDSurfaceDesc->dwBackBufferCount = This->backbuffer_count;
|
lpDDSurfaceDesc->dwBackBufferCount = This->backbuffer_count;
|
||||||
|
|
||||||
if (!g_ddraw->novidmem || (This->caps & (DDSCAPS_PRIMARYSURFACE | DDSCAPS_BACKBUFFER)))
|
if ((g_ddraw && !g_ddraw->novidmem) || (This->caps & (DDSCAPS_PRIMARYSURFACE | DDSCAPS_BACKBUFFER)))
|
||||||
{
|
{
|
||||||
lpDDSurfaceDesc->ddsCaps.dwCaps |= DDSCAPS_VIDEOMEMORY;
|
lpDDSurfaceDesc->ddsCaps.dwCaps |= DDSCAPS_VIDEOMEMORY;
|
||||||
}
|
}
|
||||||
@ -729,7 +730,7 @@ HRESULT dds_Flip(IDirectDrawSurfaceImpl* This, IDirectDrawSurfaceImpl* lpDDSurfa
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (This->caps & DDSCAPS_PRIMARYSURFACE && g_ddraw->render.run)
|
if ((This->caps & DDSCAPS_PRIMARYSURFACE) && g_ddraw && g_ddraw->render.run)
|
||||||
{
|
{
|
||||||
This->last_flip_tick = timeGetTime();
|
This->last_flip_tick = timeGetTime();
|
||||||
|
|
||||||
@ -829,7 +830,7 @@ HRESULT dds_GetDC(IDirectDrawSurfaceImpl* This, HDC FAR* lpHDC)
|
|||||||
|
|
||||||
RGBQUAD* data =
|
RGBQUAD* data =
|
||||||
This->palette ? This->palette->data_rgb :
|
This->palette ? This->palette->data_rgb :
|
||||||
g_ddraw->primary && g_ddraw->primary->palette ? g_ddraw->primary->palette->data_rgb :
|
g_ddraw && g_ddraw->primary && g_ddraw->primary->palette ? g_ddraw->primary->palette->data_rgb :
|
||||||
NULL;
|
NULL;
|
||||||
|
|
||||||
HDC dc = This->hdc;
|
HDC dc = This->hdc;
|
||||||
@ -904,7 +905,7 @@ HRESULT dds_Lock(
|
|||||||
DWORD dwFlags,
|
DWORD dwFlags,
|
||||||
HANDLE hEvent)
|
HANDLE hEvent)
|
||||||
{
|
{
|
||||||
if (g_ddraw->lock_surfaces)
|
if (g_ddraw && g_ddraw->lock_surfaces)
|
||||||
EnterCriticalSection(&This->cs);
|
EnterCriticalSection(&This->cs);
|
||||||
|
|
||||||
dbg_dump_dds_lock_flags(dwFlags);
|
dbg_dump_dds_lock_flags(dwFlags);
|
||||||
@ -938,7 +939,7 @@ HRESULT dds_Lock(
|
|||||||
|
|
||||||
HRESULT dds_ReleaseDC(IDirectDrawSurfaceImpl* This, HDC hDC)
|
HRESULT dds_ReleaseDC(IDirectDrawSurfaceImpl* This, HDC hDC)
|
||||||
{
|
{
|
||||||
if ((This->caps & DDSCAPS_PRIMARYSURFACE) && g_ddraw->render.run)
|
if ((This->caps & DDSCAPS_PRIMARYSURFACE) && g_ddraw && g_ddraw->render.run)
|
||||||
{
|
{
|
||||||
InterlockedExchange(&g_ddraw->render.surface_updated, TRUE);
|
InterlockedExchange(&g_ddraw->render.surface_updated, TRUE);
|
||||||
|
|
||||||
@ -991,7 +992,7 @@ HRESULT dds_SetPalette(IDirectDrawSurfaceImpl* This, IDirectDrawPaletteImpl* lpD
|
|||||||
if (This->palette)
|
if (This->palette)
|
||||||
IDirectDrawPalette_Release(This->palette);
|
IDirectDrawPalette_Release(This->palette);
|
||||||
|
|
||||||
if (This->caps & DDSCAPS_PRIMARYSURFACE)
|
if ((This->caps & DDSCAPS_PRIMARYSURFACE) && g_ddraw)
|
||||||
{
|
{
|
||||||
EnterCriticalSection(&g_ddraw->cs);
|
EnterCriticalSection(&g_ddraw->cs);
|
||||||
This->palette = lpDDPalette;
|
This->palette = lpDDPalette;
|
||||||
@ -1014,7 +1015,7 @@ HRESULT dds_SetPalette(IDirectDrawSurfaceImpl* This, IDirectDrawPaletteImpl* lpD
|
|||||||
HRESULT dds_Unlock(IDirectDrawSurfaceImpl* This, LPRECT lpRect)
|
HRESULT dds_Unlock(IDirectDrawSurfaceImpl* This, LPRECT lpRect)
|
||||||
{
|
{
|
||||||
/* Hack for Warcraft II BNE and Diablo */
|
/* Hack for Warcraft II BNE and Diablo */
|
||||||
HWND hwnd = g_ddraw->bnet_active ? FindWindowEx(HWND_DESKTOP, NULL, "SDlgDialog", NULL) : NULL;
|
HWND hwnd = g_ddraw && g_ddraw->bnet_active ? FindWindowEx(HWND_DESKTOP, NULL, "SDlgDialog", NULL) : NULL;
|
||||||
|
|
||||||
if (hwnd && (This->caps & DDSCAPS_PRIMARYSURFACE))
|
if (hwnd && (This->caps & DDSCAPS_PRIMARYSURFACE))
|
||||||
{
|
{
|
||||||
@ -1069,7 +1070,7 @@ HRESULT dds_Unlock(IDirectDrawSurfaceImpl* This, LPRECT lpRect)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Hack for Star Trek Armada */
|
/* Hack for Star Trek Armada */
|
||||||
hwnd = g_ddraw->armadahack ? FindWindowEx(HWND_DESKTOP, NULL, "#32770", NULL) : NULL;
|
hwnd = g_ddraw && g_ddraw->armadahack ? FindWindowEx(HWND_DESKTOP, NULL, "#32770", NULL) : NULL;
|
||||||
|
|
||||||
if (hwnd && (This->caps & DDSCAPS_PRIMARYSURFACE))
|
if (hwnd && (This->caps & DDSCAPS_PRIMARYSURFACE))
|
||||||
{
|
{
|
||||||
@ -1107,7 +1108,7 @@ HRESULT dds_Unlock(IDirectDrawSurfaceImpl* This, LPRECT lpRect)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ((This->caps & DDSCAPS_PRIMARYSURFACE) && g_ddraw->render.run)
|
if ((This->caps & DDSCAPS_PRIMARYSURFACE) && g_ddraw && g_ddraw->render.run)
|
||||||
{
|
{
|
||||||
InterlockedExchange(&g_ddraw->render.surface_updated, TRUE);
|
InterlockedExchange(&g_ddraw->render.surface_updated, TRUE);
|
||||||
|
|
||||||
@ -1123,7 +1124,7 @@ HRESULT dds_Unlock(IDirectDrawSurfaceImpl* This, LPRECT lpRect)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_ddraw->lock_surfaces)
|
if (g_ddraw && g_ddraw->lock_surfaces)
|
||||||
LeaveCriticalSection(&This->cs);
|
LeaveCriticalSection(&This->cs);
|
||||||
|
|
||||||
return DD_OK;
|
return DD_OK;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user