X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=xs-src%2FMouseAttribute.xs;h=5e20e924f24821a296e95edaf09f876ee085f3dc;hb=0464d337aad64f435f978dd97bc44af033545fac;hp=4086d2b64fc70eb5ee44b98cf0f08481c94b113e;hpb=bc97157e163ca3ec82a442141232f2cb2d55b106;p=gitmo%2FMouse.git diff --git a/xs-src/MouseAttribute.xs b/xs-src/MouseAttribute.xs index 4086d2b..5e20e92 100644 --- a/xs-src/MouseAttribute.xs +++ b/xs-src/MouseAttribute.xs @@ -184,6 +184,7 @@ mouse_xa_set_default(pTHX_ AV* const xa, SV* const object) { return value; } +/* checks $isa->does($does) */ static void mouse_check_isa_does_does(pTHX_ SV* const klass, SV* const name, SV* const isa, SV* const does){ STRLEN len; @@ -271,6 +272,7 @@ void _process_options(SV* klass, SV* name, HV* args) CODE: { + /* TODO: initialize 'xa' here */ SV** svp; SV* tc = NULL; @@ -337,7 +339,9 @@ CODE: else{ svp = hv_fetchs(args, "accessor", TRUE); } - sv_setsv(*svp, name); + if(!SvOK(*svp)) { + sv_setsv(*svp, name); + } } else if(strEQ(is, "bare")){ /* do nothing, but might complain later about missing methods */