From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9476 invoked by alias); 9 Nov 2016 12:49:32 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 39887 Received: (qmail 767 invoked from network); 9 Nov 2016 12:49:32 -0000 X-Qmail-Scanner-Diagnostics: from mailout4.w1.samsung.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(210.118.77.14):SA:0(-2.9/5.0):. Processed in 0.452977 secs); 09 Nov 2016 12:49:32 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=RP_MATCHES_RCVD autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: p.stephenson@samsung.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: none (ns1.primenet.com.au: domain at samsung.com does not designate permitted sender hosts) X-AuditID: cbfec7f5-f79ce6d000004c54-05-582318fa1c1b Date: Wed, 09 Nov 2016 12:39:16 +0000 From: Peter Stephenson To: zsh-workers@zsh.org Subject: Re: [PATCH] getstrvalue() optimization Message-id: <20161109123916.175e0bc6@pwslap01u.europe.root.pri> In-reply-to: <1478612273.1810945.781106353.1EF6BF52@webmail.messagingengine.com> Organization: Samsung Cambridge Solution Centre X-Mailer: Claws Mail 3.7.9 (GTK+ 2.22.0; i386-redhat-linux-gnu) MIME-version: 1.0 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrLIsWRmVeSWpSXmKPExsWy7djP87q/JJQjDPrO8lscbH7I5MDoserg B6YAxigum5TUnMyy1CJ9uwSujL8rdrMWNHBUNH7Yyd7AeIa1i5GTQ0LARKLr5Wl2CFtM4sK9 9WxdjFwcQgJLGSVO7W1jgnB6mSTWtF1ngel4evYOK0RiGaPEzU+rmSGcaUwSd07tYoFwTjNK NP77yAbSIiRwhlFi1rwSEJtFQFXi5v//YMvZBAwlpm6azQhiiwiIS5xdex5shbCAvsTWfUfB 4rwC9hL3788Bm8MpECBxtHcWM4jND1Rz9e8nJoiT7CVmXjkDVS8o8WPyPbA5zAI6Etu2PWaH sOUlNq95C3aphMBvNomFvzcBFXEAObISmw4wQ8xxkTi3/zM0MIQlXh3fAmXLSHR2HITa1c8o 8aTbF2LODEaJ02d2sEEkrCX6bl9khFjGJzFp23RmiPm8Eh1tQhAlHhIH++9BA95R4tfDz6wT GBVnITl7FpKzZyE5ewEj8ypGkdTS4tz01GJTveLE3OLSvHS95PzcTYzARHD63/GvOxiXHrM6 xCjAwajEw5vxUDFCiDWxrLgy9xCjBAezkgivMjCNCPGmJFZWpRblxxeV5qQWH2KU5mBREufd s+BKuJBAemJJanZqakFqEUyWiYNTqoGR2dTqwZIvPS94zpzhEElpETTYLepU/TKo/9//C7Y7 GW8v+OZ/p/5uRWv57QV7Nda/d3azPV6/Z4qV75zICoV234La0nD+10fuvPnFteLlsQQF3uyO LbsqzSsd+h1P7fVWfvuWX++KwRrO+iT3iAkl9UpyHunzGC4wpEezs5bxTDPqumtgYK/EUpyR aKjFXFScCABCU+8VAAMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrGIsWRmVeSWpSXmKPExsVy+t/xy7o/JZQjDM5d17Y42PyQyYHRY9XB D0wBjFFuNhmpiSmpRQqpecn5KZl56bZKoSFuuhZKCnmJuam2ShG6viFBSgpliTmlQJ6RARpw cA5wD1bSt0twy/i7YjdrQQNHReOHnewNjGdYuxg5OSQETCSenr0DZYtJXLi3nq2LkYtDSGAJ o8Scu+cZQRJCAjOYJHp3JEMkTjNKTJ31iBXCOcMocerOSXaQKhYBVYmb//+DjWITMJSYumk2 WLeIgLjE2bXnWUBsYQF9ia37joLFeQXsJe7fn8MGYnMKBEgc7Z3FDDF0KaPExP39YEP5gRqu /v3EBHGfvcTMK2egmgUlfky+BzaUWUBLYvO2JlYIW15i85q3zBBnq0vcuLubfQKj8CwkLbOQ tMxC0rKAkXkVo0hqaXFuem6xoV5xYm5xaV66XnJ+7iZGYBxtO/Zz8w7GSxuDDzEKcDAq8fBm PFSMEGJNLCuuzD3EKMHBrCTC2wiMQiHelMTKqtSi/Pii0pzU4kOMpsCQmcgsJZqcD4zxvJJ4 QxNDc0tDI2MLC3MjIyVx3pIPV8KFBNITS1KzU1MLUotg+pg4OKUaGG2efy8wc3l7Q3m+PQv/ RZMUO4UZSw91Tgs54dLWcttafP6NacfvBTaLzhTOnLxTpe/tabFVT3ev+7L+R2/NhZkpq348 S5yjWZuXkzfDkYOnnieqwnaaifBpwdySqv8b+bzZ9QXPBlwrvxzWGWV//mlypPEiPZaGfI2t MQ+ZJnzYYd3se2rBQiWW4oxEQy3mouJEADEIsEa5AgAA X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20161109123921eucas1p100733c9b0299b3e25926aa73b812938c X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 X-Local-Sender: =?UTF-8?B?UGV0ZXIgU3RlcGhlbnNvbhtTQ1NDLURhdGEgUGxhbmUb?= =?UTF-8?B?7IK87ISx7KCE7J6QG1ByaW5jaXBhbCBFbmdpbmVlciwgU29mdHdhcmU=?= X-Global-Sender: =?UTF-8?B?UGV0ZXIgU3RlcGhlbnNvbhtTQ1NDLURhdGEgUGxhbmUbU2Ft?= =?UTF-8?B?c3VuZyBFbGVjdHJvbmljcxtQcmluY2lwYWwgRW5naW5lZXIsIFNvZnR3YXJl?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDA1Q0QwNTAwNTg=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20161108133901epcas4p257eb8a5bd308d2393769c4a3a2fc3731 X-RootMTR: 20161108133901epcas4p257eb8a5bd308d2393769c4a3a2fc3731 References: <1478612273.1810945.781106353.1EF6BF52@webmail.messagingengine.com> While I'm still looking at this... We always need the string length; there's no early return between the first two cases and where we ensure we have it. pws diff --git a/Src/params.c b/Src/params.c index 772345b..ef72cba 100644 --- a/Src/params.c +++ b/Src/params.c @@ -2060,7 +2060,7 @@ getstrvalue(Value v) { char *s, **ss; char buf[BDIGBUFSIZE]; - int len = -1; + int len; if (!v) return hcalloc(1); @@ -2237,15 +2237,13 @@ getstrvalue(Value v) if (v->start == 0 && v->end == -1) return s; + len = strlen(s); if (v->start < 0) { - len = strlen(s); v->start += len; if (v->start < 0) v->start = 0; } if (v->end < 0) { - if (len < 0) - len = strlen(s); v->end += len; if (v->end >= 0) { char *eptr = s + v->end; @@ -2254,8 +2252,6 @@ getstrvalue(Value v) } } - if (len < 0) - len = strlen(s); s = (v->start > len) ? dupstring("") : dupstring_wlen(s + v->start, len - v->start);