From 7ae5b1c7b2928bc4685d3493f5686f7aefa3f30b Mon Sep 17 00:00:00 2001 From: John Finlay Date: Tue, 25 Jul 2006 04:24:14 +0000 Subject: Avoid segfault when g_flags_get_first_value returns NULL. * gobject/pygflags.c (pyg_flags_get_first_value_name) (pyg_flags_get_first_value_nick): Avoid segfault when g_flags_get_first_value returns NULL. --- gobject/pygflags.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'gobject/pygflags.c') diff --git a/gobject/pygflags.c b/gobject/pygflags.c index 2fcfa10..dc4b03c 100644 --- a/gobject/pygflags.c +++ b/gobject/pygflags.c @@ -323,8 +323,12 @@ pyg_flags_get_first_value_name(PyGFlags *self, void *closure) flags_class = g_type_class_ref(self->gtype); g_assert(G_IS_FLAGS_CLASS(flags_class)); flags_value = g_flags_get_first_value(flags_class, self->parent.ob_ival); - retval = PyString_FromString(flags_value->value_name); - + if (flags_value) + retval = PyString_FromString(flags_value->value_name); + else { + retval = Py_None; + PY_INCREF(Py_None); + } g_type_class_unref(flags_class); return retval; @@ -341,7 +345,12 @@ pyg_flags_get_first_value_nick(PyGFlags *self, void *closure) g_assert(G_IS_FLAGS_CLASS(flags_class)); flags_value = g_flags_get_first_value(flags_class, self->parent.ob_ival); - retval = PyString_FromString(flags_value->value_nick); + if (flags_value) + retval = PyString_FromString(flags_value->value_nick); + else { + retval = Py_None; + PY_INCREF(Py_None); + } g_type_class_unref(flags_class); return retval; -- cgit