fix $/ init for multiple interpreters/threads
[p5sagit/p5-mst-13.2.git] / perl.c
diff --git a/perl.c b/perl.c
index 9e29975..fe1df90 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -164,9 +164,6 @@ perl_construct(register PerlInterpreter *sv_interp)
            SvREFCNT(&sv_yes) = (~(U32)0)/2;
        }
 
-       nrs = newSVpv("\n", 1);
-       rs = SvREFCNT_inc(nrs);
-
 #ifdef PERL_OBJECT
        /* TODO: */
        /* sighandlerp = sighandler; */
@@ -186,6 +183,9 @@ perl_construct(register PerlInterpreter *sv_interp)
 #endif
     }
 
+    nrs = newSVpv("\n", 1);
+    rs = SvREFCNT_inc(nrs);
+
     init_stacks(ARGS);
 #ifdef MULTIPLICITY
     init_interp();
@@ -428,7 +428,10 @@ perl_destruct(register PerlInterpreter *sv_interp)
     Safefree(ors);     /* $\ */
     ors = Nullch;
 
-    SvREFCNT_dec(nrs); /* $\ helper */
+    SvREFCNT_dec(rs);  /* $/ */
+    rs = Nullsv;
+
+    SvREFCNT_dec(nrs); /* $/ helper */
     nrs = Nullsv;
 
     multiline = 0;     /* $* */