[git commit] bc: optimize zbc_lex_string()
Denys Vlasenko
vda.linux at googlemail.com
Tue Dec 18 13:03:20 UTC 2018
commit: https://git.busybox.net/busybox/commit/?id=07597cd35dfbdc7597d3b2b8ecf797016a996576
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master
function old new delta
zbc_lex_next 2359 2353 -6
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
miscutils/bc.c | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/miscutils/bc.c b/miscutils/bc.c
index 5d969c9d0..be198a5fb 100644
--- a/miscutils/bc.c
+++ b/miscutils/bc.c
@@ -2986,17 +2986,22 @@ static BC_STATUS zbc_lex_identifier(BcLex *l)
static BC_STATUS zbc_lex_string(BcLex *l)
{
- size_t len, nls = 0, i = l->i;
- char c;
+ size_t len, nls, i;
l->t.t = BC_LEX_STR;
- for (c = l->buf[i]; c != '\0' && c != '"'; c = l->buf[++i])
+ nls = 0;
+ i = l->i;
+ for (;;) {
+ char c = l->buf[i];
+ if (c == '\0') {
+ l->i = i;
+ RETURN_STATUS(bc_error("string end could not be found"));
+ }
+ if (c == '"')
+ break;
nls += (c == '\n');
-
- if (c == '\0') {
- l->i = i;
- RETURN_STATUS(bc_error("string end could not be found"));
+ i++;
}
len = i - l->i;
More information about the busybox-cvs
mailing list