6 STATIC int unset_export_flag (pTHX_ SV *sv, MAGIC *mg);
8 STATIC MGVTBL export_flag_vtbl = {
10 unset_export_flag, /* set */
20 export_flag_is_set (pTHX_ SV *sv)
22 MAGIC *mg, *moremagic;
24 if (SvTYPE(SvRV(sv)) != SVt_PVGV) {
28 for (mg = SvMAGIC(SvRV(sv)); mg; mg = moremagic) {
29 moremagic = mg->mg_moremagic;
31 if (mg->mg_type == PERL_MAGIC_ext && mg->mg_virtual == &export_flag_vtbl) {
40 unset_export_flag (pTHX_ SV *sv, MAGIC *mymg)
42 MAGIC *mg, *prevmagic = NULL, *moremagic = NULL;
44 for (mg = SvMAGIC(sv); mg; prevmagic = mg, mg = moremagic) {
45 moremagic = mg->mg_moremagic;
57 prevmagic->mg_moremagic = moremagic;
60 SvMAGIC_set(sv, moremagic);
63 mg->mg_moremagic = NULL;
70 MODULE = Moose PACKAGE = Moose::Exporter
73 _flag_as_reexport (SV *sv)
76 sv_magicext(SvRV(sv), NULL, PERL_MAGIC_ext, &export_flag_vtbl, NULL, 0);
79 _export_is_flagged (SV *sv)
82 RETVAL = export_flag_is_set(aTHX_ sv);