static void
mouse_class_update_xc(pTHX_ SV* const metaclass PERL_UNUSED_DECL, HV* const stash, AV* const xc) {
AV* const linearized_isa = mro_get_linear_isa(stash);
- I32 const len = AvFILLp(linearized_isa);
+ I32 const len = AvFILLp(linearized_isa) + 1;
I32 i;
U32 flags = 0x00;
AV* const attrall = newAV();
I32 const len = AvFILLp(attrs) + 1;
I32 i;
AV* triggers_queue = NULL;
- U32 used = 0;
+ I32 used = 0;
assert(meta || object);
assert(args);
}
} /* for each attribute */
- if(MOUSE_xc_flags(xc) & MOUSEf_XC_CONSTRUCTOR_IS_STRICT && used < HvUSEDKEYS(args)){
+ if(MOUSE_xc_flags(xc) & MOUSEf_XC_CONSTRUCTOR_IS_STRICT
+ && used < (I32)HvUSEDKEYS(args)){
mouse_report_unknown_args(aTHX_ meta, attrs, args);
}
(void)set_slot(methods, name, code); /* $self->{methods}{$name} = $code */
}
-void
-add_class_accessor(SV* self, SV* name)
-CODE:
-{
- SV* const klass = mouse_call0(self, mouse_name);
- const char* fq_name = form("%"SVf"::%"SVf, klass, name);
- STRLEN keylen;
- const char* const key = SvPV_const(name, keylen);
- mouse_simple_accessor_generate(aTHX_ fq_name, key, keylen,
- XS_Mouse_inheritable_class_accessor, NULL, 0);
-}
-
MODULE = Mouse PACKAGE = Mouse::Meta::Class
BOOT:
}
}
+void
+add_metaclass_accessor(SV* self, SV* name)
+CODE:
+{
+ SV* const klass = mcall0(self, mouse_name);
+ const char* fq_name = form("%"SVf"::%"SVf, klass, name);
+ STRLEN keylen;
+ const char* const key = SvPV_const(name, keylen);
+ mouse_simple_accessor_generate(aTHX_ fq_name, key, keylen,
+ XS_Mouse_inheritable_class_accessor, NULL, 0);
+}
+
MODULE = Mouse PACKAGE = Mouse::Object
void