stuff for caller and _ in Safe::
authorCharles Lane <lane@DUPHY4.Physics.Drexel.Edu>
Thu, 14 Dec 2000 20:04:42 +0000 (15:04 -0500)
committerJarkko Hietaniemi <jhi@iki.fi>
Fri, 15 Dec 2000 15:19:34 +0000 (15:19 +0000)
Message-Id: <001214200310.49929@DUPHY4.Physics.Drexel.Edu>

p4raw-id: //depot/perl@8127

ext/Opcode/Opcode.xs

index e191ec7..04f7c3f 100644 (file)
@@ -253,6 +253,12 @@ PPCODE:
     save_hptr(&PL_defstash);           /* save current default stash   */
     /* the assignment to global defstash changes our sense of 'main'   */
     PL_defstash = gv_stashpv(Package, GV_ADDWARN); /* should exist already     */
+    if (strNE(HvNAME(PL_defstash),"main")) {
+        Safefree(HvNAME(PL_defstash));         
+        HvNAME(PL_defstash) = savepv("main"); /* make it think it's in main:: */
+        hv_store(PL_defstash,"_",1,(SV *)PL_defgv,0);  /* connect _ to global */
+        SvREFCNT_inc((SV *)PL_defgv);  /* want to keep _ around! */
+    }
     save_hptr(&PL_curstash);
     PL_curstash = PL_defstash;