X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=xs-src%2FMouse.xs;h=c59c15cbe1fb79696e76fa2e1ec6f8dc84067fd7;hb=42108e9ca4e2394e54f76bdcde4bfd34eacfd646;hp=4ab48486ef70c9123b8271b9ed0b4777180ea352;hpb=3e44140bf0332cf0e44055fd76c2ba43cd898161;p=gitmo%2FMouse.git diff --git a/xs-src/Mouse.xs b/xs-src/Mouse.xs index 4ab4848..c59c15c 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,12 +13,13 @@ 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); bool -is_class_loaded(SV* sv = &PL_sv_undef) +is_class_loaded(SV* sv) void get_code_info(CV* code) @@ -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);