[Jifty-commit] r472 - jifty/trunk/lib/Jifty

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Fri Jan 6 09:48:08 EST 2006


Author: autrijus
Date: Fri Jan  6 09:48:08 2006
New Revision: 472

Modified:
   jifty/trunk/lib/Jifty/Dispatcher.pm

Log:
* another try at not swallowing $@.

Modified: jifty/trunk/lib/Jifty/Dispatcher.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Dispatcher.pm	(original)
+++ jifty/trunk/lib/Jifty/Dispatcher.pm	Fri Jan  6 09:48:08 2006
@@ -291,10 +291,12 @@
 sub handle_rules ($) {
     my ($self, $rules) = @_;
 
-    local $@;
     my @rules;
-    eval { @rules = @$rules };
-    @rules = $rules if $@;
+    {
+        local $@;
+        eval { @rules = @$rules };
+        @rules = $rules if $@;
+    }
 
     RULE: foreach my $rule (@rules) {
         $self->handle_rule($rule);
@@ -313,16 +315,17 @@
     }
 
     # Handle the case where $op is an array.
+    my $sub_rules;
     {
         local $@;
-        my @sub_rules = eval { @$op, @args };
-        unless ($@) {
-            for my $sub_rule (@sub_rules) {
-                $self->handle_rule($sub_rule);
-            }
-            return;
+        eval { $sub_rules = [@$op, @args] };
+    }
+
+    if ($sub_rules) {
+        for my $sub_rule (@$sub_rules) {
+            $self->handle_rule($sub_rule);
         }
-    };
+    }
 
     local $self->{rule} = $op;
     my $meth = "do_$op";


More information about the Jifty-commit mailing list