Lines Matching defs:mg

3008 		MAGIC *mg;
3015 && (mg = mg_find(sv, PERL_MAGIC_qr))) {
3016 regexp *re = (regexp *)mg->mg_obj;
3018 if (!mg->mg_ptr) {
3041 mg->mg_len = re->prelen + 4 + left;
3068 mg->mg_len++; /* save space for it */
3075 New(616, mg->mg_ptr, mg->mg_len + 1 + left, char);
3076 Copy("(?", mg->mg_ptr, 2, char);
3077 Copy(reflags, mg->mg_ptr+2, left, char);
3078 Copy(":", mg->mg_ptr+left+2, 1, char);
3079 Copy(re->precomp, mg->mg_ptr+3+left, re->prelen, char);
3081 mg->mg_ptr[mg->mg_len - 2] = '\n';
3082 mg->mg_ptr[mg->mg_len - 1] = ')';
3083 mg->mg_ptr[mg->mg_len] = 0;
3091 *lp = mg->mg_len;
3092 return mg->mg_ptr;
4575 MAGIC* mg;
4580 Newz(702,mg, 1, MAGIC);
4581 mg->mg_moremagic = SvMAGIC(sv);
4582 SvMAGIC(sv) = mg;
4601 mg->mg_obj = obj;
4604 mg->mg_obj = SvREFCNT_inc(obj);
4605 mg->mg_flags |= MGf_REFCOUNTED;
4622 mg->mg_type = how;
4623 mg->mg_len = namlen;
4626 mg->mg_ptr = savepvn(name, namlen);
4628 mg->mg_ptr = (char*)SvREFCNT_inc((SV*)name);
4630 mg->mg_ptr = (char *) name;
4632 mg->mg_virtual = vtable;
4637 return mg;
4652 MAGIC* mg;
4668 if (SvMAGIC(sv) && (mg = mg_find(sv, how))) {
4673 mg->mg_len |= 1;
4797 mg = sv_magicext(sv,obj,how,vtable,name,namlen);
4801 mg->mg_len = 1;
4821 MAGIC* mg;
4826 for (mg = *mgp; mg; mg = *mgp) {
4827 if (mg->mg_type == type) {
4828 MGVTBL* vtbl = mg->mg_virtual;
4829 *mgp = mg->mg_moremagic;
4831 CALL_FPTR(vtbl->svt_free)(aTHX_ sv, mg);
4832 if (mg->mg_ptr && mg->mg_type != PERL_MAGIC_regex_global) {
4833 if (mg->mg_len > 0)
4834 Safefree(mg->mg_ptr);
4835 else if (mg->mg_len == HEf_SVKEY)
4836 SvREFCNT_dec((SV*)mg->mg_ptr);
4837 else if (mg->mg_type == PERL_MAGIC_utf8 && mg->mg_ptr)
4838 Safefree(mg->mg_ptr);
4840 if (mg->mg_flags & MGf_REFCOUNTED)
4841 SvREFCNT_dec(mg->mg_obj);
4842 Safefree(mg);
4845 mgp = &mg->mg_moremagic;
4894 MAGIC *mg;
4895 if (SvMAGICAL(tsv) && (mg = mg_find(tsv, PERL_MAGIC_backref)))
4896 av = (AV*)mg->mg_obj;
4930 MAGIC *mg = NULL;
4931 if (!SvMAGICAL(tsv) || !(mg = mg_find(tsv, PERL_MAGIC_backref)))
4933 av = (AV *)mg->mg_obj;
5421 MAGIC *mg = SvMAGICAL(sv) ? mg_find(sv, PERL_MAGIC_utf8) : 0;
5423 if (mg && mg->mg_len != -1 && (mg->mg_len > 0 || len == 0)) {
5424 ulen = mg->mg_len;
5431 if (!mg && !SvREADONLY(sv)) {
5433 mg = mg_find(sv, PERL_MAGIC_utf8);
5434 assert(mg);
5436 if (mg)
5437 mg->mg_len = ulen;
5632 MAGIC *mg = 0;
5635 if (utf8_mg_pos(sv, &mg, &cache, 0, offsetp, *offsetp, &s, start, send))
5642 if (utf8_mg_pos_init(sv, &mg, &cache, 0, offsetp, s, start))
5649 if (utf8_mg_pos(sv, &mg, &cache, 2, lenp, *lenp + *offsetp, &s, start, send)) {
5660 utf8_mg_pos_init(sv, &mg, &cache, 2, lenp, s, start);
5706 MAGIC* mg = NULL;
5712 mg = mg_find(sv, PERL_MAGIC_utf8);
5713 if (mg && mg->mg_ptr) {
5714 cache = (STRLEN *) mg->mg_ptr;
5781 if (!mg) {
5783 mg = mg_find(sv, PERL_MAGIC_utf8);
5785 assert(mg);
5787 if (!mg->mg_ptr) {
5789 mg->mg_ptr = (char *) cache;
6059 MAGIC *mg;
6061 mg = SvMAGICAL(sv) ? mg_find(sv, PERL_MAGIC_collxfrm) : (MAGIC *) NULL;
6062 if (!mg || !mg->mg_ptr || *(U32*)mg->mg_ptr != PL_collation_ix) {
6066 if (mg)
6067 Safefree(mg->mg_ptr);
6075 if (! mg) {
6077 mg = mg_find(sv, PERL_MAGIC_collxfrm);
6078 assert(mg);
6080 mg->mg_ptr = xf;
6081 mg->mg_len = xlen;
6084 if (mg) {
6085 mg->mg_ptr = NULL;
6086 mg->mg_len = -1;
6090 if (mg && mg->mg_ptr) {
6091 *nxp = mg->mg_len;
6092 return mg->mg_ptr + sizeof(PL_collation_ix);
8001 MAGIC *mg = mg_find(sv, PERL_MAGIC_taint);
8002 if (mg)
8003 mg->mg_len &= ~1;
8018 MAGIC *mg = mg_find(sv, PERL_MAGIC_taint);
8019 if (mg && ((mg->mg_len & 1) || ((mg->mg_len & 2) && mg->mg_obj == sv)))
9522 Perl_mg_dup(pTHX_ MAGIC *mg, CLONE_PARAMS* param)
9526 if (!mg)
9529 mgret = (MAGIC*)ptr_table_fetch(PL_ptr_table, mg);
9533 for (; mg; mg = mg->mg_moremagic) {
9540 nmg->mg_virtual = mg->mg_virtual; /* XXX copy dynamic vtable? */
9541 nmg->mg_private = mg->mg_private;
9542 nmg->mg_type = mg->mg_type;
9543 nmg->mg_flags = mg->mg_flags;
9544 if (mg->mg_type == PERL_MAGIC_qr) {
9545 nmg->mg_obj = (SV*)re_dup((REGEXP*)mg->mg_obj, param);
9547 else if(mg->mg_type == PERL_MAGIC_backref) {
9548 AV *av = (AV*) mg->mg_obj;
9560 nmg->mg_obj = (mg->mg_flags & MGf_REFCOUNTED)
9561 ? sv_dup_inc(mg->mg_obj, param)
9562 : sv_dup(mg->mg_obj, param);
9564 nmg->mg_len = mg->mg_len;
9565 nmg->mg_ptr = mg->mg_ptr; /* XXX random ptr? */
9566 if (mg->mg_ptr && mg->mg_type != PERL_MAGIC_regex_global) {
9567 if (mg->mg_len > 0) {
9568 nmg->mg_ptr = SAVEPVN(mg->mg_ptr, mg->mg_len);
9569 if (mg->mg_type == PERL_MAGIC_overload_table &&
9570 AMT_AMAGIC((AMT*)mg->mg_ptr))
9572 AMT *amtp = (AMT*)mg->mg_ptr;
9580 else if (mg->mg_len == HEf_SVKEY)
9581 nmg->mg_ptr = (char*)sv_dup_inc((SV*)mg->mg_ptr, param);
9583 if ((mg->mg_flags & MGf_DUP) && mg->mg_virtual && mg->mg_virtual->svt_dup) {