diff options
author | Ron Yorston <rmy@pobox.com> | 2020-06-20 12:13:21 +0100 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2020-06-20 12:13:21 +0100 |
commit | 6f8b2f4508610e9bd443f60535cc06df653f3c83 (patch) | |
tree | 7af90cdd74db5a98b0cbb8732e6e5de4c8c74150 | |
parent | f41697493de1a25d0f56930d81cf9560172ce7b7 (diff) | |
download | busybox-w32-6f8b2f4508610e9bd443f60535cc06df653f3c83.tar.gz busybox-w32-6f8b2f4508610e9bd443f60535cc06df653f3c83.tar.bz2 busybox-w32-6f8b2f4508610e9bd443f60535cc06df653f3c83.zip |
ash: forkshell code shrink
Don't pass global pointers to forkshell_size()/forkshell_copy()
via the forkshell structure, just reference them directly.
-rw-r--r-- | shell/ash.c | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/shell/ash.c b/shell/ash.c index d76d3f571..beadca68c 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -16047,14 +16047,12 @@ forkshell_size(struct forkshell *fs) | |||
16047 | { | 16047 | { |
16048 | struct datasize ds = {0, 0}; | 16048 | struct datasize ds = {0, 0}; |
16049 | 16049 | ||
16050 | ds = globals_var_size(ds, fs->gvp); | 16050 | ds = globals_var_size(ds, ash_ptr_to_globals_var); |
16051 | ds = globals_misc_size(ds, fs->gmp); | 16051 | ds = globals_misc_size(ds, ash_ptr_to_globals_misc); |
16052 | ds = cmdtable_size(ds, fs->cmdtable); | 16052 | ds = cmdtable_size(ds, cmdtable); |
16053 | #if ENABLE_ASH_ALIAS | 16053 | #if ENABLE_ASH_ALIAS |
16054 | ds = atab_size(ds, fs->atab); | 16054 | ds = atab_size(ds, atab); |
16055 | #endif | 16055 | #endif |
16056 | /* optlist_transfer(sending, fd); */ | ||
16057 | /* misc_transfer(sending, fd); */ | ||
16058 | 16056 | ||
16059 | ds.funcblocksize = calcsize(ds.funcblocksize, fs->n); | 16057 | ds.funcblocksize = calcsize(ds.funcblocksize, fs->n); |
16060 | ds = argv_size(ds, fs->argv); | 16058 | ds = argv_size(ds, fs->argv); |
@@ -16072,15 +16070,15 @@ static void | |||
16072 | forkshell_copy(struct forkshell *fs, struct forkshell *new) | 16070 | forkshell_copy(struct forkshell *fs, struct forkshell *new) |
16073 | { | 16071 | { |
16074 | memcpy(new, fs, sizeof(struct forkshell)); /* non-pointer stuff */ | 16072 | memcpy(new, fs, sizeof(struct forkshell)); /* non-pointer stuff */ |
16075 | new->gvp = globals_var_copy(fs->gvp); | 16073 | new->gvp = globals_var_copy(ash_ptr_to_globals_var); |
16076 | new->gmp = globals_misc_copy(fs->gmp); | 16074 | new->gmp = globals_misc_copy(ash_ptr_to_globals_misc); |
16077 | new->cmdtable = cmdtable_copy(fs->cmdtable); | 16075 | new->cmdtable = cmdtable_copy(cmdtable); |
16078 | SAVE_PTR3(new->gvp, "gvp", NO_FREE, | 16076 | SAVE_PTR3(new->gvp, "gvp", NO_FREE, |
16079 | new->gmp, "gmp", NO_FREE, | 16077 | new->gmp, "gmp", NO_FREE, |
16080 | new->cmdtable, "cmdtable", NO_FREE); | 16078 | new->cmdtable, "cmdtable", NO_FREE); |
16081 | 16079 | ||
16082 | #if ENABLE_ASH_ALIAS | 16080 | #if ENABLE_ASH_ALIAS |
16083 | new->atab = atab_copy(fs->atab); | 16081 | new->atab = atab_copy(atab); |
16084 | SAVE_PTR(new->atab, "atab", NO_FREE); | 16082 | SAVE_PTR(new->atab, "atab", NO_FREE); |
16085 | #endif | 16083 | #endif |
16086 | 16084 | ||
@@ -16226,14 +16224,6 @@ forkshell_prepare(struct forkshell *fs) | |||
16226 | static int num = 0; | 16224 | static int num = 0; |
16227 | #endif | 16225 | #endif |
16228 | 16226 | ||
16229 | /* Calculate size of "new" */ | ||
16230 | fs->gvp = ash_ptr_to_globals_var; | ||
16231 | fs->gmp = ash_ptr_to_globals_misc; | ||
16232 | fs->cmdtable = cmdtable; | ||
16233 | #if ENABLE_ASH_ALIAS | ||
16234 | fs->atab = atab; | ||
16235 | #endif | ||
16236 | |||
16237 | /* calculate size of structure, funcblock and funcstring */ | 16227 | /* calculate size of structure, funcblock and funcstring */ |
16238 | ds = forkshell_size(fs); | 16228 | ds = forkshell_size(fs); |
16239 | size = sizeof(struct forkshell) + ds.funcblocksize + ds.funcstringsize; | 16229 | size = sizeof(struct forkshell) + ds.funcblocksize + ds.funcstringsize; |