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) { PerlInterpreter *my_perl = NULL; CPerlHost* pHost = new CPerlHost(ppMem, ppMemShared, ppMemParse, ppEnv, ppStdIO, ppLIO, ppDir, ppSock, ppProc); if (pHost) { my_perl = perl_alloc_using(pHost->m_pHostperlMem, pHost->m_pHostperlMemShared, pHost->m_pHostperlMemParse, pHost->m_pHostperlEnv, pHost->m_pHostperlStdIO, pHost->m_pHostperlLIO, pHost->m_pHostperlDir, pHost->m_pHostperlSock, pHost->m_pHostperlProc); if (my_perl) { w32_internal_host = pHost; pHost->host_perl = my_perl; } } return my_perl; }
EXTERN_C PerlInterpreter* perl_alloc(void) { PerlInterpreter* my_perl = NULL; CPerlHost* pHost = new CPerlHost(); if (pHost) { my_perl = perl_alloc_using(pHost->m_pHostperlMem, pHost->m_pHostperlMemShared, pHost->m_pHostperlMemParse, pHost->m_pHostperlEnv, pHost->m_pHostperlStdIO, pHost->m_pHostperlLIO, pHost->m_pHostperlDir, pHost->m_pHostperlSock, pHost->m_pHostperlProc); if (my_perl) { w32_internal_host = pHost; pHost->host_perl = my_perl; } } return my_perl; }
EXTERN_C PerlInterpreter* perl_alloc(void) { PerlInterpreter* my_perl = NULL; WCValHashTable<void*>* m_allocList; m_allocList = new WCValHashTable<void*> (fnAllocListHash, 256); fnInsertHashListAddrs(m_allocList, FALSE); my_perl = perl_alloc_using(&perlMem, &perlMem, NULL, &perlEnv, &perlStdIO, &perlLIO, &perlDir, &perlSock, &perlProc); if (my_perl) { //nw5_internal_host = m_allocList; } return my_perl; }
/*============================================================================================ Function : perl_alloc_override Description : creates a Perl interpreter variable and initializes Parameters : Pointer to structure containing function pointers Returns : Pointer to Perl interpreter ==============================================================================================*/ 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) { 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) lpMem=&perlMem; else lpMem=*ppMem; if (!ppEnv) lpEnv=&perlEnv; else lpEnv=*ppEnv; if (!ppStdIO) lpStdio=&perlStdIO; else lpStdio=*ppStdIO; if (!ppLIO) lpLIO=&perlLIO; else lpLIO=*ppLIO; if (!ppDir) lpDir=&perlDir; else lpDir=*ppDir; if (!ppSock) lpSock=&perlSock; else lpSock=*ppSock; if (!ppProc) lpProc=&perlProc; else lpProc=*ppProc; my_perl = perl_alloc_using(lpMem, lpMem, NULL, lpEnv, lpStdio, lpLIO, lpDir, lpSock, lpProc); if (my_perl) { //nw5_internal_host = pHost; } return my_perl; }