}
for(i = 0; i < len; i++){
- SV* const attr = AvARRAY(attrs)[i];
- AV* const xa = mouse_get_xa(aTHX_ AvARRAY(attrs)[i]);
+ SV* const attr = MOUSE_av_at(attrs, i);
+ AV* const xa = mouse_get_xa(aTHX_ attr);
SV* const slot = MOUSE_xa_slot(xa);
U16 const flags = (U16)MOUSE_xa_flags(xa);
}
if(MOUSE_xc_flags(xc) & MOUSEf_XC_IS_ANON){
- set_slot(object, newSVpvs_flags("__ANON__", SVs_TEMP), meta);
+ set_slot(object, newSVpvs_flags("__METACLASS__", SVs_TEMP), meta);
}
FREETMPS;
INSTALL_SIMPLE_READER(Class, roles);
INSTALL_SIMPLE_PREDICATE_WITH_KEY(Class, is_anon_class, anon_serial_id);
- INSTALL_SIMPLE_READER_WITH_DEFAULTS(Class, method_metaclass, "Mouse::Meta::Method");
- INSTALL_SIMPLE_READER_WITH_DEFAULTS(Class, attribute_metaclass, "Mouse::Meta::Attribute");
- INSTALL_SIMPLE_READER_WITH_DEFAULTS(Class, constructor_class, "Mouse::Meta::Method::Constructor::XS");
- INSTALL_SIMPLE_READER_WITH_DEFAULTS(Class, destructor_class, "Mouse::Meta::Method::Destructor::XS");
+ INSTALL_CLASS_HOLDER(Class, method_metaclass, "Mouse::Meta::Method");
+ INSTALL_CLASS_HOLDER(Class, attribute_metaclass, "Mouse::Meta::Attribute");
+ INSTALL_CLASS_HOLDER(Class, constructor_class, "Mouse::Meta::Method::Constructor::XS");
+ INSTALL_CLASS_HOLDER(Class, destructor_class, "Mouse::Meta::Method::Destructor::XS");
newCONSTSUB(gv_stashpvs("Mouse::Meta::Method::Constructor::XS", TRUE), "_generate_constructor",
newRV_inc((SV*)get_cvs("Mouse::Object::new", TRUE)));
PPCODE:
{
AV* const xc = mouse_get_xc(aTHX_ self);
- AV* const all_attrs = MOUSE_xc_attrall(xc);
+ AV* const all_attrs = MOUSE_xc_attrall(xc);
I32 const len = AvFILLp(all_attrs) + 1;
I32 i;
INSTALL_SIMPLE_READER_WITH_KEY(Role, get_roles, roles);
INSTALL_SIMPLE_PREDICATE_WITH_KEY(Role, is_anon_role, anon_serial_id);
- INSTALL_SIMPLE_READER_WITH_DEFAULTS(Role, method_metaclass, "Mouse::Meta::Role::Method");
+ INSTALL_CLASS_HOLDER(Role, method_metaclass, "Mouse::Meta::Role::Method");
MODULE = Mouse PACKAGE = Mouse::Object