Index: /branches/eam_branches/ipp-20101205/Ohana/src/libohana/include/ohana_allocate.h
===================================================================
--- /branches/eam_branches/ipp-20101205/Ohana/src/libohana/include/ohana_allocate.h	(revision 30499)
+++ /branches/eam_branches/ipp-20101205/Ohana/src/libohana/include/ohana_allocate.h	(revision 30500)
@@ -17,12 +17,14 @@
 
 # define ALLOCATE(PTR,TYPE,SIZE) \
-  PTR = (TYPE *) ohana_malloc (__FILE__, __LINE__, (SIZE), sizeof(TYPE))
+  { PTR = (TYPE *) ohana_malloc (__FILE__, __LINE__, (SIZE), sizeof(TYPE)) }
+# define ALLOCATE_ZERO(PTR,TYPE,SIZE)					\
+  { PTR = (TYPE *) ohana_malloc (__FILE__, __LINE__, (SIZE), sizeof(TYPE)); memset (PTR, 0, (SIZE)*sizeof(TYPE)); }
 # define REALLOCATE(PTR,TYPE,SIZE) \
-  PTR = (TYPE *) ohana_realloc(__FILE__, __LINE__, PTR, (SIZE), sizeof(TYPE));
-# define CHECK_REALLOCATE(PTR,TYPE,SIZE,NCURR,DELTA) \
-  if ((NCURR) >= (SIZE)) { SIZE += DELTA; \
-  PTR = (TYPE *) ohana_realloc(__FILE__, __LINE__, PTR, (SIZE), sizeof(TYPE)); }
-# define FREE(PTR) if (PTR != NULL) { ohana_free (__FILE__, __LINE__, PTR); }
-# define free(PTR) ohana_free(__FILE__, __LINE__, PTR)
+  { PTR = (TYPE *) ohana_realloc(__FILE__, __LINE__, PTR, (SIZE), sizeof(TYPE)); }
+# define CHECK_REALLOCATE(PTR,TYPE,SIZE,NCURR,DELTA) {			\
+  if ((NCURR) >= (SIZE)) { SIZE += DELTA;				\
+    PTR = (TYPE *) ohana_realloc(__FILE__, __LINE__, PTR, (SIZE), sizeof(TYPE)); } }
+# define FREE(PTR) { if (PTR != NULL) { ohana_free (__FILE__, __LINE__, PTR); } }
+# define free(PTR) { ohana_free(__FILE__, __LINE__, PTR); }
 
 # else 
@@ -33,22 +35,32 @@
 
 # ifndef ALLOCATE
-# define ALLOCATE(PTR,TYPE,SIZE)  \
-  PTR = (TYPE *) malloc ((unsigned)(MAX(((SIZE)*((int)sizeof(TYPE))),1))); \
-  if (PTR == NULL) { \
-    fprintf(stderr,"failed malloc at %d in %s\n", __LINE__, __FILE__);\
-    exit (10); } 
-# define REALLOCATE(PTR,TYPE,SIZE) \
+# define ALLOCATE(PTR,TYPE,SIZE) {					\
+  PTR = (TYPE *) malloc ((size_t)(MAX(((SIZE)*((int)sizeof(TYPE))),1))); \
+  if (PTR == NULL) {							\
+    fprintf(stderr,"failed malloc at %d in %s\n", __LINE__, __FILE__);	\
+    exit (10); } } 	       
+
+# define ALLOCATE_ZERO(PTR,TYPE,SIZE) {					\
+  PTR = (TYPE *) malloc ((size_t)(MAX(((SIZE)*((int)sizeof(TYPE))),1))); \
+  if (PTR == NULL) {							\
+    fprintf(stderr,"failed malloc at %d in %s\n", __LINE__, __FILE__);	\
+    exit (10); \
+  } memset (PTR, 0, (SIZE)*sizeof(TYPE)); }
+
+# define REALLOCATE(PTR,TYPE,SIZE) { 					\
   PTR = (TYPE *) realloc(PTR,(unsigned)(MAX(((SIZE)*((int)sizeof(TYPE))),1))); \
-  if (PTR == NULL) { \
-    fprintf(stderr,"failed realloc at %d in %s\n", __LINE__, __FILE__);\
-    exit (10); }
-# define CHECK_REALLOCATE(PTR,TYPE,SIZE,NCURR,DELTA) \
-  if ((NCURR) >= (SIZE)) { \
-    SIZE += DELTA; \
+  if (PTR == NULL) {							\
+    fprintf(stderr,"failed realloc at %d in %s\n", __LINE__, __FILE__);	\
+    exit (10); } }
+
+# define CHECK_REALLOCATE(PTR,TYPE,SIZE,NCURR,DELTA) { 	\
+  if ((NCURR) >= (SIZE)) {				\
+    SIZE += DELTA;							\
     PTR = (TYPE *) realloc(PTR,(unsigned)(MAX(((SIZE)*((int)sizeof(TYPE))),1))); \
-    if (PTR == NULL) { \
-      fprintf(stderr,"failed realloc increment at %d in %s\n", __LINE__, __FILE__);\
-      exit (10); } }
-# define FREE(PTR) if (PTR != NULL) { free (PTR); }
+    if (PTR == NULL) {							\
+      fprintf(stderr,"failed realloc increment at %d in %s\n", __LINE__, __FILE__); \
+      exit (10); } } }
+
+# define FREE(PTR) { if (PTR != NULL) { free (PTR); } }
 # endif /* ALLOCATE */
 
