Some small optimizations to avoid repeated accessor calls when inlining a constructor
Dave Rolsky [Sun, 8 Aug 2010 09:14:02 +0000 (11:14 +0200)]
lib/Class/MOP/Method/Constructor.pm

index 48533f9..74912e7 100644 (file)
@@ -145,20 +145,23 @@ sub _generate_slot_initializer {
     }
 
     if ( defined( my $init_arg = $attr->init_arg ) ) {
+        my $mi        = $self->_meta_instance;
+        my $attr_name = $attr->name;
+
         return (
                   'if(exists $params->{\'' 
                 . $init_arg . '\'}){' . "\n"
-                . $self->_meta_instance->inline_set_slot_value(
+                . $mi->inline_set_slot_value(
                 '$instance',
-                $attr->name,
+                $attr_name,
                 '$params->{\'' . $init_arg . '\'}'
                 )
                 . "\n" . '} '
                 . (
                 !defined $default ? '' : 'else {' . "\n"
-                    . $self->_meta_instance->inline_set_slot_value(
+                    . $mi->inline_set_slot_value(
                     '$instance',
-                    $attr->name,
+                    $attr_name,
                     $default
                     )
                     . "\n" . '}'