Lines Matching defs:mg
3587 MAGIC * mg = mg_find(sv, PERL_MAGIC_regex_global);
3588 if (mg) {
3589 mg->mg_flags &= ~MGf_BYTES;
3591 if ((mg = mg_find(sv, PERL_MAGIC_utf8)))
3592 magic_setutf8(sv,mg); /* clear UTF8 cache */
3641 MAGIC * mg = mg_find(sv, PERL_MAGIC_regex_global);
3642 if (mg && mg->mg_len > 0 && mg->mg_flags & MGf_BYTES) {
3643 mg->mg_len = sv_pos_b2u_flags(sv, mg->mg_len,
3647 if ((mg = mg_find(sv, PERL_MAGIC_utf8)))
3648 magic_setutf8(sv,mg); /* clear UTF8 cache */
3732 MAGIC * mg = mg_find(sv, PERL_MAGIC_regex_global);
3733 if (mg) {
3734 SSize_t pos = mg->mg_len;
3740 mg->mg_len = c - start;
3743 if ((mg = mg_find(sv, PERL_MAGIC_utf8)))
3744 magic_setutf8(sv,mg); /* clear UTF8 cache */
3888 MAGIC *mg;
3890 if (SvSMAGICAL(sref) && (mg = mg_find(sref, PERL_MAGIC_isa))) {
3891 if (SvTYPE(mg->mg_obj) != SVt_PVAV) {
3893 av_push_simple(ary, mg->mg_obj); /* takes the refcount */
3895 mg->mg_obj = (SV *)ary;
3897 av_push((AV *)mg->mg_obj, SvREFCNT_inc_simple_NN(dsv));
4071 MAGIC *mg;
4075 if (SvSMAGICAL(sref) && (mg = mg_find(sref, PERL_MAGIC_isa))) {
4076 if (SvTYPE(mg->mg_obj) != SVt_PVAV) {
4078 av_push_simple(ary, mg->mg_obj); /* takes the refcount */
4079 mg->mg_obj = (SV *)ary;
4087 (AV *)mg->mg_obj,
4093 (AV *)mg->mg_obj,
4098 av_push((AV *)mg->mg_obj,SvREFCNT_inc_simple_NN(dsv));
4114 mg = mg_find(sref, PERL_MAGIC_isa);
4120 assert(mg);
4121 Perl_magic_clearisa(aTHX_ NULL, mg);
5836 MAGIC* mg;
5841 Newxz(mg, 1, MAGIC);
5842 mg->mg_moremagic = SvMAGIC(sv);
5843 SvMAGIC_set(sv, mg);
5864 mg->mg_obj = obj;
5867 mg->mg_obj = SvREFCNT_inc_simple(obj);
5868 mg->mg_flags |= MGf_REFCOUNTED;
5885 mg->mg_type = how;
5886 mg->mg_len = namlen;
5889 mg->mg_ptr = savepvn(name, namlen);
5895 mg->mg_ptr = (char*)SvREFCNT_inc_simple_NN((SV *)name);
5897 mg->mg_ptr = (char *) name;
5899 mg->mg_virtual = (MGVTBL *) vtable;
5902 return mg;
5940 MAGIC* mg;
5969 if (SvMAGIC(sv) && (mg = mg_find(sv, how))) {
5974 mg->mg_len |= 1;
5980 mg = sv_magicext(sv,obj,how,vtable,name,namlen);
5984 mg->mg_len = 1;
5996 MAGIC* mg;
6004 for (mg = *mgp; mg; mg = *mgp) {
6005 const MGVTBL* const virt = mg->mg_virtual;
6006 if (mg->mg_type == type && (!flags || virt == vtbl)) {
6007 *mgp = mg->mg_moremagic;
6009 virt->svt_free(aTHX_ sv, mg);
6010 if (mg->mg_ptr && mg->mg_type != PERL_MAGIC_regex_global) {
6011 if (mg->mg_len > 0)
6012 Safefree(mg->mg_ptr);
6013 else if (mg->mg_len == HEf_SVKEY)
6014 SvREFCNT_dec(MUTABLE_SV(mg->mg_ptr));
6015 else if (mg->mg_type == PERL_MAGIC_utf8)
6016 Safefree(mg->mg_ptr);
6018 if (mg->mg_flags & MGf_REFCOUNTED)
6019 SvREFCNT_dec(mg->mg_obj);
6020 Safefree(mg);
6023 mgp = &mg->mg_moremagic;
6169 MAGIC *mg = mg_find(sv, PERL_MAGIC_backref);
6170 if (mg)
6171 backrefs = mg->mg_obj;
6208 MAGIC *mg = NULL;
6218 mg = mg_find(tsv, PERL_MAGIC_backref);
6219 if (!mg)
6220 mg = sv_magicext(tsv, NULL, PERL_MAGIC_backref, &PL_vtbl_backref, NULL, 0);
6221 svp = &(mg->mg_obj);
6230 if (mg)
6231 mg->mg_flags |= MGf_REFCOUNTED;
6299 MAGIC *const mg
6301 svp = mg ? &(mg->mg_obj) : NULL;
7425 MAGIC *mg = SvMAGICAL(sv) ? mg_find(sv, PERL_MAGIC_utf8) : NULL;
7427 if (mg && (mg->mg_len != -1 || mg->mg_ptr)) {
7428 if (mg->mg_len != -1)
7429 ulen = mg->mg_len;
7433 STRLEN *cache = (STRLEN *) mg->mg_ptr;
7446 utf8_mg_len_cache_update(sv, &mg, ulen);
7668 MAGIC *mg = NULL;
7669 boffset = sv_pos_u2b_cached(sv, &mg, start, send, uoffset, 0, 0);
7677 = sv_pos_u2b_cached(sv, &mg, start, send, uoffset2,
7934 MAGIC* mg = NULL;
7951 && (mg = mg_find(sv, PERL_MAGIC_utf8)))
7953 if (mg->mg_ptr) {
7954 STRLEN * const cache = (STRLEN *) mg->mg_ptr;
7966 if (mg->mg_len != -1) {
7970 s + blen, mg->mg_len - cache[0]);
7992 } else if (mg->mg_len != -1) {
7993 len = S_sv_pos_b2u_midway(aTHX_ s, send, s + blen, mg->mg_len);
8007 utf8_mg_len_cache_update(sv, &mg, len);
8009 utf8_mg_pos_cache_update(sv, &mg, offset, len, blen);
8574 MAGIC *mg;
8578 mg = SvMAGICAL(sv) ? mg_find(sv, PERL_MAGIC_collxfrm) : (MAGIC *) NULL;
8582 if (!mg || !mg->mg_ptr || *(U32*)mg->mg_ptr != PL_collation_ix) {
8588 if (mg)
8589 Safefree(mg->mg_ptr);
8593 if (! mg) {
8594 mg = sv_magicext(sv, 0, PERL_MAGIC_collxfrm, &PL_vtbl_collxfrm,
8596 assert(mg);
8598 mg->mg_ptr = xf;
8599 mg->mg_len = xlen;
8602 if (mg) {
8603 mg->mg_ptr = NULL;
8604 mg->mg_len = -1;
8609 if (mg && mg->mg_ptr) {
8610 *nxp = mg->mg_len;
8611 return mg->mg_ptr + sizeof(PL_collation_ix);
10148 MAGIC * const mg = mg_find((const SV *)stash, PERL_MAGIC_symtab);
10149 if (mg && mg->mg_len) {
10150 const U32 count = mg->mg_len / sizeof(PMOP**);
10151 PMOP **pmp = (PMOP**) mg->mg_ptr;
10519 /* WARNING - There is code, for instance in mg.c, that assumes that
10997 MAGIC * const mg = mg_find(sv, PERL_MAGIC_taint);
10998 if (mg)
10999 mg->mg_len &= ~1;
11018 const MAGIC * const mg = mg_find(sv, PERL_MAGIC_taint);
11019 if (mg && (mg->mg_len & 1) )
13836 MAGIC *mg = mg_find(sv, PERL_MAGIC_utf8);
13837 if (mg)
13838 magic_setutf8(sv,mg); /* clear UTF8 cache */
14183 Perl_mg_dup(pTHX_ MAGIC *mg, CLONE_PARAMS *const param)
14190 for (; mg; mg = mg->mg_moremagic) {
14194 && mg->mg_type == PERL_MAGIC_backref)
14208 *nmg = *mg;
16620 MAGIC * mg = mg_find(sv, PERL_MAGIC_regex_global);
16621 if (mg)
16622 mg->mg_len = -1;
16623 if ((mg = mg_find(sv, PERL_MAGIC_utf8)))
16624 magic_setutf8(sv,mg); /* clear UTF8 cache */