malloc() things must be free()d, not Safefree()d (bug in change#11280
Gurusamy Sarathy [Fri, 11 Jan 2002 02:56:05 +0000 (02:56 +0000)]
revealed by -D_USE_MSVCRT_MEM_ALLOC -D_USE_LINKED_LIST)

turns out even the malloc() was never really needed to begin with,
so get rid of it

p4raw-link: @11280 on //depot/perl: dc507217b3331807446df6e7f16977ee2fdc418e

p4raw-id: //depot/perl@14177

sv.c

diff --git a/sv.c b/sv.c
index 193c9fb..bc2782d 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -9670,7 +9670,8 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags,
      * their pointers copied. */
 
     IV i;
-    CLONE_PARAMS* param = (CLONE_PARAMS*) malloc(sizeof(CLONE_PARAMS));
+    CLONE_PARAMS clone_params;
+    CLONE_PARAMS* param = &clone_params;
 
     PerlInterpreter *my_perl = (PerlInterpreter*)(*ipM->pMalloc)(ipM, sizeof(PerlInterpreter));
     PERL_SET_THX(my_perl);
@@ -9699,7 +9700,8 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags,
     PL_Proc            = ipP;
 #else          /* !PERL_IMPLICIT_SYS */
     IV i;
-    CLONE_PARAMS* param = (CLONE_PARAMS*) malloc(sizeof(CLONE_PARAMS));
+    CLONE_PARAMS clone_params;
+    CLONE_PARAMS* param = &clone_params;
     PerlInterpreter *my_perl = (PerlInterpreter*)PerlMem_malloc(sizeof(PerlInterpreter));
     PERL_SET_THX(my_perl);
 
@@ -10381,7 +10383,6 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags,
     }
 
     SvREFCNT_dec(param->stashes);
-    Safefree(param);
 
     return my_perl;
 }