Esempio n. 1
0
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;
}
Esempio n. 2
0
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;
}
Esempio n. 3
0
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;
}
Esempio n. 4
0
/*============================================================================================

 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;
}