mirror of
https://github.com/ivellioscolin/pykd.git
synced 2025-04-20 03:23:23 +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;
|
||||
@ -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