summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Ing-Simmons <nik@tiuk.ti.com>1998-01-13 22:55:02 +0000
committerNick Ing-Simmons <nik@tiuk.ti.com>1998-01-13 22:55:02 +0000
commit1393e20655efb4bcc2062605bfe887dd5e634bc1 (patch)
tree0bd8c4701b965a4afe3e2876808255d0b1743562
parentab3c85350aa85d8f47cd7983fff31f525e769c31 (diff)
downloadperl-1393e20655efb4bcc2062605bfe887dd5e634bc1.tar.gz
tiearray tweaks
p4raw-id: //depot/ansiperl@420
-rw-r--r--av.c1
-rw-r--r--pp_sys.c8
-rwxr-xr-x[-rw-r--r--]t/op/nothread.t0
-rwxr-xr-x[-rw-r--r--]t/op/tiearray.t4
4 files changed, 9 insertions, 4 deletions
diff --git a/av.c b/av.c
index 45d4628fef..e715d10b63 100644
--- a/av.c
+++ b/av.c
@@ -364,6 +364,7 @@ av_undef(register AV *av)
SvREFCNT_dec(AvARRAY(av)[--key]);
}
Safefree(AvALLOC(av));
+ AvARRAY(av) = 0;
AvALLOC(av) = 0;
SvPVX(av) = 0;
AvMAX(av) = AvFILLp(av) = -1;
diff --git a/pp_sys.c b/pp_sys.c
index 26886d1af1..85ac7111a2 100644
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -565,7 +565,13 @@ PP(pp_tie)
sv = TOPs;
if (sv_isobject(sv)) {
if (SvTYPE(varsv) == SVt_PVHV || SvTYPE(varsv) == SVt_PVAV) {
- sv_unmagic(varsv, 'P');
+ sv_unmagic(varsv, 'P');
+#ifdef DEBUGGING
+ if (SvTYPE(varsv) == SVt_PVAV) {
+ AV *av = (AV *) varsv;
+ av_undef(av);
+ }
+#endif
sv_magic(varsv, sv, 'P', Nullch, 0);
}
else {
diff --git a/t/op/nothread.t b/t/op/nothread.t
index 7d42d276c8..7d42d276c8 100644..100755
--- a/t/op/nothread.t
+++ b/t/op/nothread.t
diff --git a/t/op/tiearray.t b/t/op/tiearray.t
index 028fe40c60..045891dd42 100644..100755
--- a/t/op/tiearray.t
+++ b/t/op/tiearray.t
@@ -174,9 +174,7 @@ print "ok ", $test++,"\n";
print "not " unless join(':',@ary) eq '1:2:3';
print "ok ", $test++,"\n";
-untie @ary;
-
-exit;
+# untie @ary;
}