diff options
author | Jesse Luehrs <doy@tozt.net> | 2010-11-13 14:16:24 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2010-11-13 14:16:24 -0600 |
commit | 02b4c37321487aa6ec55f8d5d83a60fa19babe0b (patch) | |
tree | 4123225bd921b80f48f1be91ada23c6624d8cd83 | |
parent | c86a163084d5a5fd5182c2523a07d52388a4c672 (diff) | |
download | package-stash-xs-02b4c37321487aa6ec55f8d5d83a60fa19babe0b.tar.gz package-stash-xs-02b4c37321487aa6ec55f8d5d83a60fa19babe0b.zip |
wooo magical
-rw-r--r-- | Stash.xs | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -402,18 +402,25 @@ add_package_symbol(self, variable, initial=NULL, ...) case VAR_SCALAR: SvREFCNT_dec(GvSV(glob)); GvSV(glob) = val; + GvIMPORTED_SV_on(glob); break; case VAR_ARRAY: SvREFCNT_dec(GvAV(glob)); GvAV(glob) = (AV*)val; + GvIMPORTED_AV_on(glob); break; case VAR_HASH: SvREFCNT_dec(GvHV(glob)); GvHV(glob) = (HV*)val; + GvIMPORTED_HV_on(glob); break; case VAR_CODE: SvREFCNT_dec(GvCV(glob)); GvCV(glob) = (CV*)val; + GvIMPORTED_CV_on(glob); + GvASSUMECV_on(glob); + GvCVGEN(glob) = 0; + mro_method_changed_in(GvSTASH(glob)); break; case VAR_IO: SvREFCNT_dec(GvIO(glob)); @@ -525,6 +532,8 @@ remove_package_symbol(self, variable) break; case VAR_CODE: GvCV(glob) = (CV *)NULL; + GvCVGEN(glob) = 0; + mro_method_changed_in(GvSTASH(glob)); break; case VAR_IO: GvIOp(glob) = (IO *)NULL; |