From 5556e00c657f6f51fbae6596fb53dd751888f30f Mon Sep 17 00:00:00 2001 From: Sebastian Gniazdowski Date: Wed, 17 Oct 2018 00:08:01 +0200 Subject: 43695: minor but simple optmiisation to use existing string length --- ChangeLog | 5 +++++ Src/lex.c | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index c23a24537..9c0554c8e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2018-10-23 Peter Stephenson + + * Sebastian: 43695: Src/lex.c: minor but simple optimisation + to reuse existing string lengths. + 2018-10-22 dana * 43713: Completion/Unix/Command/_init_d: Improve completion of diff --git a/Src/lex.c b/Src/lex.c index 44ad88043..fa29da3a2 100644 --- a/Src/lex.c +++ b/Src/lex.c @@ -1626,7 +1626,7 @@ parsestrnoerr(char **s) zcontext_save(); untokenize(*s); - inpush(dupstring(*s), 0, NULL); + inpush(dupstring_wlen(*s, l), 0, NULL); strinbeg(0); lexbuf.len = 0; lexbuf.ptr = tokstr = *s; @@ -1658,7 +1658,7 @@ parse_subscript(char *s, int sub, int endchar) if (!*s || *s == endchar) return 0; zcontext_save(); - untokenize(t = dupstring(s)); + untokenize(t = dupstring_wlen(s, l)); inpush(t, 0, NULL); strinbeg(0); /* @@ -1674,7 +1674,7 @@ parse_subscript(char *s, int sub, int endchar) * length preservation. */ lexbuf.len = 0; - lexbuf.ptr = tokstr = dupstring(s); + lexbuf.ptr = tokstr = dupstring_wlen(s, l); lexbuf.siz = l + 1; err = dquote_parse(endchar, sub); toklen = (int)(lexbuf.ptr - tokstr); @@ -1713,7 +1713,7 @@ parse_subst_string(char *s) return 0; zcontext_save(); untokenize(s); - inpush(dupstring(s), 0, NULL); + inpush(dupstring_wlen(s, l), 0, NULL); strinbeg(0); lexbuf.len = 0; lexbuf.ptr = tokstr = s; -- cgit 1.4.1