summaryrefslogtreecommitdiff
path: root/scope.c
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1998-01-30 10:44:38 +0000
committerGurusamy Sarathy <gsar@cpan.org>1998-01-30 10:44:38 +0000
commit6b6eec5b869ecabb6b96b0d84c01808aecc78d84 (patch)
treebe188f6c9db63d9911541036c2e15a4d6b607b5d /scope.c
parent65c6b2907476177557b1357ec8e2bda83f220e47 (diff)
parent875e910638b0552c0eec0bc83eb2d5b3f85f5df5 (diff)
downloadperl-6b6eec5b869ecabb6b96b0d84c01808aecc78d84.tar.gz
[asperl] initial merge of latest win32 branch into ASPerl
p4raw-id: //depot/asperl@445
Diffstat (limited to 'scope.c')
-rw-r--r--scope.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/scope.c b/scope.c
index 0e3245147d..0705922675 100644
--- a/scope.c
+++ b/scope.c
@@ -19,8 +19,16 @@ SV**
stack_grow(SV **sp, SV **p, int n)
{
dTHR;
+#if defined(DEBUGGING) && !defined(USE_THREADS)
+ static int growing = 0;
+ if (growing++)
+ abort();
+#endif
stack_sp = sp;
av_extend(curstack, (p - stack_base) + (n) + 128);
+#if defined(DEBUGGING) && !defined(USE_THREADS)
+ growing--;
+#endif
return stack_sp;
}
@@ -197,11 +205,14 @@ AV *
save_ary(GV *gv)
{
dTHR;
- AV *oav, *av;
+ AV *oav = GvAVn(gv);
+ AV *av;
+ if (!AvREAL(oav) && AvREIFY(oav))
+ av_reify(oav);
SSCHECK(3);
SSPUSHPTR(gv);
- SSPUSHPTR(oav = GvAVn(gv));
+ SSPUSHPTR(oav);
SSPUSHINT(SAVEt_AV);
GvAV(gv) = Null(AV*);