Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
don't test pointers after dereferencing them (thanks, sonar)
authorMartin Quinson <martin.quinson@loria.fr>
Mon, 12 Dec 2016 14:19:50 +0000 (15:19 +0100)
committerMartin Quinson <martin.quinson@loria.fr>
Mon, 12 Dec 2016 14:19:50 +0000 (15:19 +0100)
src/smpi/smpi_mpi_dt.cpp
src/surf/HostImpl.cpp

index 634ecf4..e948b65 100644 (file)
@@ -436,7 +436,11 @@ void smpi_datatype_use(MPI_Datatype type){
 #endif
 }
 
-void smpi_datatype_unuse(MPI_Datatype type){
+void smpi_datatype_unuse(MPI_Datatype type)
+{
+  if (type == MPI_DATATYPE_NULL)
+    return;
+
   if (type->in_use > 0)
     type->in_use--;
 
@@ -444,9 +448,9 @@ void smpi_datatype_unuse(MPI_Datatype type){
     static_cast<s_smpi_subtype_t *>((type)->substruct)->subtype_free(&type);  
   }
 
-  if(type != MPI_DATATYPE_NULL && type->in_use == 0){
+  if (type->in_use == 0)
     smpi_datatype_free(&type);
-  }
+
 #if HAVE_MC
   if(MC_is_active())
     MC_ignore(&(type->in_use), sizeof(type->in_use));
index bc39f8f..c727c67 100644 (file)
@@ -296,11 +296,10 @@ xbt_dynar_t HostImpl::getAttachedStorageList()
     {
       /* Check if the new full path is on the same mount point */
       if (!strncmp((const char*)fd->mount, fullpath, strlen(fd->mount))) {
-        sg_size_t *psize, *new_psize;
-        psize      = (sg_size_t*)xbt_dict_get_or_null(findStorageOnMountList(fd->mount)->content_, fd->name);
-        new_psize  = xbt_new(sg_size_t, 1);
-        *new_psize = *psize;
+        sg_size_t* psize = (sg_size_t*)xbt_dict_get_or_null(findStorageOnMountList(fd->mount)->content_, fd->name);
         if (psize) { // src file exists
+          sg_size_t* new_psize = xbt_new(sg_size_t, 1);
+          *new_psize           = *psize;
           xbt_dict_remove(findStorageOnMountList(fd->mount)->content_, fd->name);
           char* path = (char*)xbt_malloc((strlen(fullpath) - strlen(fd->mount) + 1));
           strncpy(path, fullpath + strlen(fd->mount), strlen(fullpath) - strlen(fd->mount) + 1);