IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 30500


Ignore:
Timestamp:
Feb 7, 2011, 4:27:17 PM (15 years ago)
Author:
eugene
Message:

define ALLOCATE_ZERO macro (memsets allocated memory to zero) and add protecting brackets (probably not needed)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20101205/Ohana/src/libohana/include/ohana_allocate.h

    r12332 r30500  
    1717
    1818# define ALLOCATE(PTR,TYPE,SIZE) \
    19   PTR = (TYPE *) ohana_malloc (__FILE__, __LINE__, (SIZE), sizeof(TYPE))
     19  { PTR = (TYPE *) ohana_malloc (__FILE__, __LINE__, (SIZE), sizeof(TYPE)) }
     20# define ALLOCATE_ZERO(PTR,TYPE,SIZE)                                   \
     21  { PTR = (TYPE *) ohana_malloc (__FILE__, __LINE__, (SIZE), sizeof(TYPE)); memset (PTR, 0, (SIZE)*sizeof(TYPE)); }
    2022# define REALLOCATE(PTR,TYPE,SIZE) \
    21   PTR = (TYPE *) ohana_realloc(__FILE__, __LINE__, PTR, (SIZE), sizeof(TYPE));
    22 # define CHECK_REALLOCATE(PTR,TYPE,SIZE,NCURR,DELTA) \
    23   if ((NCURR) >= (SIZE)) { SIZE += DELTA; \
    24   PTR = (TYPE *) ohana_realloc(__FILE__, __LINE__, PTR, (SIZE), sizeof(TYPE)); }
    25 # define FREE(PTR) if (PTR != NULL) { ohana_free (__FILE__, __LINE__, PTR); }
    26 # define free(PTR) ohana_free(__FILE__, __LINE__, PTR)
     23  { PTR = (TYPE *) ohana_realloc(__FILE__, __LINE__, PTR, (SIZE), sizeof(TYPE)); }
     24# define CHECK_REALLOCATE(PTR,TYPE,SIZE,NCURR,DELTA) {                  \
     25  if ((NCURR) >= (SIZE)) { SIZE += DELTA;                               \
     26    PTR = (TYPE *) ohana_realloc(__FILE__, __LINE__, PTR, (SIZE), sizeof(TYPE)); } }
     27# define FREE(PTR) { if (PTR != NULL) { ohana_free (__FILE__, __LINE__, PTR); } }
     28# define free(PTR) { ohana_free(__FILE__, __LINE__, PTR); }
    2729
    2830# else
     
    3335
    3436# ifndef ALLOCATE
    35 # define ALLOCATE(PTR,TYPE,SIZE)  \
    36   PTR = (TYPE *) malloc ((unsigned)(MAX(((SIZE)*((int)sizeof(TYPE))),1))); \
    37   if (PTR == NULL) { \
    38     fprintf(stderr,"failed malloc at %d in %s\n", __LINE__, __FILE__);\
    39     exit (10); }
    40 # define REALLOCATE(PTR,TYPE,SIZE) \
     37# define ALLOCATE(PTR,TYPE,SIZE) {                                      \
     38  PTR = (TYPE *) malloc ((size_t)(MAX(((SIZE)*((int)sizeof(TYPE))),1))); \
     39  if (PTR == NULL) {                                                    \
     40    fprintf(stderr,"failed malloc at %d in %s\n", __LINE__, __FILE__);  \
     41    exit (10); } }             
     42
     43# define ALLOCATE_ZERO(PTR,TYPE,SIZE) {                                 \
     44  PTR = (TYPE *) malloc ((size_t)(MAX(((SIZE)*((int)sizeof(TYPE))),1))); \
     45  if (PTR == NULL) {                                                    \
     46    fprintf(stderr,"failed malloc at %d in %s\n", __LINE__, __FILE__);  \
     47    exit (10); \
     48  } memset (PTR, 0, (SIZE)*sizeof(TYPE)); }
     49
     50# define REALLOCATE(PTR,TYPE,SIZE) {                                    \
    4151  PTR = (TYPE *) realloc(PTR,(unsigned)(MAX(((SIZE)*((int)sizeof(TYPE))),1))); \
    42   if (PTR == NULL) { \
    43     fprintf(stderr,"failed realloc at %d in %s\n", __LINE__, __FILE__);\
    44     exit (10); }
    45 # define CHECK_REALLOCATE(PTR,TYPE,SIZE,NCURR,DELTA) \
    46   if ((NCURR) >= (SIZE)) { \
    47     SIZE += DELTA; \
     52  if (PTR == NULL) {                                                    \
     53    fprintf(stderr,"failed realloc at %d in %s\n", __LINE__, __FILE__); \
     54    exit (10); } }
     55
     56# define CHECK_REALLOCATE(PTR,TYPE,SIZE,NCURR,DELTA) {  \
     57  if ((NCURR) >= (SIZE)) {                              \
     58    SIZE += DELTA;                                                      \
    4859    PTR = (TYPE *) realloc(PTR,(unsigned)(MAX(((SIZE)*((int)sizeof(TYPE))),1))); \
    49     if (PTR == NULL) { \
    50       fprintf(stderr,"failed realloc increment at %d in %s\n", __LINE__, __FILE__);\
    51       exit (10); } }
    52 # define FREE(PTR) if (PTR != NULL) { free (PTR); }
     60    if (PTR == NULL) {                                                  \
     61      fprintf(stderr,"failed realloc increment at %d in %s\n", __LINE__, __FILE__); \
     62      exit (10); } } }
     63
     64# define FREE(PTR) { if (PTR != NULL) { free (PTR); } }
    5365# endif /* ALLOCATE */
    5466
Note: See TracChangeset for help on using the changeset viewer.