summaryrefslogtreecommitdiff
path: root/NetWare/nwperlsys.c
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2001-06-30 12:44:51 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2001-06-30 12:44:51 +0000
commit32ce01bccb8e58ee340ca4100517f9c031630ea7 (patch)
tree29c620f50b5b4aee153fb734bdabde07b2875d3c /NetWare/nwperlsys.c
parentfc833f5303910487406f29ed9b64ac271eb7125b (diff)
downloadperl-32ce01bccb8e58ee340ca4100517f9c031630ea7.tar.gz
NetWare tweaks from Guruprasad.
p4raw-id: //depot/perl@11035
Diffstat (limited to 'NetWare/nwperlsys.c')
-rw-r--r--NetWare/nwperlsys.c73
1 files changed, 51 insertions, 22 deletions
diff --git a/NetWare/nwperlsys.c b/NetWare/nwperlsys.c
index bc97b11135..b1bf8ddd69 100644
--- a/NetWare/nwperlsys.c
+++ b/NetWare/nwperlsys.c
@@ -122,42 +122,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,
+ NULL,
+ NULL,
+ lpEnv,
+ lpStdio,
+ lpLIO,
+ lpDir,
+ lpSock,
+ lpProc);
+
if (my_perl) {
#ifdef PERL_OBJECT
CPerlObj* pPerl = (CPerlObj*)my_perl;