zsh-workers
 help / color / mirror / code / Atom feed
* PATCH: minor variable allocation change in add-zsh-hook
@ 2015-10-02 21:06 Matthew Hamilton
  2015-10-02 21:38 ` Mikael Magnusson
  0 siblings, 1 reply; 3+ messages in thread
From: Matthew Hamilton @ 2015-10-02 21:06 UTC (permalink / raw)
  To: zsh-workers

The 'local usage' variable is allocated in main, outside of the if loop
that determines if it is going to print the usage information. This
means time is spent allocating that variable, when in most cases, it
will never be printed. It would be better to set it within the if loop,
or alternatively, not using a variable and simply output the usage text
as as literal string (as many other functions do).

A trace of the time being needlessly being spent allocating the variable
can be seen here: https://gist.github.com/Eriner/3192c9eb98fabdd70607

It's not that much time, but it adds up and is inefficient/unnecessary.

diff --git a/Functions/Misc/add-zsh-hook b/Functions/Misc/add-zsh-hook
index ee37d67..bccd115 100644
--- a/Functions/Misc/add-zsh-hook
+++ b/Functions/Misc/add-zsh-hook
@@ -19,7 +19,6 @@ hooktypes=(
   chpwd precmd preexec periodic zshaddhistory zshexit
   zsh_directory_name
 )
-local usage="Usage: $0 hook function\nValid hooks are:\n  $hooktypes"

 local opt
 local -a autoopts
@@ -58,6 +57,7 @@ if (( list )); then
   typeset -mp "(${1:-${(@j:|:)hooktypes}})_functions"
   return $?
 elif (( help || $# != 2 || ${hooktypes[(I)$1]} == 0 )); then
+  local usage="Usage: $0 hook function\nValid hooks are:\n  $hooktypes"
   print -u$(( 2 - help )) $usage
   return $(( 1 - help ))
 fi


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-10-02 22:03 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-02 21:06 PATCH: minor variable allocation change in add-zsh-hook Matthew Hamilton
2015-10-02 21:38 ` Mikael Magnusson
     [not found]   ` <560EFAC3.2050806@tthamilton.com>
2015-10-02 22:03     ` Mikael Magnusson

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).