diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2023-05-27 18:21:38 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2023-05-27 18:21:38 +0200 |
commit | 5c8a9dfd976493e4351abadf6686b621763b564c (patch) | |
tree | 9d9dd9cd194ef8d8a60f92a44d2dd77e7c1e14d3 | |
parent | 528808bcd25f7d237874dc82fad2adcddf354b42 (diff) | |
download | busybox-w32-5c8a9dfd976493e4351abadf6686b621763b564c.tar.gz busybox-w32-5c8a9dfd976493e4351abadf6686b621763b564c.tar.bz2 busybox-w32-5c8a9dfd976493e4351abadf6686b621763b564c.zip |
awk: remove a local variable "caching" a struct member
Since we take its address, the variable lives on stack (not a GPR).
Thus, nothing is improved by caching it.
function old new delta
awk_getline 642 639 -3
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | editors/awk.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/editors/awk.c b/editors/awk.c index 22f52417d..4a0eb9281 100644 --- a/editors/awk.c +++ b/editors/awk.c | |||
@@ -2236,7 +2236,7 @@ static int awk_getline(rstream *rsm, var *v) | |||
2236 | { | 2236 | { |
2237 | char *b; | 2237 | char *b; |
2238 | regmatch_t pmatch[1]; | 2238 | regmatch_t pmatch[1]; |
2239 | int size, a, p, pp = 0; | 2239 | int a, p, pp = 0; |
2240 | int fd, so, eo, r, rp; | 2240 | int fd, so, eo, r, rp; |
2241 | char c, *m, *s; | 2241 | char c, *m, *s; |
2242 | 2242 | ||
@@ -2249,12 +2249,11 @@ static int awk_getline(rstream *rsm, var *v) | |||
2249 | m = rsm->buffer; | 2249 | m = rsm->buffer; |
2250 | a = rsm->adv; | 2250 | a = rsm->adv; |
2251 | p = rsm->pos; | 2251 | p = rsm->pos; |
2252 | size = rsm->size; | ||
2253 | c = (char) rsplitter.n.info; | 2252 | c = (char) rsplitter.n.info; |
2254 | rp = 0; | 2253 | rp = 0; |
2255 | 2254 | ||
2256 | if (!m) | 2255 | if (!m) |
2257 | m = qrealloc(m, 256, &size); | 2256 | m = qrealloc(m, 256, &rsm->size); |
2258 | 2257 | ||
2259 | do { | 2258 | do { |
2260 | b = m + a; | 2259 | b = m + a; |
@@ -2298,10 +2297,10 @@ static int awk_getline(rstream *rsm, var *v) | |||
2298 | a = 0; | 2297 | a = 0; |
2299 | } | 2298 | } |
2300 | 2299 | ||
2301 | m = qrealloc(m, a+p+128, &size); | 2300 | m = qrealloc(m, a+p+128, &rsm->size); |
2302 | b = m + a; | 2301 | b = m + a; |
2303 | pp = p; | 2302 | pp = p; |
2304 | p += safe_read(fd, b+p, size-p-1); | 2303 | p += safe_read(fd, b+p, rsm->size - p - 1); |
2305 | if (p < pp) { | 2304 | if (p < pp) { |
2306 | p = 0; | 2305 | p = 0; |
2307 | r = 0; | 2306 | r = 0; |
@@ -2325,7 +2324,6 @@ static int awk_getline(rstream *rsm, var *v) | |||
2325 | rsm->buffer = m; | 2324 | rsm->buffer = m; |
2326 | rsm->adv = a + eo; | 2325 | rsm->adv = a + eo; |
2327 | rsm->pos = p - eo; | 2326 | rsm->pos = p - eo; |
2328 | rsm->size = size; | ||
2329 | 2327 | ||
2330 | debug_printf_eval("returning from %s(): %d\n", __func__, r); | 2328 | debug_printf_eval("returning from %s(): %d\n", __func__, r); |
2331 | 2329 | ||