massively reduce the number of forks that busybox ash has to do while processing...
[openwrt/openwrt.git] / package / busybox / patches / 270-ash_performance.patch
1 Index: busybox-1.4.2/shell/ash.c
2 ===================================================================
3 --- busybox-1.4.2.orig/shell/ash.c 2007-07-01 05:33:08.371737750 +0200
4 +++ busybox-1.4.2/shell/ash.c 2007-07-01 05:33:11.703946000 +0200
5 @@ -3957,12 +3957,6 @@
6 }
7 #endif
8
9 - if (is_safe_applet(name)) {
10 - entry->cmdtype = CMDNORMAL;
11 - entry->u.index = -1;
12 - return;
13 - }
14 -
15 updatetbl = (path == pathval());
16 if (!updatetbl) {
17 act |= DO_ALTPATH;
18 @@ -4074,6 +4068,12 @@
19 goto success;
20 }
21
22 + if (is_safe_applet(name)) {
23 + entry->cmdtype = CMDNORMAL;
24 + entry->u.index = -1;
25 + return;
26 + }
27 +
28 /* We failed. If there was an entry for this command, delete it */
29 if (cmdp && updatetbl)
30 delete_cmd_entry();