diff options
Diffstat (limited to 'plugins/pychrysa')
| -rw-r--r-- | plugins/pychrysa/arch/immediate.c | 12 | ||||
| -rw-r--r-- | plugins/pychrysa/helpers.h | 8 | 
2 files changed, 17 insertions, 3 deletions
| diff --git a/plugins/pychrysa/arch/immediate.c b/plugins/pychrysa/arch/immediate.c index e600a9a..363c3cc 100644 --- a/plugins/pychrysa/arch/immediate.c +++ b/plugins/pychrysa/arch/immediate.c @@ -243,7 +243,9 @@ static int py_imm_operand_set_padding(PyObject *self, PyObject *value, void *clo      operand = G_IMM_OPERAND(pygobject_get(self));      assert(operand != NULL); -    g_imm_operand_pad(operand, padding); +    g_imm_operand_pad(&operand, padding, NULL); + +    pygobject_set(self, operand);      return 0; @@ -316,7 +318,9 @@ static int py_imm_operand_set_default_display(PyObject *self, PyObject *value, v      operand = G_IMM_OPERAND(pygobject_get(self));      assert(operand != NULL); -    g_imm_operand_set_default_display(operand, display); +    g_imm_operand_set_default_display(&operand, display, NULL); + +    pygobject_set(self, operand);      return 0; @@ -390,7 +394,9 @@ static int py_imm_operand_set_display(PyObject *self, PyObject *value, void *clo      operand = G_IMM_OPERAND(pygobject_get(self));      assert(operand != NULL); -    g_imm_operand_set_display(operand, display); +    g_imm_operand_set_display(&operand, display, NULL); + +    pygobject_set(self, operand);      return 0; diff --git a/plugins/pychrysa/helpers.h b/plugins/pychrysa/helpers.h index 22f3702..3e079b7 100644 --- a/plugins/pychrysa/helpers.h +++ b/plugins/pychrysa/helpers.h @@ -65,5 +65,13 @@ bool PyDict_AddStringConstant(PyTypeObject *, const char *, const char *);  bool register_class_for_pygobject(PyObject *, GType, PyTypeObject *, PyTypeObject *); +/** + * Quand on remplace un objet GLib dans le dos de Python, il faut + * le remplacer de la même manière qu'on l'a obtenu ! + */ + +#define pygobject_set(p, v) ((PyGObject *)(p))->obj = (GObject *)v + +  #endif  /* _PLUGINS_HELPERS_H */ | 
