don't leak startargs in start_standalone_factor_in_new_thread

db4
Joe Groff 2009-10-02 11:02:13 -05:00
parent 96df486753
commit b4ae77764c
1 changed files with 6 additions and 3 deletions

View File

@ -221,12 +221,15 @@ struct startargs {
vm_char **argv;
};
// arg must be new'ed because we're going to delete it!
void* start_standalone_factor_thread(void *arg)
{
factor_vm *newvm = new factor_vm;
register_vm_with_thread(newvm);
startargs *args = (startargs*) arg;
newvm->start_standalone_factor(args->argc, args->argv);
int argc = args->argc; vm_char **argv = args->argv;
delete args;
newvm->start_standalone_factor(argc, argv);
return 0;
}
@ -240,7 +243,7 @@ VM_C_API void start_standalone_factor(int argc, vm_char **argv)
VM_C_API THREADHANDLE start_standalone_factor_in_new_thread(int argc, vm_char **argv)
{
startargs *args = new startargs; // leaks startargs structure
startargs *args = new startargs;
args->argc = argc; args->argv = argv;
return start_thread(start_standalone_factor_thread,args);
}