X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst.pm;h=203f1c44a8053cb198e4062603fd82363f3748de;hp=e093ddb0fa56448811ff02836f30b8dfb3ac5144;hb=1627551a60fe1e220d390a565f793dea27cd36a6;hpb=f1bbebac7a9ae06ed2b750440d4369dedb5d9e80 diff --git a/lib/Catalyst.pm b/lib/Catalyst.pm index e093ddb..203f1c4 100644 --- a/lib/Catalyst.pm +++ b/lib/Catalyst.pm @@ -971,19 +971,22 @@ sub execute { $class = $c->component($class) || $class; $c->state(0); + if ($c->depth >= $RECURSION) { + my $action = "$code"; + $action = "/$action" unless $action =~ /\-\>/; + my $error = qq/Deep recursion detected calling "$action"/; + $c->log->error($error); + $c->error($error); + $c->state(0); + return $c->state; + } + + if ( $c->debug ) { my $action = "$code"; $action = "/$action" unless $action =~ /\-\>/; $c->counter->{"$code"}++; - if ( $c->counter->{"$code"} > $RECURSION ) { - my $error = qq/Deep recursion detected in "$action"/; - $c->log->error($error); - $c->error($error); - $c->state(0); - return $c->state; - } - # determine if the call was the result of a forward # this is done by walking up the call stack and looking for a calling # sub of Catalyst::forward before the eval