diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2017-07-27 17:13:19 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2017-07-27 17:13:19 (GMT) |
commit | 77f88a59bfb9296df7e995e99218d27862136588 (patch) | |
tree | 6e9897f690b50da53d77266095eccb358912a1cb /plugins/pychrysa/gtkext/bufferdisplay.c | |
parent | 359055e28bcd195fb03fd0deb1a30e5a04d5ce58 (diff) |
Fixed several mistakes in the Python bindings.
Diffstat (limited to 'plugins/pychrysa/gtkext/bufferdisplay.c')
-rw-r--r-- | plugins/pychrysa/gtkext/bufferdisplay.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/plugins/pychrysa/gtkext/bufferdisplay.c b/plugins/pychrysa/gtkext/bufferdisplay.c index 7cc82ff..a6e5327 100644 --- a/plugins/pychrysa/gtkext/bufferdisplay.c +++ b/plugins/pychrysa/gtkext/bufferdisplay.c @@ -25,6 +25,7 @@ #include "bufferdisplay.h" +#include <string.h> #include <pygobject.h> @@ -65,7 +66,7 @@ PyTypeObject *get_python_buffer_display_type(void) .tp_name = "pychrysalide.gtkext.BufferDisplay", .tp_basicsize = sizeof(PyGObject), - .tp_flags = Py_TPFLAGS_DEFAULT, + .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HEAPTYPE, .tp_doc = "PyChrysalide buffer display.", @@ -74,7 +75,17 @@ PyTypeObject *get_python_buffer_display_type(void) }; - return &py_buffer_display_type; + static PyTypeObject *result = NULL; + + if (result == NULL) + { + result = calloc(1, sizeof(PyTypeObject)); + + memcpy(result, &py_buffer_display_type, sizeof(PyTypeObject)); + + } + + return result; } |