up three times today (perigrin)
- Win doy $10 dollars because Sartak didn't think anybody
would document this fast enough (perigrin)
+ * Moose::Meta::Method::Destructor
+ - Inline a DESTROY method even if there are no DEMOLISH methods to
+ prevent unnecessary introspection in Moose::Object::DEMOLISHALL
0.79 Wed, May 13, 2009
* Tests
|| $self->throw_error(
"The is_needed method expected a metaclass object as its arugment");
- return $metaclass->find_method_by_name('DEMOLISH');
+ return $metaclass->find_method_by_name("DEMOLISHALL");
}
sub initialize_body {
my @DEMOLISH_methods = $self->associated_metaclass->find_all_methods_by_name('DEMOLISH');
- return unless @DEMOLISH_methods;
+ my $source;
+ if ( @DEMOLISH_methods ) {
+ $source = 'sub {';
- my $source = 'sub {';
+ my @DEMOLISH_calls;
+ foreach my $method (@DEMOLISH_methods) {
+ push @DEMOLISH_calls => '$_[0]->' . $method->{class} . '::DEMOLISH()';
+ }
- my @DEMOLISH_calls;
- foreach my $method (@DEMOLISH_methods) {
- push @DEMOLISH_calls => '$_[0]->' . $method->{class} . '::DEMOLISH()';
- }
+ $source .= join ";\n" => @DEMOLISH_calls;
- $source .= join ";\n" => @DEMOLISH_calls;
+ $source .= ";\n" . '}';
+ } else {
+ $source = 'sub { }';
+ }
- $source .= ";\n" . '}';
warn $source if $self->options->{debug};
my $code = $self->_compile_code(