Re: [CODE] CREATE() buglet

From: George (greerga@CIRCLEMUD.ORG)
Date: 07/06/98


On Mon, 6 Jul 1998, Dean Takemori wrote:

>#define CREATE(result, type, number)  do {\
>  if ((number <= 0) || \
>      !((result) = (type *)calloc((number),sizeof(type))))\
>          { perror("malloc failure"); abort(); } } while(0)

Well, if you ask for 0 bytes, you should write 0 bytes to what you get. :)

I'll forward it to the bug database in case Jeremy wants to add the check.

>#define RECREATE(result,type,number) do {\
>  if ((number < 0) || \
>      !((result)=(type*)realloc((result),sizeof(type)*(number))))\
>          { perror("realloc failure"); abort(); } } while(0)

Calling realloc() with 0 size is the same as free().

--
George Greer, greerga@circlemud.org | Genius may have its limitations, but
http://patches.van.ml.org/          | stupidity is not thus handicapped.
http://www.van.ml.org/CircleMUD/    |                  -- Elbert Hubbard


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/15/00 PST