patch 9.0.1221: code is indented more than necessary
Problem: Code is indented more than necessary.
Solution: Use an early return where it makes sense. (Yegappan Lakshmanan,
closes #11833)
diff --git a/src/regexp_bt.c b/src/regexp_bt.c
index d2acbc2..33af278 100644
--- a/src/regexp_bt.c
+++ b/src/regexp_bt.c
@@ -3187,20 +3187,20 @@
// When "rex.need_clear_subexpr" is set we don't need to save the values,
// only remember that this flag needs to be set again when restoring.
bp->save_need_clear_subexpr = rex.need_clear_subexpr;
- if (!rex.need_clear_subexpr)
+ if (rex.need_clear_subexpr)
+ return;
+
+ for (i = 0; i < NSUBEXP; ++i)
{
- for (i = 0; i < NSUBEXP; ++i)
+ if (REG_MULTI)
{
- if (REG_MULTI)
- {
- bp->save_start[i].se_u.pos = rex.reg_startpos[i];
- bp->save_end[i].se_u.pos = rex.reg_endpos[i];
- }
- else
- {
- bp->save_start[i].se_u.ptr = rex.reg_startp[i];
- bp->save_end[i].se_u.ptr = rex.reg_endp[i];
- }
+ bp->save_start[i].se_u.pos = rex.reg_startpos[i];
+ bp->save_end[i].se_u.pos = rex.reg_endpos[i];
+ }
+ else
+ {
+ bp->save_start[i].se_u.ptr = rex.reg_startp[i];
+ bp->save_end[i].se_u.ptr = rex.reg_endp[i];
}
}
}
@@ -3215,20 +3215,20 @@
// Only need to restore saved values when they are not to be cleared.
rex.need_clear_subexpr = bp->save_need_clear_subexpr;
- if (!rex.need_clear_subexpr)
+ if (rex.need_clear_subexpr)
+ return;
+
+ for (i = 0; i < NSUBEXP; ++i)
{
- for (i = 0; i < NSUBEXP; ++i)
+ if (REG_MULTI)
{
- if (REG_MULTI)
- {
- rex.reg_startpos[i] = bp->save_start[i].se_u.pos;
- rex.reg_endpos[i] = bp->save_end[i].se_u.pos;
- }
- else
- {
- rex.reg_startp[i] = bp->save_start[i].se_u.ptr;
- rex.reg_endp[i] = bp->save_end[i].se_u.ptr;
- }
+ rex.reg_startpos[i] = bp->save_start[i].se_u.pos;
+ rex.reg_endpos[i] = bp->save_end[i].se_u.pos;
+ }
+ else
+ {
+ rex.reg_startp[i] = bp->save_start[i].se_u.ptr;
+ rex.reg_endp[i] = bp->save_end[i].se_u.ptr;
}
}
}