]> git.vpit.fr Git - perl/modules/LaTeX-TikZ.git/commitdiff
Localize the die handler when requiring for autocoercion
authorVincent Pit <vince@profvince.com>
Sun, 1 Aug 2010 22:58:23 +0000 (00:58 +0200)
committerVincent Pit <vince@profvince.com>
Sun, 1 Aug 2010 22:58:23 +0000 (00:58 +0200)
This speeds up things vastly when a slow die handler (e.g. \&Carp::confess)
is set.

lib/LaTeX/TikZ/Meta/TypeConstraint/Autocoerce.pm

index 9c65f364c181cbcd19bfdbeed1e4802ef2e74f49..165794c8740db2604c54c43967792440b4df560d 100644 (file)
@@ -121,7 +121,14 @@ sub load {
  return 0 if $INC{$pm}; # already loaded
 
  local $@;
- eval { require $pm; 1 };
+ eval {
+  # We die often here, even though we're not really interested in the error.
+  # However, if a die handler is set (e.g. to \&Carp::confess), this can get
+  # very slow. Resetting the handler shows a 10% total time improvement for the
+  # geodyn app.
+  local $SIG{__DIE__};
+  require $pm;
+ };
 
  return 0;
 }