Noticed that two tests were skipped as perlio:: package
Nick Ing-Simmons [Thu, 29 Mar 2001 09:03:43 +0000 (09:03 +0000)]
isn't there any more. Changed the skip condition.
Avoid core-dump if sv_utf8_upgrade() called on something
that does not become SvPOK after SvPV() (e.g. a ref).

p4raw-id: //depot/perlio@9429

sv.c
t/io/utf8.t
t/lib/io_scalar.t

diff --git a/sv.c b/sv.c
index 7e98be6..704718e 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -2966,8 +2966,12 @@ Perl_sv_utf8_upgrade(pTHX_ register SV *sv)
     if (!sv)
        return 0;
 
-    if (!SvPOK(sv))
-       (void) SvPV_nolen(sv);
+    if (!SvPOK(sv)) {
+       STRLEN len = 0;
+       (void) sv_2pv(sv,&len);
+       if (!SvPOK(sv))
+            return len;
+    }
 
     if (SvUTF8(sv))
        return SvCUR(sv);
index 07e626f..38d7007 100755 (executable)
@@ -3,7 +3,7 @@
 BEGIN {
     chdir 't' if -d 't';
     @INC = '../lib';
-    unless (defined &perlio::import) {
+    unless (exists $open::layers{'perlio'}) {
        print "1..0 # Skip: not perlio\n";
        exit 0;
     }
index 569abd7..3679550 100644 (file)
@@ -3,7 +3,7 @@
 BEGIN {
     chdir 't' if -d 't';
     @INC = '../lib';
-    unless (defined &perlio::import) {
+    unless (exists $open::layers{'perlio'}) {
        print "1..0 # Skip: not perlio\n";
        exit 0;
     }