X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=lib%2FCatalyst%2FDispatcher.pm;h=0818f8568ef765a5ffb4413841e7dfc445377418;hp=44f2705f3f87e4e9ab76adcd39c95eba80ef5f00;hb=6680c772eaa987eafdb32e9437fd2d649dc914d9;hpb=5fb12dbb7e69039e0ea22ec4d7cb627206b4508b diff --git a/lib/Catalyst/Dispatcher.pm b/lib/Catalyst/Dispatcher.pm index 44f2705..0818f85 100644 --- a/lib/Catalyst/Dispatcher.pm +++ b/lib/Catalyst/Dispatcher.pm @@ -171,10 +171,11 @@ sub forward { no warnings 'recursion'; - #moose todo: reaching inside another object is bad - local $c->request->{arguments} = \@args; + my $orig_args = $c->request->arguments(); + $c->request->arguments(\@args); $action->dispatch( $c ); - + $c->request->arguments($orig_args); + return $c->state; } @@ -282,7 +283,6 @@ sub prepare_action { unshift @args, $arg; } - #Moose todo: This seems illegible, even if efficient. s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg for grep { defined } @{$req->captures||[]}; $c->log->debug( 'Path is "' . $req->match . '"' ) @@ -531,6 +531,7 @@ sub _load_dispatch_types { return @loaded; } +no Moose; __PACKAGE__->meta->make_immutable; =head2 meta