X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=xs-src%2FMouse.xs;h=a538e413a65690d1fce24c5b3158129830329a7d;hb=065f79e7cd03765f26c6ea276aaf9b3c5897886a;hp=4ab48486ef70c9123b8271b9ed0b4777180ea352;hpb=3e44140bf0332cf0e44055fd76c2ba43cd898161;p=gitmo%2FMouse.git diff --git a/xs-src/Mouse.xs b/xs-src/Mouse.xs index 4ab4848..a538e41 100644 --- a/xs-src/Mouse.xs +++ b/xs-src/Mouse.xs @@ -3,6 +3,7 @@ SV* mouse_package; SV* mouse_namespace; SV* mouse_methods; +SV* mouse_name; MODULE = Mouse PACKAGE = Mouse::Util @@ -12,6 +13,7 @@ BOOT: mouse_package = newSVpvs_share("package"); mouse_namespace = newSVpvs_share("namespace"); mouse_methods = newSVpvs_share("methods"); + mouse_name = newSVpvs_share("name"); MOUSE_CALL_BOOT(Mouse__Util__TypeConstraints); @@ -110,8 +112,8 @@ void add_method(SV* self, SV* name, SV* code, ...) CODE: { - SV* const package = mouse_instance_get_slot(self, mouse_package); /* $self->{package} */ - SV* const methods = mouse_instance_get_slot(self, mouse_methods); /* $self->{methods} */ + SV* const package = mouse_instance_get_slot(aTHX_ self, mouse_package); /* $self->{package} */ + SV* const methods = mouse_instance_get_slot(aTHX_ self, mouse_methods); /* $self->{methods} */ GV* gv; SV* code_ref; @@ -148,7 +150,7 @@ CODE: } sv_setsv_mg((SV*)gv, code_ref); /* *gv = $code_ref */ - mouse_instance_set_slot(methods, name, code); /* $self->{methods}{$name} = $code */ + mouse_instance_set_slot(aTHX_ methods, name, code); /* $self->{methods}{$name} = $code */ /* TODO: name the CODE ref if it's anonymous */ //code_entity = (CV*)SvRV(code_ref);