jvdias 78a6163
Change 27284 by nicholas@nicholas-saigo on 2006/02/23 14:49:22
jvdias 78a6163
jvdias 78a6163
	Integrate:
jvdias 78a6163
	[ 27002]
jvdias 78a6163
	Code assumes that *FOO{SCALAR} will always return a scalar reference,
jvdias 78a6163
	so make it so, creating $FOO if necessary.
jvdias 78a6163
	(Effectively this is a policy decision that PERL_DONT_CREATE_GVSV is
jvdias 78a6163
	visible to XS code, but isn't visible to Perl code)
jvdias 78a6163
jvdias 78a6163
Affected files ...
jvdias 78a6163
jvdias 78a6163
... //depot/maint-5.8/perl/pp.c#86 integrate
jvdias 78a6163
... //depot/maint-5.8/perl/t/op/gv.t#4 integrate
jvdias 78a6163
jvdias 78a6163
Differences ...
jvdias 78a6163
jvdias 78a6163
==== //depot/maint-5.8/perl/pp.c#86 (text) ====
jvdias 78a6163
Index: perl/pp.c
jvdias 78a6163
--- perl/pp.c#85~26738~	2006-01-08 13:30:11.000000000 -0800
jvdias 78a6163
+++ perl/pp.c	2006-02-23 06:49:22.000000000 -0800
jvdias 78a6163
@@ -604,7 +604,7 @@
jvdias 78a6163
 	    break;
jvdias 78a6163
 	case 'S':
jvdias 78a6163
 	    if (strEQ(second_letter, "CALAR"))
jvdias 78a6163
-		tmpRef = GvSV(gv);
jvdias 78a6163
+		tmpRef = GvSVn(gv);
jvdias 78a6163
 	    break;
jvdias 78a6163
 	}
jvdias 78a6163
     }
jvdias 78a6163
jvdias 78a6163
==== //depot/maint-5.8/perl/t/op/gv.t#4 (xtext) ====
jvdias 78a6163
Index: perl/t/op/gv.t
jvdias 78a6163
--- perl/t/op/gv.t#3~25505~	2005-09-19 15:20:52.000000000 -0700
jvdias 78a6163
+++ perl/t/op/gv.t	2006-02-23 06:49:22.000000000 -0800
jvdias 78a6163
@@ -12,7 +12,7 @@
jvdias 78a6163
 use warnings;
jvdias 78a6163
 
jvdias 78a6163
 require './test.pl';
jvdias 78a6163
-plan( tests => 61 );
jvdias 78a6163
+plan( tests => 63 );
jvdias 78a6163
 
jvdias 78a6163
 # type coersion on assignment
jvdias 78a6163
 $foo = 'foo';
jvdias 78a6163
@@ -218,6 +218,19 @@
jvdias 78a6163
     is ($x, "Rules\n");
jvdias 78a6163
 }
jvdias 78a6163
 
jvdias 78a6163
+
jvdias 78a6163
+{
jvdias 78a6163
+    no warnings qw(once uninitialized);
jvdias 78a6163
+    my $g = \*clatter;
jvdias 78a6163
+    my $r = eval {no strict; ${*{$g}{SCALAR}}};
jvdias 78a6163
+    is ($@, '', "PERL_DONT_CREATE_GVSV shouldn't affect thingy syntax");
jvdias 78a6163
+
jvdias 78a6163
+    $g = \*vowm;
jvdias 78a6163
+    $r = eval {use strict; ${*{$g}{SCALAR}}};
jvdias 78a6163
+    is ($@, '',
jvdias 78a6163
+	"PERL_DONT_CREATE_GVSV shouldn't affect thingy syntax under strict");
jvdias 78a6163
+}
jvdias 78a6163
+
jvdias 78a6163
 __END__
jvdias 78a6163
 Perl
jvdias 78a6163
 Rules
jvdias 78a6163
End of Patch.