aboutsummaryrefslogtreecommitdiffstats
path: root/package/busybox
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2007-07-01 03:42:49 +0000
committerFelix Fietkau <nbd@openwrt.org>2007-07-01 03:42:49 +0000
commit08d6217b424a852fefed1b12361fceb82d0369a1 (patch)
treeacfc21827795225a95428e2a69adf11ef8c633b7 /package/busybox
parent843b8577994d64fae26ca1df1d4dafa261cfcc0f (diff)
downloadupstream-08d6217b424a852fefed1b12361fceb82d0369a1.tar.gz
upstream-08d6217b424a852fefed1b12361fceb82d0369a1.tar.bz2
upstream-08d6217b424a852fefed1b12361fceb82d0369a1.zip
massively reduce the number of forks that busybox ash has to do while processing our scripts
this is accomplished simply by changing the order in which it looks for builtins and applets git-svn-id: svn://svn.openwrt.org/openwrt/trunk@7815 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/busybox')
-rw-r--r--package/busybox/patches/270-ash_performance.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/package/busybox/patches/270-ash_performance.patch b/package/busybox/patches/270-ash_performance.patch
new file mode 100644
index 0000000000..eff7a5bb11
--- /dev/null
+++ b/package/busybox/patches/270-ash_performance.patch
@@ -0,0 +1,30 @@
+Index: busybox-1.4.2/shell/ash.c
+===================================================================
+--- busybox-1.4.2.orig/shell/ash.c 2007-07-01 05:33:08.371737750 +0200
++++ busybox-1.4.2/shell/ash.c 2007-07-01 05:33:11.703946000 +0200
+@@ -3957,12 +3957,6 @@
+ }
+ #endif
+
+- if (is_safe_applet(name)) {
+- entry->cmdtype = CMDNORMAL;
+- entry->u.index = -1;
+- return;
+- }
+-
+ updatetbl = (path == pathval());
+ if (!updatetbl) {
+ act |= DO_ALTPATH;
+@@ -4074,6 +4068,12 @@
+ goto success;
+ }
+
++ if (is_safe_applet(name)) {
++ entry->cmdtype = CMDNORMAL;
++ entry->u.index = -1;
++ return;
++ }
++
+ /* We failed. If there was an entry for this command, delete it */
+ if (cmdp && updatetbl)
+ delete_cmd_entry();