diff options
author | Ron Yorston <rmy@pobox.com> | 2018-10-26 09:28:33 +0100 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2018-10-26 09:28:33 +0100 |
commit | 3b4b844e05b5ee2517311c27e1c8bab8df0e0808 (patch) | |
tree | 2c689cde1e381d3b6f5b2812540c1acf06374bb0 | |
parent | 99821f00530766e658060e90c51b21ff0eed1226 (diff) | |
download | busybox-w32-3b4b844e05b5ee2517311c27e1c8bab8df0e0808.tar.gz busybox-w32-3b4b844e05b5ee2517311c27e1c8bab8df0e0808.tar.bz2 busybox-w32-3b4b844e05b5ee2517311c27e1c8bab8df0e0808.zip |
win32: use string_array_len to obtain size of argv array
Saves 16 bytes.
-rw-r--r-- | win32/process.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/win32/process.c b/win32/process.c index 74f949d07..e074d44e4 100644 --- a/win32/process.c +++ b/win32/process.c | |||
@@ -205,7 +205,7 @@ spawnveq(int mode, const char *path, char *const *argv, char *const *env) | |||
205 | { | 205 | { |
206 | char **new_argv; | 206 | char **new_argv; |
207 | char *new_path = NULL; | 207 | char *new_path = NULL; |
208 | int i, argc = -1; | 208 | int i, argc; |
209 | intptr_t ret; | 209 | intptr_t ret; |
210 | struct stat st; | 210 | struct stat st; |
211 | 211 | ||
@@ -225,9 +225,7 @@ spawnveq(int mode, const char *path, char *const *argv, char *const *env) | |||
225 | return -1; | 225 | return -1; |
226 | } | 226 | } |
227 | 227 | ||
228 | while (argv[++argc]) | 228 | argc = string_array_len((char **)argv); |
229 | ; | ||
230 | |||
231 | new_argv = xmalloc(sizeof(*argv)*(argc+1)); | 229 | new_argv = xmalloc(sizeof(*argv)*(argc+1)); |
232 | for (i = 0;i < argc;i++) | 230 | for (i = 0;i < argc;i++) |
233 | new_argv[i] = quote_arg(argv[i]); | 231 | new_argv[i] = quote_arg(argv[i]); |
@@ -298,16 +296,14 @@ mingw_spawn_interpreter(int mode, const char *prog, char *const *argv, char *con | |||
298 | int nopts; | 296 | int nopts; |
299 | interp_t interp; | 297 | interp_t interp; |
300 | char **new_argv; | 298 | char **new_argv; |
301 | int argc = -1; | 299 | int argc; |
302 | char *fullpath = NULL; | 300 | char *fullpath = NULL; |
303 | 301 | ||
304 | if (!parse_interpreter(prog, &interp)) | 302 | if (!parse_interpreter(prog, &interp)) |
305 | return spawnveq(mode, prog, argv, envp); | 303 | return spawnveq(mode, prog, argv, envp); |
306 | 304 | ||
307 | nopts = interp.opts != NULL; | 305 | nopts = interp.opts != NULL; |
308 | while (argv[++argc]) | 306 | argc = string_array_len((char **)argv); |
309 | ; | ||
310 | |||
311 | new_argv = xmalloc(sizeof(*argv)*(argc+nopts+2)); | 307 | new_argv = xmalloc(sizeof(*argv)*(argc+nopts+2)); |
312 | new_argv[1] = interp.opts; | 308 | new_argv[1] = interp.opts; |
313 | new_argv[nopts+1] = (char *)prog; /* pass absolute path */ | 309 | new_argv[nopts+1] = (char *)prog; /* pass absolute path */ |