summaryrefslogtreecommitdiff
path: root/av.c
diff options
context:
space:
mode:
authorMalcolm Beattie <mbeattie@sable.ox.ac.uk>1997-05-26 20:10:42 +0000
committerMalcolm Beattie <mbeattie@sable.ox.ac.uk>1997-05-26 20:10:42 +0000
commit5dc0d6134ebb76636f69238201dde15cec972fd0 (patch)
tree3f466c13b594ff662ce13454c90ecf35572088ea /av.c
parent5bc6513ddd9360f3cbfa6bf29425e38b658230f5 (diff)
parent9ed32d99bcab50ff8df392e9741dd3de08a596a4 (diff)
downloadperl-5dc0d6134ebb76636f69238201dde15cec972fd0.tar.gz
Integrate thrperl 5.003->5.004.
p4raw-id: //depot/perl@24
Diffstat (limited to 'av.c')
-rw-r--r--av.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/av.c b/av.c
index af3e94e8bc..b9382a8d9c 100644
--- a/av.c
+++ b/av.c
@@ -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