X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=NetWare%2Fnwperlsys.c;h=9eca5225f7fac1f4bf5ad21b6dfb6c69a0bcd326;hb=30ef33217aeee51ee47b2433e9384b011646254a;hp=bc97b111357deafc6389609aefcc1c20ce32a1f7;hpb=8dbfbba0c55b52c9acc258d9a3522ce8b76c3497;p=p5sagit%2Fp5-mst-13.2.git diff --git a/NetWare/nwperlsys.c b/NetWare/nwperlsys.c index bc97b11..9eca522 100644 --- a/NetWare/nwperlsys.c +++ b/NetWare/nwperlsys.c @@ -20,10 +20,6 @@ #include "perl.h" -#ifdef PERL_OBJECT -#define NO_XSLOCKS -#endif - //CHKSGP //Including this is giving premature end-of-file error during compilation //#include "XSUB.h" @@ -91,9 +87,8 @@ perl_alloc(void) WCValHashTable* m_allocList; m_allocList = new WCValHashTable (fnAllocListHash, 256); fnInsertHashListAddrs(m_allocList, FALSE); - my_perl = perl_alloc_using(&perlMem, - NULL, + &perlMem, NULL, &perlEnv, &perlStdIO, @@ -102,9 +97,6 @@ perl_alloc(void) &perlSock, &perlProc); if (my_perl) { -#ifdef PERL_OBJECT - CPerlObj* pPerl = (CPerlObj*)my_perl; -#endif //nw5_internal_host = m_allocList; } return my_perl; @@ -122,46 +114,71 @@ perl_alloc(void) ==============================================================================================*/ EXTERN_C PerlInterpreter* -perl_alloc_override(struct IPerlMem* ppMem, struct IPerlMem* ppMemShared, - struct IPerlMem* ppMemParse, struct IPerlEnv* ppEnv, - struct IPerlStdIO* ppStdIO, struct IPerlLIO* ppLIO, - struct IPerlDir* ppDir, struct IPerlSock* ppSock, - struct IPerlProc* ppProc) +perl_alloc_override(struct IPerlMem** ppMem, struct IPerlMem** ppMemShared, + struct IPerlMem** ppMemParse, struct IPerlEnv** ppEnv, + struct IPerlStdIO** ppStdIO, struct IPerlLIO** ppLIO, + struct IPerlDir** ppDir, struct IPerlSock** ppSock, + struct IPerlProc** ppProc) { PerlInterpreter *my_perl = NULL; + struct IPerlMem* lpMem; + struct IPerlEnv* lpEnv; + struct IPerlStdIO* lpStdio; + struct IPerlLIO* lpLIO; + struct IPerlDir* lpDir; + struct IPerlSock* lpSock; + struct IPerlProc* lpProc; + WCValHashTable* m_allocList; m_allocList = new WCValHashTable (fnAllocListHash, 256); fnInsertHashListAddrs(m_allocList, FALSE); if (!ppMem) - ppMem=&perlMem; + lpMem=&perlMem; + else + lpMem=*ppMem; + if (!ppEnv) - ppEnv=&perlEnv; + lpEnv=&perlEnv; + else + lpEnv=*ppEnv; + if (!ppStdIO) - ppStdIO=&perlStdIO; + lpStdio=&perlStdIO; + else + lpStdio=*ppStdIO; + if (!ppLIO) - ppLIO=&perlLIO; + lpLIO=&perlLIO; + else + lpLIO=*ppLIO; + if (!ppDir) - ppDir=&perlDir; + lpDir=&perlDir; + else + lpDir=*ppDir; + if (!ppSock) - ppSock=&perlSock; + lpSock=&perlSock; + else + lpSock=*ppSock; + if (!ppProc) - ppProc=&perlProc; - - my_perl = perl_alloc_using(ppMem, - ppMemShared, - ppMemParse, - ppEnv, - ppStdIO, - ppLIO, - ppDir, - ppSock, - ppProc); + lpProc=&perlProc; + else + lpProc=*ppProc; + my_perl = perl_alloc_using(lpMem, + lpMem, + NULL, + lpEnv, + lpStdio, + lpLIO, + lpDir, + lpSock, + lpProc); + if (my_perl) { -#ifdef PERL_OBJECT - CPerlObj* pPerl = (CPerlObj*)my_perl; -#endif //nw5_internal_host = pHost; } return my_perl;