mirror of
https://github.com/ivellioscolin/pykd.git
synced 2025-04-21 04:13:22 +08:00
Merge branch 'pykd-init' into 'vs2017-support'
Pykd init/deinit fix See merge request pykd/pykd!5
This commit is contained in:
commit
b278f8b27f
2
kdlibcpp
2
kdlibcpp
@ -1 +1 @@
|
|||||||
Subproject commit 107f991bb61245de85862717550cb365d54de2b0
|
Subproject commit 6f96e046f3e79bc464759c6729d6d344083587e4
|
@ -127,7 +127,7 @@ void uninitialize()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_PYTHON_MODULE( pykd )
|
void pykd_init()
|
||||||
{
|
{
|
||||||
python::scope().attr("__version__") = pykdVersion;
|
python::scope().attr("__version__") = pykdVersion;
|
||||||
python::scope().attr("version") = pykdVersion;
|
python::scope().attr("version") = pykdVersion;
|
||||||
@ -1382,3 +1382,59 @@ BOOST_PYTHON_MODULE( pykd )
|
|||||||
}
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#if PY_VERSION_HEX >= 0x03000000
|
||||||
|
|
||||||
|
void pykd_deinit(void*)
|
||||||
|
{
|
||||||
|
if ( kdlib::isInintilized() )
|
||||||
|
kdlib::uninitialize();
|
||||||
|
}
|
||||||
|
|
||||||
|
PyMODINIT_FUNC
|
||||||
|
PyInit_pykd(void)
|
||||||
|
{
|
||||||
|
static PyModuleDef_Base initial_base = {
|
||||||
|
PyObject_HEAD_INIT(NULL)
|
||||||
|
0, /* m_init */
|
||||||
|
0, /* m_index */
|
||||||
|
0 /* m_copy */
|
||||||
|
};
|
||||||
|
|
||||||
|
static PyMethodDef initial_methods[] = { { 0, 0, 0, 0 } };
|
||||||
|
|
||||||
|
static struct PyModuleDef moduledef = { \
|
||||||
|
initial_base,
|
||||||
|
"pykd",
|
||||||
|
0, /* m_doc */
|
||||||
|
-1, /* m_size */
|
||||||
|
initial_methods,
|
||||||
|
0, /* m_reload */
|
||||||
|
0, /* m_traverse */
|
||||||
|
0, /* m_clear */
|
||||||
|
pykd_deinit
|
||||||
|
};
|
||||||
|
|
||||||
|
return boost::python::detail::init_module(moduledef, pykd_init);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
|
||||||
|
void pykd_deinit(PyObject*)
|
||||||
|
{
|
||||||
|
if (kdlib::isInintilized())
|
||||||
|
kdlib::uninitialize();
|
||||||
|
}
|
||||||
|
|
||||||
|
PyMODINIT_FUNC
|
||||||
|
initpykd()
|
||||||
|
{
|
||||||
|
PyObject* moduleObj = boost::python::detail::init_module("pykd", pykd_init);
|
||||||
|
|
||||||
|
PyObject* moduleDeiniter = PyCapsule_New( (void*)1, "pykd.__deinit__", pykd_deinit);
|
||||||
|
|
||||||
|
PyModule_AddObject(moduleObj, "pykd.__deinit__", moduleDeiniter);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user