#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"
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,
&perlSock,
&perlProc);
if (my_perl) {
-#ifdef PERL_OBJECT
- CPerlObj* pPerl = (CPerlObj*)my_perl;
-#endif
//nw5_internal_host = m_allocList;
}
return my_perl;
==============================================================================================*/
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;