[1/2] ddraw: release interfaces when exiting with error

Stefan Dösinger stefandoesinger at gmx.at
Thu Feb 21 11:13:08 CST 2008


Am Mittwoch, 20. Februar 2008 22:03:51 schrieben Sie:
> ---
>   dlls/ddraw/texture.c |    2 ++
>   1 files changed, 2 insertions(+), 0 deletions(-)
Just a general comment(not specific to comments): For such cleanup work it 
works quite nice to use goto(!), as shown below. Your patch is OK as it is, 
but I think its a good idea to use this scheme in all places because it helps 
to prevent new problems from coming in when the code is changed.

void *a = NULL, *b = NULL, *c = NULL;

a = malloc(10);
if(!a) goto error;
b = malloc(10);
if(!b) goto error;
c = malloc(10);
if(!c) goto error;
if(dosomethingelse() == FAIL) goto error;

return SUCCESS;

error:
f(c) free(c);
f(b) free(b);
f(a) free(a);
return FAIL;



More information about the wine-devel mailing list