Fix for sv_2iv() on "shared" value from keys %hash.
Nick Ing-Simmons [Sat, 28 Oct 2000 10:43:44 +0000 (10:43 +0000)]
p4raw-id: //depot/perl@7464

sv.c

diff --git a/sv.c b/sv.c
index 726f853..5fd6533 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -1497,6 +1497,9 @@ Perl_sv_2iv(pTHX_ register SV *sv)
              return SvIV(tmpstr);
          return PTR2IV(SvRV(sv));
        }
+       if (SvREADONLY(sv) && SvFAKE(sv)) {
+           sv_force_normal(sv);
+       }
        if (SvREADONLY(sv) && !SvOK(sv)) {
            dTHR;
            if (ckWARN(WARN_UNINITIALIZED))
@@ -2764,7 +2767,7 @@ Perl_sv_setsv(pTHX_ SV *dstr, register SV *sstr)
                                    Perl_warner(aTHX_ WARN_REDEFINE,
                                        CvCONST(cv)
                                        ? "Constant subroutine %s redefined"
-                                       : "Subroutine %s redefined", 
+                                       : "Subroutine %s redefined",
                                        GvENAME((GV*)dstr));
                                }
                            }