Lines Matching defs:ary
5329 /* %ary[1,3,5] */
6106 AV *ary = MUTABLE_AV(*++MARK);
6115 const MAGIC * const mg = SvTIED_mg((const SV *)ary, PERL_MAGIC_tied);
6118 return Perl_tied_method(aTHX_ SV_CONST(SPLICE), mark - 1, MUTABLE_SV(ary), mg,
6123 if (SvREADONLY(ary))
6131 offset += AvFILLp(ary) + 1;
6137 length += AvFILLp(ary) - offset + 1;
6143 length = AvMAX(ary) + 1; /* close enough to infinity */
6147 length = AvMAX(ary) + 1;
6149 if (offset > AvFILLp(ary) + 1) {
6152 offset = AvFILLp(ary) + 1;
6154 after = AvFILLp(ary) + 1 - (offset + length);
6158 if (!AvALLOC(ary))
6159 av_extend(ary, 0);
6166 if (newlen && !AvREAL(ary) && AvREIFY(ary))
6167 av_reify(ary);
6184 const bool real = cBOOL(AvREAL(ary));
6189 if ((*dst = AvARRAY(ary)[i+offset])) {
6200 *MARK = AvARRAY(ary)[offset+length-1];
6201 if (AvREAL(ary)) {
6203 for (i = length - 1, dst = &AvARRAY(ary)[offset]; i > 0; i--)
6209 AvFILLp(ary) += diff;
6215 src = &AvARRAY(ary)[offset-1];
6220 dst = AvARRAY(ary);
6221 AvARRAY(ary) = AvARRAY(ary) - diff; /* diff is negative */
6222 AvMAX(ary) += diff;
6226 src = AvARRAY(ary) + offset + length;
6230 dst = &AvARRAY(ary)[AvFILLp(ary)+1];
6238 Copy( tmparyval, AvARRAY(ary) + offset, newlen, SV* );
6246 Copy(AvARRAY(ary)+offset, tmparyval, length, SV*);
6251 if (offset < after && diff <= AvARRAY(ary) - AvALLOC(ary)) {
6253 src = AvARRAY(ary);
6257 AvARRAY(ary) = AvARRAY(ary) - diff;/* diff is positive */
6258 AvMAX(ary) += diff;
6259 AvFILLp(ary) += diff;
6262 if (AvFILLp(ary) + diff >= AvMAX(ary)) /* oh, well */
6263 av_extend(ary, AvFILLp(ary) + diff);
6264 AvFILLp(ary) += diff;
6267 dst = AvARRAY(ary) + AvFILLp(ary);
6277 Copy( MARK, AvARRAY(ary) + offset, newlen, SV* );
6283 const bool real = cBOOL(AvREAL(ary));
6299 if (AvREAL(ary)) {
6312 if (SvMAGICAL(ary))
6313 mg_set(MUTABLE_SV(ary));
6323 AV * const ary = MUTABLE_AV(*++MARK);
6324 const MAGIC * const mg = SvTIED_mg((const SV *)ary, PERL_MAGIC_tied);
6328 SV *obj = SvTIED_obj(MUTABLE_SV(ary), mg);
6330 /* keep ary alive as it's replaced on the stack with obj */
6331 SAVEFREESV(MUTABLE_SV(ary));
6344 if (SvREADONLY(ary) && MARK < PL_stack_sp)
6353 av_store(ary, AvFILLp(ary)+1, sv);
6356 mg_set(MUTABLE_SV(ary));
6363 TARGi(AvFILL(ary) + 1, 1);
6390 AV *ary = MUTABLE_AV(*++MARK);
6391 const MAGIC * const mg = SvTIED_mg((const SV *)ary, PERL_MAGIC_tied);
6395 SV *obj = SvTIED_obj(MUTABLE_SV(ary), mg);
6397 /* keep ary alive as it's replaced on the stack with obj */
6398 SAVEFREESV(MUTABLE_SV(ary));
6413 av_unshift(ary, PL_stack_sp - MARK);
6416 if (!SvMAGICAL(ary)) {
6418 * av_store are unnecessary. If ary does not have magic attached
6422 assert( !SvTIED_mg((const SV *)ary, PERL_MAGIC_tied) );
6424 assert( !SvREADONLY(ary) );
6425 assert( AvREAL(ary) || !AvREIFY(ary) );
6426 assert( i <= AvMAX(ary) );
6427 assert( i <= AvFILLp(ary) );
6428 if (AvREAL(ary))
6429 SvREFCNT_dec(AvARRAY(ary)[i]);
6430 AvARRAY(ary)[i] = sv;
6436 (void)av_store(ary, i++, sv);
6441 mg_set(MUTABLE_SV(ary));
6448 TARGi(AvFILL(ary) + 1, 1);
6598 AV *ary = ( (PL_op->op_private & OPpSPLIT_ASSIGN) /* @a = split */
6634 /* handle @ary = split(...) optimisation */
6641 ary = (AV *)PAD_SVl(pm->op_pmreplrootu.op_pmtargetoff);
6651 ary = save_ary(gv);
6653 ary = GvAVn(gv);
6660 (void)sv_2mortal(SvREFCNT_inc_simple_NN(ary));
6662 if ((mg = SvTIED_mg((const SV *)ary, PERL_MAGIC_tied))) {
6664 XPUSHs(SvTIED_obj(MUTABLE_SV(ary), mg));
6691 gimme_scalar = gimme == G_SCALAR && !ary;
6981 if(AvREAL(ary)) {
6982 if (av_count(ary) > 0)
6983 av_clear(ary);
6985 AvREAL_on(ary);
6986 AvREIFY_off(ary);
6988 if (AvMAX(ary) > -1) {
6990 Zero(AvARRAY(ary), AvMAX(ary), SV*);
6993 if(AvMAX(ary) < iters)
6994 av_extend(ary,iters);
6997 /* Need to copy the SV*s from the stack into ary */
6998 Copy(SP + 1 - iters, AvARRAY(ary), iters, SV*);
6999 AvFILLp(ary) = iters - 1;
7001 if (SvSMAGICAL(ary)) {
7003 mg_set(MUTABLE_SV(ary));
7017 av_extend(ary,iters);
7018 av_clear(ary);
7030 SV **svp = av_fetch(ary, i, FALSE);