make make_patchnum.sh (more) portable
[p5sagit/p5-mst-13.2.git] / NetWare / nwperlsys.c
index bc97b11..9eca522 100644 (file)
 #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<void*>*  m_allocList;
        m_allocList = new WCValHashTable<void*> (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<void*>*  m_allocList;
        m_allocList = new WCValHashTable<void*> (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;