Staging
v0.8.1
https://github.com/python/cpython
Raw File
Tip revision: 278519500f6c551cc2a8035f11a81d21fae7424c authored by Benjamin Peterson on 10 November 2013, 07:36:30 UTC
2.7.6 final
Tip revision: 2785195
dllentry.c
/*
 * This is the entry point for the Python 2.3 core DLL.
 */

#define NULL 0

#define REF(s)  extern void s(); void *____ref_##s = &s;

/* Make references to imported symbols to pull them from static library */
REF(Py_Main);

#include <signal.h>

extern int _CRT_init(void);
extern void _CRT_term(void);
extern void __ctordtorInit(void);
extern void __ctordtorTerm(void);

unsigned long _DLL_InitTerm(unsigned long mod_handle, unsigned long flag)
{
    switch (flag)
    {
        case 0:
            if (_CRT_init())
                return 0;
            __ctordtorInit();

            /* Ignore fatal signals */
            signal(SIGSEGV, SIG_IGN);
            signal(SIGFPE, SIG_IGN);

            return 1;

        case 1:
            __ctordtorTerm();
            _CRT_term();
            return 1;

        default:
            return 0;
    }
}
back to top