19 STATIC int unset_export_flag (pTHX_ SV *sv, MAGIC *mg);
21 STATIC MGVTBL export_flag_vtbl = {
23 unset_export_flag, /* set */
39 export_flag_is_set (pTHX_ SV *sv)
41 MAGIC *mg, *moremagic;
43 if (SvTYPE(SvRV(sv)) != SVt_PVGV) {
47 for (mg = SvMAGIC(SvRV(sv)); mg; mg = moremagic) {
48 moremagic = mg->mg_moremagic;
50 if (mg->mg_type == PERL_MAGIC_ext && mg->mg_virtual == &export_flag_vtbl) {
59 unset_export_flag (pTHX_ SV *sv, MAGIC *mymg)
61 MAGIC *mg, *prevmagic = NULL, *moremagic = NULL;
63 for (mg = SvMAGIC(sv); mg; prevmagic = mg, mg = moremagic) {
64 moremagic = mg->mg_moremagic;
76 prevmagic->mg_moremagic = moremagic;
79 SvMAGIC_set(sv, moremagic);
82 mg->mg_moremagic = NULL;
90 /* SvRXOK appeared before SVt_REGEXP did, so this implementation assumes magic
91 * based qr//. Note re::is_regexp isn't in 5.8, hence the need for this XS.
93 #define SvRXOK(sv) is_regexp(aTHX_ sv)
96 is_regexp (pTHX_ SV* sv) {
102 (tmpsv = (SV*) SvRV(sv)) &&
103 SvTYPE(tmpsv) == SVt_PVMG &&
104 (mg_find(tmpsv, PERL_MAGIC_qr)))
110 EXTERN_C XS(boot_Class__MOP);
111 EXTERN_C XS(boot_Class__MOP__Mixin__HasAttributes);
112 EXTERN_C XS(boot_Class__MOP__Mixin__HasMethods);
113 EXTERN_C XS(boot_Class__MOP__Package);
114 EXTERN_C XS(boot_Class__MOP__Mixin__AttributeCore);
115 EXTERN_C XS(boot_Class__MOP__Method);
116 EXTERN_C XS(boot_Class__MOP__Method__Inlined);
117 EXTERN_C XS(boot_Class__MOP__Method__Generated);
118 EXTERN_C XS(boot_Class__MOP__Class);
119 EXTERN_C XS(boot_Class__MOP__Attribute);
120 EXTERN_C XS(boot_Class__MOP__Instance);
122 MODULE = Moose PACKAGE = Moose::Exporter
129 MOP_CALL_BOOT (boot_Class__MOP);
130 MOP_CALL_BOOT (boot_Class__MOP__Mixin__HasAttributes);
131 MOP_CALL_BOOT (boot_Class__MOP__Mixin__HasMethods);
132 MOP_CALL_BOOT (boot_Class__MOP__Package);
133 MOP_CALL_BOOT (boot_Class__MOP__Mixin__AttributeCore);
134 MOP_CALL_BOOT (boot_Class__MOP__Method);
135 MOP_CALL_BOOT (boot_Class__MOP__Method__Inlined);
136 MOP_CALL_BOOT (boot_Class__MOP__Method__Generated);
137 MOP_CALL_BOOT (boot_Class__MOP__Class);
138 MOP_CALL_BOOT (boot_Class__MOP__Attribute);
139 MOP_CALL_BOOT (boot_Class__MOP__Instance);
142 _flag_as_reexport (SV *sv)
144 sv_magicext(SvRV(sv), NULL, PERL_MAGIC_ext, &export_flag_vtbl, NULL, 0);
147 _export_is_flagged (SV *sv)
149 RETVAL = export_flag_is_set(aTHX_ sv);
153 MODULE = Moose PACKAGE = Moose::Util::TypeConstraints::OptimizedConstraints
156 RegexpRef (SV *sv=NULL)