Dennis Schridde schreef:
> Am Mittwoch, 13. Juni 2007 schrieb [EMAIL PROTECTED]:
>   
>> I no could tell where original function came from.  It was add to
>> tex.c from ???
>> It crash for me with free memory already free.
>> So this fix it.
>>
>> Also, I find that lots physfs routines that use copy, use uninit
>> variables, but no seem to be problem?
>>     
> You mean we pass variables to i.e. PhysFS which then copies something into it?
> This should be ok in case the PhysFS docs don't say otherwise.
> Personaly I initialize every var on declaration, to prevent me from 
> forgetting 
> it in important places and to prevent such messages from eg. valgrind, but I 
> don't know what others think about this...
>   
My opinion is this: don't use a variable's value until it is first
written to. This could be much easier enforced if we would _not_ have to
declare variables at the beginning of each block but at the first point
where we need it (i.e. to write to it).
>> Index: tex.c
>> ===================================================================
>> --- tex.c    (revision 1494)
>> +++ tex.c    (working copy)
>> @@ -264,7 +264,7 @@
>>
>>  void iV_unloadImage(iV_Image *image)
>>  {
>> -    if (image)
>> +    if (image->bmp)
>>      {
>>              free(image->bmp);
>>              image->bmp = NULL;
>>     
> The idea of this if was probably to check whether we got passed a NULL 
> pointer, not to check whether bmp was allready freed.
> I don't know what ISO-C says, but I would guess that it is legal to call free 
> on a NULL pointer... Am I wrong about this?
>   
free(NULL) is very much legal yes. It should be similar to a no-op. If
image is NULL however, then you're dereferencing a NULL pointer to
receive the bmp pointer, which is _not_ legal.

-- 
Giel


Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev

Reply via email to