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;
89 EXTERN_C XS(boot_Class__MOP);
90 EXTERN_C XS(boot_Class__MOP__Mixin__HasAttributes);
91 EXTERN_C XS(boot_Class__MOP__Mixin__HasMethods);
92 EXTERN_C XS(boot_Class__MOP__Package);
93 EXTERN_C XS(boot_Class__MOP__Mixin__AttributeCore);
94 EXTERN_C XS(boot_Class__MOP__Method);
95 EXTERN_C XS(boot_Class__MOP__Method__Inlined);
96 EXTERN_C XS(boot_Class__MOP__Method__Generated);
97 EXTERN_C XS(boot_Class__MOP__Class);
98 EXTERN_C XS(boot_Class__MOP__Attribute);
99 EXTERN_C XS(boot_Class__MOP__Instance);
101 MODULE = Moose PACKAGE = Moose::Exporter
108 MOP_CALL_BOOT (boot_Class__MOP);
109 MOP_CALL_BOOT (boot_Class__MOP__Mixin__HasAttributes);
110 MOP_CALL_BOOT (boot_Class__MOP__Mixin__HasMethods);
111 MOP_CALL_BOOT (boot_Class__MOP__Package);
112 MOP_CALL_BOOT (boot_Class__MOP__Mixin__AttributeCore);
113 MOP_CALL_BOOT (boot_Class__MOP__Method);
114 MOP_CALL_BOOT (boot_Class__MOP__Method__Inlined);
115 MOP_CALL_BOOT (boot_Class__MOP__Method__Generated);
116 MOP_CALL_BOOT (boot_Class__MOP__Class);
117 MOP_CALL_BOOT (boot_Class__MOP__Attribute);
118 MOP_CALL_BOOT (boot_Class__MOP__Instance);
121 _flag_as_reexport (SV *sv)
123 sv_magicext(SvRV(sv), NULL, PERL_MAGIC_ext, &export_flag_vtbl, NULL, 0);
126 _export_is_flagged (SV *sv)
128 RETVAL = export_flag_is_set(aTHX_ sv);