From: Arnaud Giersch Date: Thu, 27 Feb 2020 11:59:12 +0000 (+0100) Subject: [sonar] The three expressions of a "for" statement should only be concerned with... X-Git-Tag: v3.26~864 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/9663f72f22f125d9758e86273cd1d5d79e6ba410?ds=sidebyside [sonar] The three expressions of a "for" statement should only be concerned with loop control. --- diff --git a/src/simgrid/sg_config.cpp b/src/simgrid/sg_config.cpp index 6e09b7661e..2341736fbf 100644 --- a/src/simgrid/sg_config.cpp +++ b/src/simgrid/sg_config.cpp @@ -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 diff --git a/src/smpi/mpi/smpi_topo.cpp b/src/smpi/mpi/smpi_topo.cpp index d2d0eed3b7..1184c6fc4b 100644 --- a/src/smpi/mpi/smpi_topo.cpp +++ b/src/smpi/mpi/smpi_topo.cpp @@ -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]; diff --git a/src/xbt/dict.cpp b/src/xbt/dict.cpp index 5184ea274e..8753f297c2 100644 --- a/src/xbt/dict.cpp +++ b/src/xbt/dict.cpp @@ -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 */