perlfaq typos
[p5sagit/p5-mst-13.2.git] / sv.c
diff --git a/sv.c b/sv.c
index 90a4e0d..e10cfe2 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -694,7 +694,7 @@ sv_upgrade(register SV *sv, U32 mt)
        cur     = 0;
        len     = 0;
        nv      = SvNVX(sv);
-       iv      = (IV)nv;
+       iv      = I_V(nv);
        magic   = 0;
        stash   = 0;
        del_XNV(SvANY(sv));
@@ -2884,6 +2884,7 @@ sv_clear(register SV *sv)
                                 G_DISCARD|G_EVAL|G_KEEPERR);
                    SvREFCNT(sv)--;
                    POPSTACK;
+                   SPAGAIN;
                    LEAVE;
                }
            } while (SvOBJECT(sv) && SvSTASH(sv) != stash);
@@ -4047,6 +4048,10 @@ sv_2cv(SV *sv, HV **st, GV **gvp, I32 lref)
        if (SvGMAGICAL(sv))
            mg_get(sv);
        if (SvROK(sv)) {
+           dTHR;
+           SV **sp = &sv;              /* Used in tryAMAGICunDEREF macro. */
+           tryAMAGICunDEREF(to_cv);
+
            cv = (CV*)SvRV(sv);
            if (SvTYPE(cv) != SVt_PVCV)
                croak("Not a subroutine reference");