On 01/27/2011 12:56 AM, Ralf Wildenhues wrote:
I like this as a first measure.
This is what I am pushing - it ends up looking like this in the wrapper
script:
func_exec_program ()
{
case " $* " in
*\ --lt-*)
for lt_wr_arg
do
case $lt_wr_arg in
--lt-*) ;;
*) set x "$@" "$lt_wr_arg"; shift;;
esac
shift
done ;;
esac
func_exec_program_core ${1+"$@"}
}
Thank you!
Peter
>From 286e87b1030c353d9cfc89dbb72d59e0391cb693 Mon Sep 17 00:00:00 2001
From: Peter O'Gorman <[email protected]>
Date: Thu, 27 Jan 2011 17:13:10 -0600
Subject: [PATCH] Don't loop through wrapper script arguments unnecessarily.
* libltdl/m4/ltmain.m4sh: Check that argv contains " --lt-"
before looping to remove wrapper script targetted arguments.
Performance regression reported by Dan McGee.
---
ChangeLog | 7 +++++++
libltdl/config/ltmain.m4sh | 19 +++++++++++--------
2 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 6da9d7e..8ff779b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2011-01-27 Peter O'Gorman <[email protected]>
+
+ Don't loop through wrapper script arguments unnecessarily.
+ * libltdl/m4/ltmain.m4sh: Check that argv contains " --lt-"
+ before looping to remove wrapper script targetted arguments.
+ Performance regression reported by Dan McGee.
+
2011-01-20 Gerald Pfeifer <[email protected]> (tiny change)
Remove support for FreeBSD 1.x.
diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
index 7baa6aa..766777f 100644
--- a/libltdl/config/ltmain.m4sh
+++ b/libltdl/config/ltmain.m4sh
@@ -3195,14 +3195,17 @@ func_exec_program_core ()
# launches target application with the remaining arguments.
func_exec_program ()
{
- for lt_wr_arg
- do
- case \$lt_wr_arg in
- --lt-*) ;;
- *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
- esac
- shift
- done
+ case \" \$* \" in
+ *\\ --lt-*)
+ for lt_wr_arg
+ do
+ case \$lt_wr_arg in
+ --lt-*) ;;
+ *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
+ esac
+ shift
+ done ;;
+ esac
func_exec_program_core \${1+\"\$@\"}
}
--
1.7.2.3