Rename XS functions
[gitmo/Mouse.git] / xs-src / MouseAccessor.xs
index 6af6b03..0e53ca8 100644 (file)
@@ -246,29 +246,25 @@ mouse_attr_get(pTHX_ SV* const self, MAGIC* const mg){
     SV* const slot  = MOUSE_mg_slot(mg);
     SV* value;
 
-    value = mouse_instance_get_slot(aTHX_ self, slot);
+    value = get_slot(self, slot);
 
     /* check_lazy */
     if( !value && flags & MOUSEf_ATTR_IS_LAZY ){
-        AV* const xa    = MOUSE_mg_xa(mg);
+        AV* const xa   = MOUSE_mg_xa(mg);
         SV* const attr = MOUSE_xa_attribute(xa);
 
-        /* get default value by $attr->default or $attr->builder */
-        if(flags & MOUSEf_ATTR_HAS_DEFAULT){
+        /* get default value by $attr->builder or $attr->default */
+        if(flags & MOUSEf_ATTR_HAS_BUILDER){
+            SV* const builder = mcall0s(attr, "builder");
+            value = mcall0(self, builder);
+        }
+        else {
             value = mcall0s(attr, "default");
 
             if(SvROK(value) && SvTYPE(SvRV(value)) == SVt_PVCV){
                 value = mcall0(self, value);
             }
         }
-        else if(flags & MOUSEf_ATTR_HAS_BUILDER){
-            SV* const builder = mcall0s(attr, "builder");
-            value = mcall0(self, builder);
-        }
-
-        if(!value){
-            value = sv_newmortal();
-        }
 
         /* apply coerce and type constraint */
         if(flags & MOUSEf_ATTR_HAS_TC){
@@ -276,7 +272,7 @@ mouse_attr_get(pTHX_ SV* const self, MAGIC* const mg){
         }
 
         /* store value to slot */
-        value = mouse_instance_set_slot(aTHX_ self, slot, value);
+        value = set_slot(self, slot, value);
     }
 
     PUSH_VALUE(value, flags);
@@ -291,10 +287,10 @@ mouse_attr_set(pTHX_ SV* const self, MAGIC* const mg, SV* value){
         value = mouse_apply_type_constraint(aTHX_ MOUSE_mg_xa(mg), value, flags);
     }
 
-    mouse_instance_set_slot(aTHX_ self, slot, value);
+    set_slot(self, slot, value);
 
     if(flags & MOUSEf_ATTR_IS_WEAK_REF){
-        mouse_instance_weaken_slot(aTHX_ self, slot);
+        weaken_slot(self, slot);
     }
 
     if(flags & MOUSEf_ATTR_HAS_TRIGGER){
@@ -314,7 +310,7 @@ mouse_attr_set(pTHX_ SV* const self, MAGIC* const mg, SV* value){
     PUSH_VALUE(value, flags);
 }
 
-XS(mouse_xs_accessor)
+XS(XS_Mouse_accessor)
 {
     dVAR; dXSARGS;
     dMOUSE_self;
@@ -336,7 +332,7 @@ XS(mouse_xs_accessor)
 }
 
 
-XS(mouse_xs_reader)
+XS(XS_Mouse_reader)
 {
     dVAR; dXSARGS;
     dMOUSE_self;
@@ -353,7 +349,7 @@ XS(mouse_xs_reader)
     mouse_attr_get(aTHX_ self, mg);
 }
 
-XS(mouse_xs_writer)
+XS(XS_Mouse_writer)
 {
     dVAR; dXSARGS;
     dMOUSE_self;
@@ -401,7 +397,7 @@ mouse_install_simple_accessor(pTHX_ const char* const fq_name, const char* const
     return xsub;
 }
 
-XS(mouse_xs_simple_reader)
+XS(XS_Mouse_simple_reader)
 {
     dVAR; dXSARGS;
     dMOUSE_self;
@@ -412,13 +408,13 @@ XS(mouse_xs_simple_reader)
         croak("Expected exactly one argument for a reader for '%"SVf"'", slot);
     }
 
-    value = mouse_instance_get_slot(aTHX_ self, slot);
+    value = get_slot(self, slot);
     ST(0) = value ? value : &PL_sv_undef;
     XSRETURN(1);
 }
 
 
-XS(mouse_xs_simple_writer)
+XS(XS_Mouse_simple_writer)
 {
     dVAR; dXSARGS;
     dMOUSE_self;
@@ -428,11 +424,11 @@ XS(mouse_xs_simple_writer)
         croak("Expected exactly two argument for a writer for '%"SVf"'", slot);
     }
 
-    ST(0) = mouse_instance_set_slot(aTHX_ self, slot, ST(1));
+    ST(0) = set_slot(self, slot, ST(1));
     XSRETURN(1);
 }
 
-XS(mouse_xs_simple_clearer)
+XS(XS_Mouse_simple_clearer)
 {
     dVAR; dXSARGS;
     dMOUSE_self;
@@ -443,12 +439,12 @@ XS(mouse_xs_simple_clearer)
         croak("Expected exactly one argument for a clearer for '%"SVf"'", slot);
     }
 
-    value = mouse_instance_delete_slot(aTHX_ self, slot);
+    value = delete_slot(self, slot);
     ST(0) = value ? value : &PL_sv_undef;
     XSRETURN(1);
 }
 
-XS(mouse_xs_simple_predicate)
+XS(XS_Mouse_simple_predicate)
 {
     dVAR; dXSARGS;
     dMOUSE_self;
@@ -458,7 +454,7 @@ XS(mouse_xs_simple_predicate)
         croak("Expected exactly one argument for a predicate for '%"SVf"'", slot);
     }
 
-    ST(0) = boolSV( mouse_instance_has_slot(aTHX_ self, slot) );
+    ST(0) = boolSV( has_slot(self, slot) );
     XSRETURN(1);
 }
 
@@ -541,7 +537,7 @@ CV*
 _generate_accessor(klass, SV* attr, metaclass)
 CODE:
 {
-    RETVAL = mouse_instantiate_xs_accessor(aTHX_ attr, mouse_xs_accessor);
+    RETVAL = mouse_instantiate_xs_accessor(aTHX_ attr, XS_Mouse_accessor);
 }
 OUTPUT:
     RETVAL
@@ -550,7 +546,7 @@ CV*
 _generate_reader(klass, SV* attr, metaclass)
 CODE:
 {
-    RETVAL = mouse_instantiate_xs_accessor(aTHX_ attr, mouse_xs_reader);
+    RETVAL = mouse_instantiate_xs_accessor(aTHX_ attr, XS_Mouse_reader);
 }
 OUTPUT:
     RETVAL
@@ -559,7 +555,7 @@ CV*
 _generate_writer(klass, SV* attr, metaclass)
 CODE:
 {
-    RETVAL = mouse_instantiate_xs_accessor(aTHX_ attr, mouse_xs_writer);
+    RETVAL = mouse_instantiate_xs_accessor(aTHX_ attr, XS_Mouse_writer);
 }
 OUTPUT:
     RETVAL
@@ -571,7 +567,7 @@ CODE:
     SV* const slot = mcall0s(attr, "name");
     STRLEN len;
     const char* const pv = SvPV_const(slot, len);
-    RETVAL = mouse_install_simple_accessor(aTHX_ NULL, pv, len, mouse_xs_simple_clearer);
+    RETVAL = mouse_install_simple_accessor(aTHX_ NULL, pv, len, XS_Mouse_simple_clearer);
 }
 OUTPUT:
     RETVAL
@@ -583,7 +579,7 @@ CODE:
     SV* const slot = mcall0s(attr, "name");
     STRLEN len;
     const char* const pv = SvPV_const(slot, len);
-    RETVAL = mouse_install_simple_accessor(aTHX_ NULL, pv, len, mouse_xs_simple_predicate);
+    RETVAL = mouse_install_simple_accessor(aTHX_ NULL, pv, len, XS_Mouse_simple_predicate);
 }
 OUTPUT:
     RETVAL