"Fossies" - the Fresh Open Source Software Archive

Member "putty-0.73/contrib/cygtermd/malloc.h" (22 Sep 2019, 1486 Bytes) of package /linux/misc/putty-0.73.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "malloc.h" see the Fossies "Dox" file reference documentation.

    1 /*
    2  * malloc.h: safe wrappers around malloc, realloc, free, strdup
    3  */
    4 
    5 #ifndef UMLWRAP_MALLOC_H
    6 #define UMLWRAP_MALLOC_H
    7 
    8 #include <stddef.h>
    9 
   10 /*
   11  * smalloc should guarantee to return a useful pointer - Halibut
   12  * can do nothing except die when it's out of memory anyway.
   13  */
   14 void *smalloc(size_t size);
   15 
   16 /*
   17  * srealloc should guaranteeably be able to realloc NULL
   18  */
   19 void *srealloc(void *p, size_t size);
   20 
   21 /*
   22  * sfree should guaranteeably deal gracefully with freeing NULL
   23  */
   24 void sfree(void *p);
   25 
   26 /*
   27  * dupstr is like strdup, but with the never-return-NULL property
   28  * of smalloc (and also reliably defined in all environments :-)
   29  */
   30 char *dupstr(const char *s);
   31 
   32 /*
   33  * snew allocates one instance of a given type, and casts the
   34  * result so as to type-check that you're assigning it to the
   35  * right kind of pointer. Protects against allocation bugs
   36  * involving allocating the wrong size of thing.
   37  */
   38 #define snew(type) \
   39     ( (type *) smalloc (sizeof (type)) )
   40 
   41 /*
   42  * snewn allocates n instances of a given type, for arrays.
   43  */
   44 #define snewn(number, type) \
   45     ( (type *) smalloc ((number) * sizeof (type)) )
   46 
   47 /*
   48  * sresize wraps realloc so that you specify the new number of
   49  * elements and the type of the element, with the same type-
   50  * checking advantages. Also type-checks the input pointer.
   51  */
   52 #define sresize(array, number, type) \
   53     ( (void)sizeof((array)-(type *)0), \
   54       (type *) srealloc ((array), (number) * sizeof (type)) )
   55 
   56 #endif /* UMLWRAP_MALLOC_H */