aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2023-08-15 08:38:21 +0100
committerRon Yorston <rmy@pobox.com>2023-08-15 08:38:21 +0100
commit41384b4829db50c7b7ba07c720d299ce098d320d (patch)
tree25ce9f6ecb9dffb13d1f87d6fd580fd3f4c8a738
parentdc5cdc79c18b2e0723f899a504bdfa3f751d422f (diff)
downloadbusybox-w32-41384b4829db50c7b7ba07c720d299ce098d320d.tar.gz
busybox-w32-41384b4829db50c7b7ba07c720d299ce098d320d.tar.bz2
busybox-w32-41384b4829db50c7b7ba07c720d299ce098d320d.zip
ash: code shrink
Move the code to handle the case nprocs == 1 from jobtab_size() to procstat_size(). Saves 16 bytes.
-rw-r--r--shell/ash.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/shell/ash.c b/shell/ash.c
index d0ecd501a..c60657b9b 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -16750,9 +16750,12 @@ procstat_size(struct datasize ds, int nj)
16750{ 16750{
16751 struct job *jp = jobtab + nj; 16751 struct job *jp = jobtab + nj;
16752 16752
16753 ds.funcblocksize += sizeof(struct procstat) * jp->nprocs; 16753 if (jp->ps != &jp->ps0)
16754 ds.funcblocksize += sizeof(struct procstat) * jp->nprocs;
16755
16754 for (int i = 0; i < jp->nprocs; i++) 16756 for (int i = 0; i < jp->nprocs; i++)
16755 ds.funcstringsize += align_len(jp->ps[i].ps_cmd); 16757 ds.funcstringsize += align_len(jp->ps[i].ps_cmd);
16758
16756 return ds; 16759 return ds;
16757} 16760}
16758 16761
@@ -16780,16 +16783,9 @@ procstat_copy(int nj)
16780static struct datasize 16783static struct datasize
16781jobtab_size(struct datasize ds) 16784jobtab_size(struct datasize ds)
16782{ 16785{
16783 int i;
16784
16785 ds.funcblocksize += sizeof(struct job) * njobs; 16786 ds.funcblocksize += sizeof(struct job) * njobs;
16786 for (i = 0; i < njobs; i++) { 16787 for (int i = 0; i < njobs; i++) {
16787 if (!jobtab[i].used) 16788 if (jobtab[i].used)
16788 continue;
16789
16790 if (jobtab[i].ps == &jobtab[i].ps0)
16791 ds.funcstringsize += align_len(jobtab[i].ps0.ps_cmd);
16792 else
16793 ds = procstat_size(ds, i); 16789 ds = procstat_size(ds, i);
16794 } 16790 }
16795 return ds; 16791 return ds;