X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMethod%2FGenerate%2FAccessor.pm;h=d3158183b0623d39d5937977fc8047fea3405469;hb=873df57040580aff36452de31e310003f73390fc;hp=5636aac94edf82533b10adfd7add5df5f2a0173a;hpb=ceea0e3806c6b5e700ff9ac8d4cfb36bc1c20af9;p=gitmo%2FMoo.git diff --git a/lib/Method/Generate/Accessor.pm b/lib/Method/Generate/Accessor.pm index 5636aac..d315818 100644 --- a/lib/Method/Generate/Accessor.pm +++ b/lib/Method/Generate/Accessor.pm @@ -46,7 +46,7 @@ sub generate_method { if (my $reader = $spec->{reader}) { if (our $CAN_HAZ_XS && $self->is_simple_get($name, $spec)) { $methods{$reader} = $self->_generate_xs( - getters => $into, $reader, $name + getters => $into, $reader, $name, $spec ); } else { $self->{captures} = {}; @@ -65,7 +65,7 @@ sub generate_method { && $self->is_simple_set($name, $spec) ) { $methods{$accessor} = $self->_generate_xs( - accessors => $into, $accessor, $name + accessors => $into, $accessor, $name, $spec ); } else { $self->{captures} = {}; @@ -82,7 +82,7 @@ sub generate_method { && $self->is_simple_set($name, $spec) ) { $methods{$writer} = $self->_generate_xs( - setters => $into, $writer, $name + setters => $into, $writer, $name, $spec ); } else { $self->{captures} = {}; @@ -390,10 +390,16 @@ sub generate_multi_set { "\@{${me}}{qw(${\join ' ', @$to_set})} = $from"; } +sub _generate_core_set { + my ($self, $me, $name, $spec, $value) = @_; + my $name_str = perlstring $name; + "${me}->{${name_str}} = ${value}"; +} + sub _generate_simple_set { my ($self, $me, $name, $spec, $value) = @_; my $name_str = perlstring $name; - my $simple = "${me}->{${name_str}} = ${value}"; + my $simple = $self->_generate_core_set($self, $me, $name, $spec, $value); if ($spec->{weak_ref}) { require Scalar::Util;