Make is_class_loaded without any arguments fail loudly
[gitmo/Mouse.git] / xs-src / Mouse.xs
index 4ab4848..c59c15c 100644 (file)
@@ -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);