diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2001-06-30 12:44:51 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2001-06-30 12:44:51 +0000 |
commit | 32ce01bccb8e58ee340ca4100517f9c031630ea7 (patch) | |
tree | 29c620f50b5b4aee153fb734bdabde07b2875d3c /NetWare/nwperlsys.c | |
parent | fc833f5303910487406f29ed9b64ac271eb7125b (diff) | |
download | perl-32ce01bccb8e58ee340ca4100517f9c031630ea7.tar.gz |
NetWare tweaks from Guruprasad.
p4raw-id: //depot/perl@11035
Diffstat (limited to 'NetWare/nwperlsys.c')
-rw-r--r-- | NetWare/nwperlsys.c | 73 |
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; |