summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gobject/pygflags.c1
-rw-r--r--gobject/pygparamspec.c8
2 files changed, 6 insertions, 3 deletions
diff --git a/gobject/pygflags.c b/gobject/pygflags.c
index 2f12324..51dd59a 100644
--- a/gobject/pygflags.c
+++ b/gobject/pygflags.c
@@ -194,7 +194,6 @@ pyg_flags_add (PyObject * module,
GFlagsClass *eclass;
int i;
- g_return_val_if_fail(module != NULL, NULL);
g_return_val_if_fail(typename != NULL, NULL);
g_return_val_if_fail(g_type_is_a(gtype, G_TYPE_FLAGS), NULL);
diff --git a/gobject/pygparamspec.c b/gobject/pygparamspec.c
index 28f9f47..13a526c 100644
--- a/gobject/pygparamspec.c
+++ b/gobject/pygparamspec.c
@@ -71,7 +71,9 @@ pygenum_from_pspec(GParamSpec *pspec)
enum_type = G_ENUM_CLASS_TYPE(enum_pspec->enum_class);
pyclass = (PyObject*)g_type_get_qdata(enum_type, pygenum_class_key);
if (pyclass == NULL) {
- pyclass = Py_None;
+ pyclass = pyg_enum_add(NULL, g_type_name(enum_type), NULL, enum_type);
+ if (pyclass == NULL)
+ pyclass = Py_None;
}
Py_INCREF(pyclass);
@@ -89,7 +91,9 @@ pygflags_from_pspec(GParamSpec *pspec)
flag_type = G_FLAGS_CLASS_TYPE(flag_pspec->flags_class);
pyclass = (PyObject*)g_type_get_qdata(flag_type, pygflags_class_key);
if (pyclass == NULL) {
- pyclass = Py_None;
+ pyclass = pyg_flags_add(NULL, g_type_name(flag_type), NULL, flag_type);
+ if (pyclass == NULL)
+ pyclass = Py_None;
}
Py_INCREF(pyclass);
return pyclass;