From 145fe7f354cae90573d270cd53fdec22233456ff Mon Sep 17 00:00:00 2001 From: Nimrod Gileadi Date: Thu, 23 Mar 2023 06:48:32 -0700 Subject: [PATCH] Declare loop variables inside for loop declaration where possible. PiperOrigin-RevId: 518846098 Change-Id: Icdb2e5894bd80110552e29270472eeb242e6cf2c --- src/engine/engine_collision_convex.c | 10 +- src/engine/engine_collision_driver.c | 41 ++++---- src/engine/engine_forward.c | 10 +- src/engine/engine_io.c | 6 +- src/engine/engine_solver.c | 3 +- src/engine/engine_vfs.c | 2 +- src/engine/engine_vis_visualize.c | 6 +- src/render/glad/glad.c | 4 +- src/ui/ui_main.c | 136 ++++++++++++++------------- 9 files changed, 111 insertions(+), 107 deletions(-) diff --git a/src/engine/engine_collision_convex.c b/src/engine/engine_collision_convex.c index 1a9296e7..9886e6e3 100644 --- a/src/engine/engine_collision_convex.c +++ b/src/engine/engine_collision_convex.c @@ -517,7 +517,7 @@ typedef struct _mjtPrism mjtPrism; // ccd prism support function static void prism_support(const void *obj, const ccd_vec3_t *dir, ccd_vec3_t *vec) { - int i, istart, ibest; + int istart, ibest; mjtNum best, tmp; const mjtPrism* p = (const mjtPrism*)obj; @@ -525,7 +525,7 @@ static void prism_support(const void *obj, const ccd_vec3_t *dir, ccd_vec3_t *ve istart = dir->v[2]<0 ? 0 : 3; ibest = istart; best = mju_dot3(p->v[istart], dir->v); - for (i=istart+1; iv[i], dir->v)) > best) { ibest = i; best = tmp; @@ -584,7 +584,7 @@ int mjc_ConvexHField(const mjModel* m, const mjData* d, int hid = m->geom_dataid[g1]; int nrow = m->hfield_nrow[hid]; int ncol = m->hfield_ncol[hid]; - int r, c, dr[2], cnt, rmin, rmax, cmin, cmax, nvert; + int dr[2], cnt, rmin, rmax, cmin, cmax, nvert; const float* data = m->hfield_data + m->hfield_adr[hid]; mjtPrism prism; @@ -710,9 +710,9 @@ int mjc_ConvexHField(const mjModel* m, const mjData* d, // process all prisms in sub-grid cnt = 0; - for (r=rmin; rgeom_bodyid[i]) { mju_addTo3(cen, d->geom_xpos+3*i); cnt++; @@ -673,14 +673,14 @@ int mj_broadphase(const mjModel* m, mjData* d, int* pair, int maxpair) { if (cnt==0) { return npair; } else { - for (i=0; i<3; i++) { + for (int i=0; i<3; i++) { cen[i] /= cnt; } } // compute covariance mju_zero(cov, 9); - for (i=0; igeom_bodyid[i]) { mju_sub3(dif, d->geom_xpos+3*i, cen); mjtNum D00 = dif[0]*dif[0]; @@ -700,7 +700,7 @@ int mj_broadphase(const mjModel* m, mjData* d, int* pair, int maxpair) { cov[8] += D22; } } - for (i=0; i<9; i++) { + for (int i=0; i<9; i++) { cov[i] /= cnt; } @@ -713,7 +713,7 @@ int mj_broadphase(const mjModel* m, mjData* d, int* pair, int maxpair) { // construct body AABB for the aligned frame, count collidable int bufcnt = 0; - for (i=1; igeom_priority[g1]>m->geom_priority[g2] ? g1 : g2); // friction - for (i=0; i<3; i++) { + for (int i=0; i<3; i++) { friction[2*i] = m->geom_friction[3*gp+i]; } @@ -977,7 +976,7 @@ void mj_collideGeoms(const mjModel* m, mjData* d, int g1, int g2, int flg_user, // same priority else { // friction: max - for (i=0; i<3; i++) { + for (int i=0; i<3; i++) { friction[2*i] = mju_max(m->geom_friction[3*g1+i], m->geom_friction[3*g2+i]); } @@ -994,14 +993,14 @@ void mj_collideGeoms(const mjModel* m, mjData* d, int g1, int g2, int flg_user, // reference standard: mix if (m->geom_solref[mjNREF*g1]>0 && m->geom_solref[mjNREF*g2]>0) { - for (i=0; igeom_solref[mjNREF*g1+i] + (1-mix)*m->geom_solref[mjNREF*g2+i]; } } // reference direct: min else { - for (i=0; igeom_solref[mjNREF*g1+i], m->geom_solref[mjNREF*g2+i]); } } @@ -1019,7 +1018,7 @@ void mj_collideGeoms(const mjModel* m, mjData* d, int g1, int g2, int flg_user, // set friction, solref, solimp: pair else { // friction - for (i=0; i<5; i++) { + for (int i=0; i<5; i++) { friction[i] = m->pair_friction[5*ipair+i]; } @@ -1031,12 +1030,12 @@ void mj_collideGeoms(const mjModel* m, mjData* d, int g1, int g2, int flg_user, } // clamp friction to mjMINMU - for (i=0; i<5; i++) { + for (int i=0; i<5; i++) { friction[i] = mju_max(mjMINMU, friction[i]); } // add contact returned by collision detector - for (i=0; i 6 || condim < 1) { // SHOULD NOT OCCUR mju_error("Invalid condim value: %d", i); diff --git a/src/engine/engine_forward.c b/src/engine/engine_forward.c index 9209d91a..018db034 100644 --- a/src/engine/engine_forward.c +++ b/src/engine/engine_forward.c @@ -544,20 +544,22 @@ static void mj_advance(const mjModel* m, mjData* d, // Euler integrator, semi-implicit in velocity, possibly skipping factorisation void mj_EulerSkip(const mjModel* m, mjData* d, int skipfactor) { - int i, nv = m->nv, nM = m->nM; + int nv = m->nv, nM = m->nM; mjMARKSTACK; mjtNum* qfrc = mj_stackAlloc(d, nv); mjtNum* qacc = mj_stackAlloc(d, nv); // check for dof damping - for (i=0; idof_damping[i]>0) { + dof_damping = 1; break; } } // no damping: explicit velocity integration - if (i>=nv) { + if (!dof_damping) { mju_copy(qacc, d->qacc, nv); } @@ -568,7 +570,7 @@ void mj_EulerSkip(const mjModel* m, mjData* d, int skipfactor) { // MhB = M + h*diag(B) mju_copy(MhB, d->qM, m->nM); - for (i=0; idof_Madr[i]] += m->opt.timestep * m->dof_damping[i]; } diff --git a/src/engine/engine_io.c b/src/engine/engine_io.c index e0fb7372..9ed19509 100644 --- a/src/engine/engine_io.c +++ b/src/engine/engine_io.c @@ -622,7 +622,7 @@ void mj_saveModel(const mjModel* m, const char* filename, void* buffer, int buff // load model from binary MJB file // if vfs is not NULL, look up file in vfs before reading from disk mjModel* mj_loadModel(const char* filename, const mjVFS* vfs) { - int i, header[4] = {0}; + int header[4] = {0}; int expected_header[4] = {ID, sizeof(mjtNum), getnint(), getnptr()}; int info[2000]; int ptrbuf = 0; @@ -633,7 +633,7 @@ mjModel* mj_loadModel(const char* filename, const mjVFS* vfs) { const void* buffer = NULL; int buffer_sz = 0; if (vfs) { - i = mj_findFileVFS(vfs, filename); + int i = mj_findFileVFS(vfs, filename); if (i>=0) { buffer_sz = vfs->filesize[i]; buffer = vfs->filedata[i]; @@ -660,7 +660,7 @@ mjModel* mj_loadModel(const char* filename, const mjVFS* vfs) { } // check header - for (i=0; i<4; i++) { + for (int i=0; i<4; i++) { if (header[i]!=expected_header[i]) { if (fp) { fclose(fp); diff --git a/src/engine/engine_solver.c b/src/engine/engine_solver.c index afa806b6..6ae66944 100644 --- a/src/engine/engine_solver.c +++ b/src/engine/engine_solver.c @@ -105,7 +105,7 @@ static void ARdiaginv(const mjModel* m, mjData* d, mjtNum* res, int flg_subR) { // extract diagonal block from AR, clamp diag to 1e-10 if flg_subR static void extractBlock(const mjModel* m, mjData* d, mjtNum* Ac, int start, int n, int flg_subR) { - int k, nefc = d->nefc; + int nefc = d->nefc; const mjtNum *AR = d->efc_AR; const int *rownnz = d->efc_AR_rownnz, *rowadr = d->efc_AR_rowadr, *colind = d->efc_AR_colind; @@ -123,6 +123,7 @@ static void extractBlock(const mjModel* m, mjData* d, mjtNum* Ac, } */ // assume full sub-matrix, find starting k: same for all rows + int k; for (k=0; k=0; i--) { + for (int i=strlen(newname)-1; i>=0; i--) { if (newname[i]>='A' && newname[i]<='Z') { newname[i] = (char)(((int)newname[i]) +'a' - 'A'); } diff --git a/src/engine/engine_vis_visualize.c b/src/engine/engine_vis_visualize.c index d3b6df9d..92a4517f 100644 --- a/src/engine/engine_vis_visualize.c +++ b/src/engine/engine_vis_visualize.c @@ -1059,9 +1059,9 @@ void mjv_addGeoms(const mjModel* m, mjData* d, const mjvOption* vopt, } // get geom group and clamp - int j = mjMAX(0, mjMIN(mjNGROUP-1, m->geom_group[i])); + int geomgroup = mjMAX(0, mjMIN(mjNGROUP-1, m->geom_group[i])); - if (vopt->geomgroup[j]) { + if (vopt->geomgroup[geomgroup]) { START // construct geom @@ -1116,7 +1116,7 @@ void mjv_addGeoms(const mjModel* m, mjData* d, const mjvOption* vopt, // re-center infinite plane if (m->geom_size[3*i]<=0 || m->geom_size[3*i+1]<=0) { // vec = headpos - geompos - for (j=0; j<3; j++) { + for (int j=0; j<3; j++) { vec[j] = 0.5*(scn->camera[0].pos[j] + scn->camera[1].pos[j]) - d->geom_xpos[3*i+j]; } diff --git a/src/render/glad/glad.c b/src/render/glad/glad.c index 71028903..5987fc3a 100644 --- a/src/render/glad/glad.c +++ b/src/render/glad/glad.c @@ -1428,7 +1428,7 @@ static void mjGlad_find_coreGL(void) { * https://github.com/elmindreda/greg/blob/master/templates/greg.c.in#L176 * https://github.com/glfw/glfw/blob/master/src/context.c#L36 */ - int i, major, minor; + int major, minor; const char* version; const char* prefixes[] = { @@ -1441,7 +1441,7 @@ static void mjGlad_find_coreGL(void) { version = (const char*) glGetString(GL_VERSION); if (!version) return; - for (i = 0; prefixes[i]; i++) { + for (int i = 0; prefixes[i]; i++) { const size_t length = strlen(prefixes[i]); if (strncmp(version, prefixes[i], length) == 0) { version += length; diff --git a/src/ui/ui_main.c b/src/ui/ui_main.c index 7c69f780..ab494611 100644 --- a/src/ui/ui_main.c +++ b/src/ui/ui_main.c @@ -1656,7 +1656,6 @@ void mjui_update(int section, int item, const mjUI* ui, } // draw section(s) - int k; mjtNum sel; mjrRect r; char text[mjMAXUITEXT]; @@ -1776,7 +1775,7 @@ void mjui_update(int section, int item, const mjUI* ui, drawrectangle(r, rgbpane, rgbpane, con); // text lines - for (k=0; kmulti.nelem; k++) { + for (int k=0; kmulti.nelem; k++) { drawtext(it->multi.name[k], r.left+g_texthor, r.bottom+g_textver+(it->multi.nelem-k-1)*(con->charHeight+g_textver), @@ -1809,35 +1808,37 @@ void mjui_update(int section, int item, const mjUI* ui, break; case mjITEM_CHECKINT: - case mjITEM_CHECKBYTE: - if (state) { - rgbdecor = ui->color.check; + case mjITEM_CHECKBYTE: { + if (state) { + rgbdecor = ui->color.check; + } + + // get value according to type + int k; + if (it->type==mjITEM_CHECKINT) { + k = *(int*)it->pdata; + } else { + k = *(mjtByte*)it->pdata; + } + + // filled or outline + if (k) { + drawrectangle(it->rect, rgbdecor, NULL, con); + } else { + drawrectangle(it->rect, rgbdecor, rgbpane, con); + } + + // name + drawtext(it->name, + it->rect.left+g_texthor, + it->rect.bottom+g_textver, + maxwidth, rgbfont, con); + + // shortcut + if (ui->mousehelp && it->single.shortcut) + shortcuthelp(it->rect, it->single.modifier, it->single.shortcut, + ui, con); } - - // get value according to type - if (it->type==mjITEM_CHECKINT) { - k = *(int*)it->pdata; - } else { - k = *(mjtByte*)it->pdata; - } - - // filled or outline - if (k) { - drawrectangle(it->rect, rgbdecor, NULL, con); - } else { - drawrectangle(it->rect, rgbdecor, rgbpane, con); - } - - // name - drawtext(it->name, - it->rect.left+g_texthor, - it->rect.bottom+g_textver, - maxwidth, rgbfont, con); - - // shortcut - if (ui->mousehelp && it->single.shortcut) - shortcuthelp(it->rect, it->single.modifier, it->single.shortcut, - ui, con); break; case mjITEM_RADIO: @@ -1859,7 +1860,7 @@ void mjui_update(int section, int item, const mjUI* ui, drawrectangle(r, rgbdecor, NULL, con); // element names - for (k=0; kmulti.nelem; k++) { + for (int k=0; kmulti.nelem; k++) { r = radioelement(it, k, ui, con); drawtext(it->multi.name[k], r.left+g_texthor, @@ -1868,39 +1869,40 @@ void mjui_update(int section, int item, const mjUI* ui, } break; - case mjITEM_RADIOLINE: - if (state) { - rgbdecor = ui->color.radio; - } + case mjITEM_RADIOLINE: { + if (state) { + rgbdecor = ui->color.radio; + } - // name - drawtext(it->name, - s->rcontent.left+g_itemside+g_texthor, - it->rect.bottom+g_textver, - g_label-2*g_texthor, rgbfont, con); + // name + drawtext(it->name, + s->rcontent.left+g_itemside+g_texthor, + it->rect.bottom+g_textver, + g_label-2*g_texthor, rgbfont, con); - // outline - drawrectangle(it->rect, rgbdecor, rgbpane, con); + // outline + drawrectangle(it->rect, rgbdecor, rgbpane, con); - // make separators - makeradioline(it, con, sep); + // make separators + makeradioline(it, con, sep); - // fill selected - k = *(int*)it->pdata; - r = it->rect; - r.left += sep[k]; - r.width = sep[k+1] - sep[k]; - drawrectangle(r, rgbdecor, NULL, con); - - // element names - for (k=0; kmulti.nelem; k++) { - // compute rectangle for element + // fill selected + int k = *(int*)it->pdata; r = it->rect; r.left += sep[k]; r.width = sep[k+1] - sep[k]; + drawrectangle(r, rgbdecor, NULL, con); - // draw centered - drawtextrect(r, it->multi.name[k], rgbfont, con); + // element names + for (int k=0; kmulti.nelem; k++) { + // compute rectangle for element + r = it->rect; + r.left += sep[k]; + r.width = sep[k+1] - sep[k]; + + // draw centered + drawtextrect(r, it->multi.name[k], rgbfont, con); + } } break; @@ -1959,7 +1961,7 @@ void mjui_update(int section, int item, const mjUI* ui, r.height = g_textver; // draw ticks - for (k=1; k<(int)it->slider.divisions; k++) { + for (int k=1; k<(int)it->slider.divisions; k++) { r.left = it->rect.left - r.width/2 + it->rect.width*k/it->slider.divisions; drawrectangle(r, rgbpane, NULL, con); @@ -2007,8 +2009,8 @@ void mjui_update(int section, int item, const mjUI* ui, } // show cursor - k = textwidth(ui->edittext + ui->editscroll, con, - ui->editcursor - ui->editscroll); + int k = textwidth(ui->edittext + ui->editscroll, con, + ui->editcursor - ui->editscroll); r.left = it->rect.left + g_texthor + k - SCL(1, con); r.width = 2*SCL(1, con); r.bottom = it->rect.bottom + g_textver/2; @@ -2064,7 +2066,7 @@ void mjui_update(int section, int item, const mjUI* ui, drawrectangle(r, ui->color.select2, NULL, con); // hightlight row under mouse - k = findselect(it, ui, state, con); + int k = findselect(it, ui, state, con); if (k>=0) { mjrRect r1 = r; r1.bottom = r.bottom + (it->multi.nelem-1-k)*cellheight; @@ -2073,7 +2075,7 @@ void mjui_update(int section, int item, const mjUI* ui, } // values - for (k=0; kmulti.nelem; k++) { + for (int k=0; kmulti.nelem; k++) { drawtext(it->multi.name[k], r.left+g_texthor, r.bottom+g_textver+(it->multi.nelem-1-k)*cellheight, @@ -2223,7 +2225,7 @@ mjuiItem* mjui_event(mjUI* ui, mjuiState* state, const mjrContext* con) { else if (sect_cur>0 && item_cur<0) { // double-click: make all sections like this if (state->doubleclick) { - for (i=0; insect; i++) { + for (int i=0; insect; i++) { if (ui->sect[i].state<2 && ui->sect[sect_cur-1].state<2) { ui->sect[i].state = ui->sect[sect_cur-1].state; } @@ -2445,7 +2447,7 @@ mjuiItem* mjui_event(mjUI* ui, mjuiState* state, const mjrContext* con) { case mjKEY_BACKSPACE: // delete before cursor if (ui->editcursor>0) { // shift chars after cursor to the left - for (i=ui->editcursor; i<=strlen(ui->edittext); i++) { + for (int i=ui->editcursor; i<=strlen(ui->edittext); i++) { ui->edittext[i-1] = ui->edittext[i]; } @@ -2457,7 +2459,7 @@ mjuiItem* mjui_event(mjUI* ui, mjuiState* state, const mjrContext* con) { case mjKEY_DELETE: // delete after cursor if (ui->editcursoredittext)) { // shift chars after cursor to the left - for (i=ui->editcursor; i<=strlen(ui->edittext); i++) { + for (int i=ui->editcursor; i<=strlen(ui->edittext); i++) { ui->edittext[i] = ui->edittext[i+1]; } } @@ -2467,7 +2469,7 @@ mjuiItem* mjui_event(mjUI* ui, mjuiState* state, const mjrContext* con) { key = validkey(key, strlen(ui->edittext), it_edit->type, state); if (key) { // shift chars after cursor to the right - for (i=strlen(ui->edittext); i>=ui->editcursor; i--) { + for (int i=strlen(ui->edittext); i>=ui->editcursor; i--) { ui->edittext[i+1] = ui->edittext[i]; } @@ -2494,7 +2496,7 @@ mjuiItem* mjui_event(mjUI* ui, mjuiState* state, const mjrContext* con) { for (int n=0; nnsect; n++) if (matchshortcut(state, ui->sect[n].modifier, ui->sect[n].shortcut)) { // collapse all - for (i=0; insect; i++) { + for (int i=0; insect; i++) { if (ui->sect[i].state<2) { ui->sect[i].state = 0; } @@ -2516,7 +2518,7 @@ mjuiItem* mjui_event(mjUI* ui, mjuiState* state, const mjrContext* con) { // search item shortcuts for (int n=0; nnsect; n++) { - for (i=0; isect[n].nitem; i++) { + for (int i=0; isect[n].nitem; i++) { // get pointer to item it = ui->sect[n].item + i;;