Change 21039 by [EMAIL PROTECTED] on 2003/09/05 04:13:17
Another seemingly fixed (un)tie bug,
[perl ##22297] cannot untie scalar from within tied FETCH
Affected files ...
... //depot/perl/t/op/tie.t#35 edit
Differences ...
==== //depot/perl/t/op/tie.t#35 (xtext) ====
Index: perl/t/op/tie.t
--- perl/t/op/tie.t#34~21003~ Tue Sep 2 12:01:07 2003
+++ perl/t/op/tie.t Thu Sep 4 21:13:17 2003
@@ -405,3 +405,44 @@
4
Three
4
+########
+# [perl #22297] cannot untie scalar from within tied FETCH
+my $counter = 0;
+my $x = 7;
+my $ref = \$x;
+tie $x, 'Overlay', $ref, $x;
+my $y;
+$y = $x;
+$y = $x;
+$y = $x;
+$y = $x;
+#print "WILL EXTERNAL UNTIE $ref\n";
+untie $$ref;
+$y = $x;
+$y = $x;
+$y = $x;
+$y = $x;
+#print "counter = $counter\n";
+
+print (($counter == 1) ? "ok\n" : "not ok\n");
+
+package Overlay;
+
+sub TIESCALAR
+{
+ my $pkg = shift;
+ my ($ref, $val) = @_;
+ return bless [ $ref, $val ], $pkg;
+}
+
+sub FETCH
+{
+ my $self = shift;
+ my ($ref, $val) = @$self;
+ #print "WILL INTERNAL UNITE $ref\n";
+ $counter++;
+ untie $$ref;
+ return $val;
+}
+EXPECT
+ok
End of Patch.