[mpich2-commits] r3991 - mpich2/trunk/src/mpi/attr

goodell at mcs.anl.gov goodell at mcs.anl.gov
Mon Mar 9 18:02:27 CDT 2009


Author: goodell
Date: 2009-03-09 18:02:27 -0500 (Mon, 09 Mar 2009)
New Revision: 3991

Modified:
   mpich2/trunk/src/mpi/attr/attr.h
   mpich2/trunk/src/mpi/attr/attrutil.c
   mpich2/trunk/src/mpi/attr/comm_set_attr.c
   mpich2/trunk/src/mpi/attr/type_set_attr.c
   mpich2/trunk/src/mpi/attr/win_set_attr.c
Log:
Add MPID_Attr_alloc fn for debugging attr leaks.

No reviewer.

Modified: mpich2/trunk/src/mpi/attr/attr.h
===================================================================
--- mpich2/trunk/src/mpi/attr/attr.h	2009-03-09 22:58:48 UTC (rev 3990)
+++ mpich2/trunk/src/mpi/attr/attr.h	2009-03-09 23:02:27 UTC (rev 3991)
@@ -13,6 +13,7 @@
 
 extern int MPIR_Attr_dup_list( int, MPID_Attribute *, MPID_Attribute ** );
 extern int MPIR_Attr_delete_list( int, MPID_Attribute * );
+extern MPID_Attribute *MPID_Attr_alloc(void);
 extern void MPID_Attr_free(MPID_Attribute *attr_ptr);
 extern int MPIR_Call_attr_delete( int, MPID_Attribute * );
 extern int MPIR_Call_attr_copy( int, MPID_Attribute *, void**, int* );

Modified: mpich2/trunk/src/mpi/attr/attrutil.c
===================================================================
--- mpich2/trunk/src/mpi/attr/attrutil.c	2009-03-09 22:58:48 UTC (rev 3990)
+++ mpich2/trunk/src/mpi/attr/attrutil.c	2009-03-09 23:02:27 UTC (rev 3991)
@@ -35,6 +35,12 @@
 					    MPID_Attr_direct,
 					    MPID_ATTR_PREALLOC, };
 
+/* Provides a way to trap all attribute allocations when debugging leaks. */
+MPID_Attribute *MPID_Attr_alloc(void)
+{
+    return (MPID_Attribute *)MPIU_Handle_obj_alloc(&MPID_Attr_mem);
+}
+
 void MPID_Attr_free(MPID_Attribute *attr_ptr)
 {
     MPIU_Handle_obj_free(&MPID_Attr_mem, attr_ptr);
@@ -172,7 +178,7 @@
 
         /* duplicate the attribute by creating new storage, copying the
         attribute value, and invoking the copy function */
-        new_p = (MPID_Attribute *)MPIU_Handle_obj_alloc( &MPID_Attr_mem );
+        new_p = MPID_Attr_alloc();
         /* --BEGIN ERROR HANDLING-- */
         if (!new_p){
             mpi_errno = MPIR_Err_create_code( MPI_SUCCESS, MPIR_ERR_RECOVERABLE, FCNAME, __LINE__, MPI_ERR_OTHER, "**nomem", 0 );

Modified: mpich2/trunk/src/mpi/attr/comm_set_attr.c
===================================================================
--- mpich2/trunk/src/mpi/attr/comm_set_attr.c	2009-03-09 22:58:48 UTC (rev 3990)
+++ mpich2/trunk/src/mpi/attr/comm_set_attr.c	2009-03-09 23:02:27 UTC (rev 3991)
@@ -99,8 +99,7 @@
 	    break;
 	}
 	else if (p->keyval->handle > keyval_ptr->handle) {
-	    MPID_Attribute *new_p = 
-		(MPID_Attribute *)MPIU_Handle_obj_alloc( &MPID_Attr_mem );
+	    MPID_Attribute *new_p = MPID_Attr_alloc();
 	    MPIU_ERR_CHKANDJUMP(!new_p,mpi_errno,MPI_ERR_OTHER,"**nomem");
 	    new_p->keyval	 = keyval_ptr;
 	    new_p->attrType      = attrType;
@@ -117,8 +116,7 @@
 	p = p->next;
     }
     if (!p) {
-	MPID_Attribute *new_p = 
-	    (MPID_Attribute *)MPIU_Handle_obj_alloc( &MPID_Attr_mem );
+	MPID_Attribute *new_p = MPID_Attr_alloc();
 	MPIU_ERR_CHKANDJUMP(!new_p,mpi_errno,MPI_ERR_OTHER,"**nomem");
 	/* Did not find in list.  Add at end */
 	new_p->keyval	     = keyval_ptr;

Modified: mpich2/trunk/src/mpi/attr/type_set_attr.c
===================================================================
--- mpich2/trunk/src/mpi/attr/type_set_attr.c	2009-03-09 22:58:48 UTC (rev 3990)
+++ mpich2/trunk/src/mpi/attr/type_set_attr.c	2009-03-09 23:02:27 UTC (rev 3991)
@@ -98,8 +98,7 @@
 	    break;
 	}
 	else if (p->keyval->handle > keyval_ptr->handle) {
-	    MPID_Attribute *new_p = 
-		(MPID_Attribute *)MPIU_Handle_obj_alloc( &MPID_Attr_mem );
+	    MPID_Attribute *new_p = MPID_Attr_alloc();
 	    MPIU_ERR_CHKANDJUMP1(!new_p,mpi_errno,MPI_ERR_OTHER,
 				 "**nomem","**nomem %s", "MPID_Attribute" );
 	    new_p->keyval	 = keyval_ptr;
@@ -117,8 +116,7 @@
     }
     if (!p)
     {
-	MPID_Attribute *new_p = 
-	    (MPID_Attribute *)MPIU_Handle_obj_alloc( &MPID_Attr_mem );
+	MPID_Attribute *new_p = MPID_Attr_alloc();
 	MPIU_ERR_CHKANDJUMP1(!new_p,mpi_errno,MPI_ERR_OTHER,
 			     "**nomem","**nomem %s", "MPID_Attribute" );
 	/* Did not find in list.  Add at end */

Modified: mpich2/trunk/src/mpi/attr/win_set_attr.c
===================================================================
--- mpich2/trunk/src/mpi/attr/win_set_attr.c	2009-03-09 22:58:48 UTC (rev 3990)
+++ mpich2/trunk/src/mpi/attr/win_set_attr.c	2009-03-09 23:02:27 UTC (rev 3991)
@@ -104,8 +104,7 @@
 	    break;
 	}
 	else if (p->keyval->handle > keyval_ptr->handle) {
-	    MPID_Attribute *new_p = 
-		(MPID_Attribute *)MPIU_Handle_obj_alloc( &MPID_Attr_mem );
+	    MPID_Attribute *new_p = MPID_Attr_alloc();
 	    MPIU_ERR_CHKANDJUMP1(!new_p,mpi_errno,MPI_ERR_OTHER,
 				 "**nomem", "**nomem %s", "MPID_Attribute" );
 	    new_p->keyval	 = keyval_ptr;
@@ -123,8 +122,7 @@
     }
     if (!p)
     {
-	MPID_Attribute *new_p = 
-	    (MPID_Attribute *)MPIU_Handle_obj_alloc( &MPID_Attr_mem );
+	MPID_Attribute *new_p = MPID_Attr_alloc();
 	MPIU_ERR_CHKANDJUMP1(!new_p,mpi_errno,MPI_ERR_OTHER,
 			     "**nomem", "**nomem %s", "MPID_Attribute" );
 	/* Did not find in list.  Add at end */



More information about the mpich2-commits mailing list