Mercurial > vim
diff src/if_python.c @ 242:a711f7a6852d v7.0067
updated for version 7.0067
author | vimboss |
---|---|
date | Sun, 17 Apr 2005 20:28:32 +0000 |
parents | b5fc81a825a1 |
children | 8fa8d7964cf1 |
line wrap: on
line diff
--- a/src/if_python.c +++ b/src/if_python.c @@ -115,6 +115,8 @@ struct PyMethodDef { int a; }; # define Py_FindMethod dll_Py_FindMethod # define Py_InitModule4 dll_Py_InitModule4 # define Py_Initialize dll_Py_Initialize +# define Py_Finalize dll_Py_Finalize +# define Py_IsInitialized dll_Py_IsInitialized # define _PyObject_New dll__PyObject_New # define _Py_NoneStruct (*dll__Py_NoneStruct) # define PyObject_Init dll__PyObject_Init @@ -169,6 +171,8 @@ static PyObject*(*dll_Py_BuildValue)(cha static PyObject*(*dll_Py_FindMethod)(struct PyMethodDef[], PyObject *, char *); static PyObject*(*dll_Py_InitModule4)(char *, struct PyMethodDef *, char *, PyObject *, int); static void(*dll_Py_Initialize)(void); +static void(*dll_Py_Finalize)(void); +static int(*dll_Py_IsInitialized)(void); static PyObject*(*dll__PyObject_New)(PyTypeObject *, PyObject *); static PyObject*(*dll__PyObject_Init)(PyObject *, PyTypeObject *); static PyObject* dll__Py_NoneStruct; @@ -245,6 +249,8 @@ static struct {"Py_FindMethod", (PYTHON_PROC*)&dll_Py_FindMethod}, {"Py_InitModule4", (PYTHON_PROC*)&dll_Py_InitModule4}, {"Py_Initialize", (PYTHON_PROC*)&dll_Py_Initialize}, + {"Py_Finalize", (PYTHON_PROC*)&dll_Py_Finalize}, + {"Py_IsInitialized", (PYTHON_PROC*)&dll_Py_IsInitialized}, {"_PyObject_New", (PYTHON_PROC*)&dll__PyObject_New}, {"PyObject_Init", (PYTHON_PROC*)&dll__PyObject_Init}, {"_Py_NoneStruct", (PYTHON_PROC*)&dll__Py_NoneStruct}, @@ -423,7 +429,12 @@ static void Python_Release_Vim(void) python_end() { #ifdef DYNAMIC_PYTHON + if (hinstPython && Py_IsInitialized()) + Py_Finalize(); end_dynamic_python(); +#else + if (Py_IsInitialized()) + Py_Finalize(); #endif }