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. --- ChangeLog | 6 ++++++ gobject/pygflags.c | 15 ++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 616bd1e..4509358 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-07-24 John Finlay + + * 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. + 2006-07-20 John Finlay * docs/Makefile.am: Make version.xml dependent on config.h 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