Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[sonar] The three expressions of a "for" statement should only be concerned with...
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Thu, 27 Feb 2020 11:59:12 +0000 (12:59 +0100)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Thu, 27 Feb 2020 14:55:38 +0000 (15:55 +0100)
src/simgrid/sg_config.cpp
src/smpi/mpi/smpi_topo.cpp
src/xbt/dict.cpp

index 6e09b76..2341736 100644 (file)
@@ -47,11 +47,10 @@ int _sg_cfg_init_status = 0;
 static void sg_config_cmd_line(int *argc, char **argv)
 {
   bool shall_exit = false;
-  int i;
-  int j;
   bool parse_args = true; // Stop parsing the parameters once we found '--'
 
-  for (j = i = 1; i < *argc; i++) {
+  int j = 1;
+  for (int i = j; i < *argc; i++) {
     if (not strcmp("--", argv[i])) {
       parse_args = false;
       // Remove that '--' from the arguments
index d2d0eed..1184c6f 100644 (file)
@@ -111,7 +111,7 @@ Topo_Cart* Topo_Cart::sub(const int remain_dims[], MPI_Comm *newcomm) {
 
     // that should not segfault
     int j = 0;
-    for (int i = 0 ; j < newNDims ; i++) {
+    for (int i = 0; i < oldNDims; i++) {
       if(remain_dims[i]) {
         newDims[j] =dims_[i];
         newPeriodic[j] =periodic_[i];
index 5184ea2..8753f29 100644 (file)
@@ -89,21 +89,22 @@ static void xbt_dict_rehash(xbt_dict_t dict)
   const unsigned oldsize = dict->table_size + 1;
   unsigned newsize = oldsize * 2;
 
-  xbt_dictelm_t *currcell = (xbt_dictelm_t *) xbt_realloc((char *) dict->table, newsize * sizeof(xbt_dictelm_t));
-  memset(&currcell[oldsize], 0, oldsize * sizeof(xbt_dictelm_t));       /* zero second half */
+  xbt_dictelm_t* newtable = (xbt_dictelm_t*)xbt_realloc((char*)dict->table, newsize * sizeof(xbt_dictelm_t));
+  memset(&newtable[oldsize], 0, oldsize * sizeof(xbt_dictelm_t)); /* zero second half */
   newsize--;
   dict->table_size = newsize;
-  dict->table = currcell;
+  dict->table      = newtable;
   XBT_DEBUG("REHASH (%u->%u)", oldsize, newsize);
 
-  for (unsigned i = 0; i < oldsize; i++, currcell++) {
+  for (unsigned i = 0; i < oldsize; i++) {
+    xbt_dictelm_t* currcell = &newtable[i];
     if (*currcell == nullptr) /* empty cell */
       continue;
 
     xbt_dictelm_t *twincell = currcell + oldsize;
     xbt_dictelm_t *pprev = currcell;
     xbt_dictelm_t bucklet = *currcell;
-    for (; bucklet != nullptr; bucklet = *pprev) {
+    while (bucklet != nullptr) {
       /* Since we use "& size" instead of "%size" and since the size was doubled, each bucklet of this cell must either:
          - stay  in  cell i (ie, currcell)
          - go to the cell i+oldsize (ie, twincell) */
@@ -116,6 +117,7 @@ static void xbt_dict_rehash(xbt_dict_t dict)
       } else {
         pprev = &bucklet->next;
       }
+      bucklet = *pprev;
     }
 
     if (*currcell == nullptr) /* everything moved */