general question..
Chris Ahrendt
celticht32 at aol.com
Tue Jul 22 15:23:01 CDT 2008
Vitaliy Margolen wrote:
> 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?
ok it was late when I was writing this =)
the glCtx and the leave critical section can be moved back into the main
routine.. the hdc and hwnd are globals so thats not a problem...
next question is does the hdc and hwnd memory allocation get freed in
the releaseDC and destroy window calls before the nulls?
Chris
More information about the wine-devel
mailing list