general question..
Vitaliy Margolen
wine-devel at kievinfo.com
Tue Jul 22 00:04:03 CDT 2008
Chris Ahrendt wrote:
> fail:
> if(wined3d_fake_gl_context_hdc)
> ReleaseDC(wined3d_fake_gl_context_hwnd,
> wined3d_fake_gl_context_hdc);
> wined3d_fake_gl_context_hdc = NULL;
> if(wined3d_fake_gl_context_hwnd)
> DestroyWindow(wined3d_fake_gl_context_hwnd);
> wined3d_fake_gl_context_hwnd = NULL;
> if(glCtx) pwglDeleteContext(glCtx);
> LeaveCriticalSection(&wined3d_fake_gl_context_cs);
> return FALSE;
>
> into a routine and then do a
>
> return fakeContextFail(glCtx);
That will turn into nightmare when tracking a locking problem down. Call to
LeaveCriticalSection should always be in the same function as
EnterCriticalSection. Same applies to any resource that you do not want to
leak. That is much more important then calling a function a "routine" and
replacing all goto's with that function call.
Also I'd like to show how you can free local variables?
More information about the wine-devel
mailing list