X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMouse%2FMeta%2FModule.pm;h=78277993148f9ea62027e05f3db7a13bc749089b;hb=823419c540f9e77090f31f11e04b14477c0372c4;hp=bb8faa47c1ef4b8a9ee031c780826826ed5ebd64;hpb=a4faea11d3ca93b0c0a80f6c3de23fa172d8984d;p=gitmo%2FMouse.git diff --git a/lib/Mouse/Meta/Module.pm b/lib/Mouse/Meta/Module.pm index bb8faa4..7827799 100755 --- a/lib/Mouse/Meta/Module.pm +++ b/lib/Mouse/Meta/Module.pm @@ -38,6 +38,9 @@ sub reinitialize { ($package_name && !ref($package_name)) || $class->throw_error("You must pass a package name and it cannot be blessed"); + if(exists $METAS{$package_name}) { + unshift @args, %{ $METAS{$package_name} }; + } delete $METAS{$package_name}; return $class->initialize($package_name, @args); } @@ -306,19 +309,6 @@ sub DESTROY{ return; } -sub throw_error{ - my($self, $message, %args) = @_; - - local $Carp::CarpLevel = $Carp::CarpLevel + 1 + ($args{depth} || 0); - local $Carp::MaxArgNums = 20; # default is 8, usually we use named args which gets messier though - - if(exists $args{longmess} && !$args{longmess}){ # intentionaly longmess => 0 - Carp::croak($message); - } - else{ - Carp::confess($message); - } -} 1; __END__