intl/icu/source/tools/tzcode/ialloc.c

Wed, 31 Dec 2014 07:22:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 07:22:50 +0100
branch
TOR_BUG_3246
changeset 4
fc2d59ddac77
permissions
-rw-r--r--

Correct previous dual key logic pending first delivery installment.

     1 /*
     2 ** This file is in the public domain, so clarified as of
     3 ** 2006-07-17 by Arthur David Olson.
     4 */
     6 #ifndef lint
     7 #ifndef NOID
     8 static char	elsieid[] = "@(#)ialloc.c	8.30";
     9 #endif /* !defined NOID */
    10 #endif /* !defined lint */
    12 /*LINTLIBRARY*/
    14 #include "private.h"
    16 #define nonzero(n)	(((n) == 0) ? 1 : (n))
    18 char *
    19 imalloc(n)
    20 const int	n;
    21 {
    22 	return malloc((size_t) nonzero(n));
    23 }
    25 char *
    26 icalloc(nelem, elsize)
    27 int	nelem;
    28 int	elsize;
    29 {
    30 	if (nelem == 0 || elsize == 0)
    31 		nelem = elsize = 1;
    32 	return calloc((size_t) nelem, (size_t) elsize);
    33 }
    35 void *
    36 irealloc(pointer, size)
    37 void * const	pointer;
    38 const int	size;
    39 {
    40 	if (pointer == NULL)
    41 		return imalloc(size);
    42 	return realloc((void *) pointer, (size_t) nonzero(size));
    43 }
    45 char *
    46 icatalloc(old, new)
    47 char * const		old;
    48 const char * const	new;
    49 {
    50 	register char *	result;
    51 	register int	oldsize, newsize;
    53 	newsize = (new == NULL) ? 0 : strlen(new);
    54 	if (old == NULL)
    55 		oldsize = 0;
    56 	else if (newsize == 0)
    57 		return old;
    58 	else	oldsize = strlen(old);
    59 	if ((result = irealloc(old, oldsize + newsize + 1)) != NULL)
    60 		if (new != NULL)
    61 			(void) strcpy(result + oldsize, new);
    62 	return result;
    63 }
    65 char *
    66 icpyalloc(string)
    67 const char * const	string;
    68 {
    69 	return icatalloc((char *) NULL, string);
    70 }
    72 void
    73 ifree(p)
    74 char * const	p;
    75 {
    76 	if (p != NULL)
    77 		(void) free(p);
    78 }
    80 void
    81 icfree(p)
    82 char * const	p;
    83 {
    84 	if (p != NULL)
    85 		(void) free(p);
    86 }

mercurial