Re: Perl_pp_* in public API?
Craig A. Berry [Tue, 4 Sep 2001 21:51:29 +0000 (16:51 -0500)]
Message-Id: <a05101000b7bb3f558c8a@[172.16.52.1]>

p4raw-id: //depot/perl@11878

ext/List/Util/Util.xs

index b53d59e..8720d98 100644 (file)
@@ -268,15 +268,16 @@ CODE:
     SV *my_pad[2];
     SV **old_curpad = PL_curpad;
 
-    /* We call pp_rand here so that Drand01 get initialized if rand()
-       or srand() has not already been called
-    */
     my_pad[1] = sv_newmortal();
     memzero((char*)(&dmy_op), sizeof(struct op));
     dmy_op.op_targ = 1;
     PL_op = &dmy_op;
     PL_curpad = (SV **)&my_pad;
-    pp_rand();
+    /* Call *(PL_ppaddr[OP_RAND]) so that Drand01 get initialized if rand()
+       or srand() has not already been called.  Can't call pp_rand()
+       since it's not in the public API (and shouldn't be).
+    */
+    *(PL_ppaddr[OP_RAND]);
     PL_op = old_op;
     PL_curpad = old_curpad;
     for (index = items ; index > 1 ; ) {