}
int
-PerlLIOLink(struct IPerlLIO*, const char*oldname, const char *newname)
+PerlLIOLink(struct IPerlLIO *I, const char*oldname, const char *newname)
{
return win32_link(oldname, newname);
}
RunPerl(int argc, char **argv, char **env)
{
int exitstatus;
- PerlInterpreter *my_perl;
+ PerlInterpreter *my_perl, *new_perl = NULL;
struct perl_thread *thr;
#ifndef __BORLANDC__
exitstatus = perl_parse(my_perl, xs_init, argc, argv, env);
if (!exitstatus) {
#ifdef USE_ITHREADS /* XXXXXX testing */
-extern PerlInterpreter * perl_clone(pTHXx_ IV flags);
+ extern PerlInterpreter * perl_clone(pTHXx_ IV flags);
- PerlInterpreter *new_perl = perl_clone(my_perl, 0);
+ new_perl = perl_clone(my_perl, 0);
Perl_push_scope(new_perl); /* ENTER; (hack in lieu of perl_destruct()) */
exitstatus = perl_run( new_perl );
- perl_destruct(new_perl); perl_free(new_perl);
SetPerlInterpreter(my_perl);
#else
exitstatus = perl_run( my_perl );
perl_destruct( my_perl );
perl_free( my_perl );
+#ifdef USE_ITHREADS
+ if (new_perl) {
+ SetPerlInterpreter(new_perl);
+ perl_destruct(new_perl);
+ perl_free(new_perl);
+ }
+#endif
PERL_SYS_TERM();