mirror of
https://github.com/weechat/weechat.git
synced 2026-06-29 22:36:38 +02:00
python: fix read of return value for callbacks returning an integer in Python 2.x (closes #125)
This commit is contained in:
@@ -154,6 +154,8 @@ http://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes]
|
||||
* irc: fix parsing of nick in host when '!' is not found (bug #41640)
|
||||
* lua: fix interpreter used after unload of a script
|
||||
* perl: fix context used after unload of a script
|
||||
* python: fix read of return value for callbacks returning an integer
|
||||
in Python 2.x (closes #125)
|
||||
* python: fix interpreter used after unload of a script
|
||||
* relay: fix crash when closing relay buffers (closes #57, closes #78)
|
||||
* relay: check pointers received in hdata command to prevent crashes with bad
|
||||
|
||||
@@ -391,11 +391,11 @@ weechat_python_exec (struct t_plugin_script *script,
|
||||
ret_value = NULL;
|
||||
Py_XDECREF(rc);
|
||||
}
|
||||
else if ((ret_type == WEECHAT_SCRIPT_EXEC_INT) && (PyLong_Check (rc)))
|
||||
else if ((ret_type == WEECHAT_SCRIPT_EXEC_INT) && (PY_INTEGER_CHECK(rc)))
|
||||
{
|
||||
ret_int = malloc (sizeof (*ret_int));
|
||||
if (ret_int)
|
||||
*ret_int = (int) PyLong_AsLong(rc);
|
||||
*ret_int = (int) PyLong_AsLong (rc);
|
||||
ret_value = ret_int;
|
||||
Py_XDECREF(rc);
|
||||
}
|
||||
|
||||
@@ -34,6 +34,14 @@
|
||||
#define PyUnicode_FromString PyString_FromString
|
||||
#endif
|
||||
|
||||
#if PY_MAJOR_VERSION >= 3
|
||||
/* check of integer with Python >= 3.x */
|
||||
#define PY_INTEGER_CHECK(x) (PyLong_Check(x))
|
||||
#else
|
||||
/* check of integer with Python <= 2.x */
|
||||
#define PY_INTEGER_CHECK(x) (PyInt_Check(x) || PyLong_Check(x))
|
||||
#endif
|
||||
|
||||
extern struct t_weechat_plugin *weechat_python_plugin;
|
||||
|
||||
extern int python_quiet;
|
||||
|
||||
Reference in New Issue
Block a user