summaryrefslogtreecommitdiff
path: root/plugins/pychrysa/gtkext/blockdisplay.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2017-07-27 17:13:19 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2017-07-27 17:13:19 (GMT)
commit77f88a59bfb9296df7e995e99218d27862136588 (patch)
tree6e9897f690b50da53d77266095eccb358912a1cb /plugins/pychrysa/gtkext/blockdisplay.c
parent359055e28bcd195fb03fd0deb1a30e5a04d5ce58 (diff)
Fixed several mistakes in the Python bindings.
Diffstat (limited to 'plugins/pychrysa/gtkext/blockdisplay.c')
-rw-r--r--plugins/pychrysa/gtkext/blockdisplay.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/plugins/pychrysa/gtkext/blockdisplay.c b/plugins/pychrysa/gtkext/blockdisplay.c
index 06f14d8..a329daf 100644
--- a/plugins/pychrysa/gtkext/blockdisplay.c
+++ b/plugins/pychrysa/gtkext/blockdisplay.c
@@ -25,6 +25,7 @@
#include "blockdisplay.h"
+#include <string.h>
#include <pygobject.h>
@@ -65,7 +66,7 @@ PyTypeObject *get_python_block_display_type(void)
.tp_name = "pychrysalide.gtkext.BlockDisplay",
.tp_basicsize = sizeof(PyGObject),
- .tp_flags = Py_TPFLAGS_DEFAULT,
+ .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HEAPTYPE,
.tp_doc = "PyChrysalide block display.",
@@ -74,7 +75,17 @@ PyTypeObject *get_python_block_display_type(void)
};
- return &py_block_display_type;
+ static PyTypeObject *result = NULL;
+
+ if (result == NULL)
+ {
+ result = calloc(1, sizeof(PyTypeObject));
+
+ memcpy(result, &py_block_display_type, sizeof(PyTypeObject));
+
+ }
+
+ return result;
}