X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=Magic.xs;h=82bf5dd022c5a614e9f15095f7f72a1c7cdd0453;hb=2eff3964bde4659b291a8d944cabbaef604f40c2;hp=bfc75c9400048207f4e9ff5b59c980a14cc91b00;hpb=8d799ecef898c3eae133d58ce629b9b2340c0ac2;p=perl%2Fmodules%2FVariable-Magic.git diff --git a/Magic.xs b/Magic.xs index bfc75c9..82bf5dd 100644 --- a/Magic.xs +++ b/Magic.xs @@ -266,17 +266,18 @@ STATIC UV vmg_cast(pTHX_ SV *sv, SV *wiz, AV *args) { data = (w->cb_data) ? vmg_data_new(w->cb_data, sv, args) : NULL; mg = sv_magicext(sv, data, PERL_MAGIC_ext, w->vtbl, (const char *) wiz, HEf_SVKEY); mg->mg_private = w->sig; - mg->mg_flags = mg->mg_flags #if MGf_COPY - | MGf_COPY + if (w->cb_copy) + mg->mg_flags |= MGf_COPY; #endif /* MGf_COPY */ #if MGf_DUP - | MGf_DUP + if (w->cb_dup) + mg->mg_flags |= MGf_DUP; #endif /* MGf_DUP */ #if MGf_LOCAL - | MGf_LOCAL + if (w->cb_local) + mg->mg_flags |= MGf_LOCAL; #endif /* MGf_LOCAL */ - ; #if VMG_UVAR if (w->uvar && SvTYPE(sv) >= SVt_PVHV) {