diff options
author | Malcolm Beattie <mbeattie@sable.ox.ac.uk> | 1997-05-26 20:10:42 +0000 |
---|---|---|
committer | Malcolm Beattie <mbeattie@sable.ox.ac.uk> | 1997-05-26 20:10:42 +0000 |
commit | 5dc0d6134ebb76636f69238201dde15cec972fd0 (patch) | |
tree | 3f466c13b594ff662ce13454c90ecf35572088ea /av.c | |
parent | 5bc6513ddd9360f3cbfa6bf29425e38b658230f5 (diff) | |
parent | 9ed32d99bcab50ff8df392e9741dd3de08a596a4 (diff) | |
download | perl-5dc0d6134ebb76636f69238201dde15cec972fd0.tar.gz |
Integrate thrperl 5.003->5.004.
p4raw-id: //depot/perl@24
Diffstat (limited to 'av.c')
-rw-r--r-- | av.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -30,8 +30,10 @@ AV* av; while (key) { sv = AvARRAY(av)[--key]; assert(sv); - if (sv != &sv_undef) + if (sv != &sv_undef) { + dTHR; (void)SvREFCNT_inc(sv); + } } key = AvARRAY(av) - AvALLOC(av); while (key) @@ -44,6 +46,7 @@ av_extend(av,key) AV *av; I32 key; { + dTHR; /* only necessary if we have to extend stack */ if (key > AvMAX(av)) { SV** ary; I32 tmp; @@ -134,6 +137,7 @@ I32 lval; if (SvRMAGICAL(av)) { if (mg_find((SV*)av,'P')) { + dTHR; sv = sv_newmortal(); mg_copy((SV*)av, sv, 0, key); Sv = sv; @@ -207,6 +211,7 @@ SV *val; ary = AvARRAY(av); if (AvFILL(av) < key) { if (!AvREAL(av)) { + dTHR; if (av == curstack && key > stack_sp - stack_base) stack_sp = stack_base + key; /* XPUSH in disguise */ do |