shortcut the flow for micro optimization.
Tokuhiro Matsuno [Thu, 4 Dec 2008 16:28:57 +0000 (16:28 +0000)]
lib/Mouse/Meta/Class.pm
lib/Mouse/Meta/Method/Destructor.pm

index 966c27d..cd8766a 100644 (file)
@@ -146,7 +146,11 @@ sub make_immutable {
     $self->{is_immutable}++;
     no strict 'refs';
     *{"$name\::new"}     = Mouse::Meta::Method::Constructor->generate_constructor_method_inline( $self );
-    *{"$name\::DESTROY"} = Mouse::Meta::Method::Destructor->generate_destructor_method_inline( $self );
+
+    my $destructor = Mouse::Meta::Method::Destructor->generate_destructor_method_inline( $self );
+    if ($destructor) {
+        *{"$name\::DESTROY"} = $destructor;
+    }
 }
 sub make_mutable {
     Carp::croak "Mouse::Meta::Class->make_mutable does not supported by Mouse";
index 623e7d7..09e23bc 100644 (file)
@@ -16,7 +16,7 @@ sub generate_destructor_method_inline {
             }
             join "\n", @code;
         } else {
-            ''; # no demolish =)
+            return; # no demolish =)
         }
     };
 
@@ -31,7 +31,7 @@ sub generate_destructor_method_inline {
     local $@;
     my $res = eval $code;
     die $@ if $@;
-    $res;
+    return $res;
 }
 
 1;