X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FClass%2FMOP%2FMethod.pm;h=81a2706a330e3aa3669dff7c7863d13d9e9b7dec;hb=f035b141c7228eea7b709f06f20178782f0e29ee;hp=857fc03f8257939e3716c403be70adbd66a1e175;hpb=5e57b7e6c595e4d4d893bda929beea1ee92f4c45;p=gitmo%2FClass-MOP.git diff --git a/lib/Class/MOP/Method.pm b/lib/Class/MOP/Method.pm index 857fc03..81a2706 100644 --- a/lib/Class/MOP/Method.pm +++ b/lib/Class/MOP/Method.pm @@ -7,7 +7,7 @@ use warnings; use Carp 'confess'; use Scalar::Util 'weaken', 'reftype', 'blessed'; -our $VERSION = '0.91'; +our $VERSION = '1.09'; $VERSION = eval $VERSION; our $AUTHORITY = 'cpan:STEVAN'; @@ -123,11 +123,19 @@ sub execute { $self->body->(@_); } -# NOTE: -# the Class::MOP bootstrap -# will create this for us -# - SL -# sub clone { ... } +# We used to go through use Class::MOP::Class->clone_instance to do this, but +# this was awfully slow. This method may be called a number of times when +# classes are loaded (especially during Moose role application), so it is +# worth optimizing. - DR +sub clone { + my $self = shift; + + my $clone = bless { %{$self}, @_ }, blessed($self); + + $clone->_set_original_method($self); + + return $clone; +} 1; @@ -269,7 +277,7 @@ Stevan Little Estevan@iinteractive.comE =head1 COPYRIGHT AND LICENSE -Copyright 2006-2009 by Infinity Interactive, Inc. +Copyright 2006-2010 by Infinity Interactive, Inc. L