diff options
-rw-r--r-- | gobject/pygenum.c | 6 | ||||
-rw-r--r-- | gobject/pygflags.c | 2 |
2 files changed, 6 insertions, 2 deletions
diff --git a/gobject/pygenum.c b/gobject/pygenum.c index 5c6bf893..9f32c66a 100644 --- a/gobject/pygenum.c +++ b/gobject/pygenum.c @@ -123,8 +123,12 @@ pyg_enum_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) g_type_class_unref(eclass); ret = PyDict_GetItem(values, PyInt_FromLong(value)); - Py_INCREF(ret); Py_DECREF(values); + if (ret) + Py_INCREF(ret); + else + PyErr_Format(PyExc_ValueError, "invalid enum value: %ld", value); + return ret; } diff --git a/gobject/pygflags.c b/gobject/pygflags.c index 92f99932..7f052a44 100644 --- a/gobject/pygflags.c +++ b/gobject/pygflags.c @@ -150,7 +150,7 @@ pyg_flags_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) if (ret) Py_INCREF(ret); else - PyErr_SetString(PyExc_ValueError, "invalid flag value"); + PyErr_Format(PyExc_ValueError, "invalid flag value: %ld", value); return ret; } |