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) {
104 (tmpsv = (SV*) SvRV(sv)) &&
105 SvTYPE(tmpsv) == SVt_PVMG &&
106 (mg_find(tmpsv, PERL_MAGIC_qr))) {
114 XS_EXTERNAL(boot_Class__MOP);
115 XS_EXTERNAL(boot_Class__MOP__Mixin__HasAttributes);
116 XS_EXTERNAL(boot_Class__MOP__Mixin__HasMethods);
117 XS_EXTERNAL(boot_Class__MOP__Package);
118 XS_EXTERNAL(boot_Class__MOP__Mixin__AttributeCore);
119 XS_EXTERNAL(boot_Class__MOP__Method);
120 XS_EXTERNAL(boot_Class__MOP__Method__Inlined);
121 XS_EXTERNAL(boot_Class__MOP__Method__Generated);
122 XS_EXTERNAL(boot_Class__MOP__Method__Overload);
123 XS_EXTERNAL(boot_Class__MOP__Class);
124 XS_EXTERNAL(boot_Class__MOP__Attribute);
125 XS_EXTERNAL(boot_Class__MOP__Instance);
127 MODULE = Moose PACKAGE = Moose::Exporter
134 MOP_CALL_BOOT (boot_Class__MOP);
135 MOP_CALL_BOOT (boot_Class__MOP__Mixin__HasAttributes);
136 MOP_CALL_BOOT (boot_Class__MOP__Mixin__HasMethods);
137 MOP_CALL_BOOT (boot_Class__MOP__Package);
138 MOP_CALL_BOOT (boot_Class__MOP__Mixin__AttributeCore);
139 MOP_CALL_BOOT (boot_Class__MOP__Method);
140 MOP_CALL_BOOT (boot_Class__MOP__Method__Inlined);
141 MOP_CALL_BOOT (boot_Class__MOP__Method__Generated);
142 MOP_CALL_BOOT (boot_Class__MOP__Method__Overload);
143 MOP_CALL_BOOT (boot_Class__MOP__Class);
144 MOP_CALL_BOOT (boot_Class__MOP__Attribute);
145 MOP_CALL_BOOT (boot_Class__MOP__Instance);
148 _flag_as_reexport (SV *sv)
150 sv_magicext(SvRV(sv), NULL, PERL_MAGIC_ext, &export_flag_vtbl, NULL, 0);
153 _export_is_flagged (SV *sv)
155 RETVAL = export_flag_is_set(aTHX_ sv);
159 MODULE = Moose PACKAGE = Moose::Util::TypeConstraints::Builtins
162 _RegexpRef (SV *sv=NULL)