mirror of
https://github.com/profanity-im/profanity.git
synced 2024-12-04 14:46:46 -05:00
plugin: python: fix build for Python 3.11
From Python 3.11, PyFrameObject has been changed into opaque struct. We need to access those fields via API. Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
This commit is contained in:
parent
fcc20628d5
commit
5a72fefe89
@ -1619,8 +1619,16 @@ static char*
|
|||||||
_python_plugin_name(void)
|
_python_plugin_name(void)
|
||||||
{
|
{
|
||||||
PyThreadState* ts = PyThreadState_Get();
|
PyThreadState* ts = PyThreadState_Get();
|
||||||
|
#if PY_VERSION_HEX >= 0x030B0000
|
||||||
|
PyFrameObject* frame = PyThreadState_GetFrame(ts);
|
||||||
|
PyCodeObject* code = PyFrame_GetCode(frame);
|
||||||
|
char* filename = python_str_or_unicode_to_string(code->co_filename);
|
||||||
|
Py_DECREF(code);
|
||||||
|
Py_DECREF(frame);
|
||||||
|
#else
|
||||||
PyFrameObject* frame = ts->frame;
|
PyFrameObject* frame = ts->frame;
|
||||||
char* filename = python_str_or_unicode_to_string(frame->f_code->co_filename);
|
char* filename = python_str_or_unicode_to_string(frame->f_code->co_filename);
|
||||||
|
#endif
|
||||||
gchar** split = g_strsplit(filename, "/", 0);
|
gchar** split = g_strsplit(filename, "/", 0);
|
||||||
free(filename);
|
free(filename);
|
||||||
char* plugin_name = strdup(split[g_strv_length(split) - 1]);
|
char* plugin_name = strdup(split[g_strv_length(split) - 1]);
|
||||||
|
Loading…
Reference in New Issue
Block a user