summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gmail.com>2019-10-28 19:53:38 +0000
committerEmmanuele Bassi <ebassi@gmail.com>2019-10-28 19:53:38 +0000
commit1ad64e183f156665aa9c18f6f3192da9f918d6f5 (patch)
tree60c050bcc41f593d5678e35cc7a90312e5ec4c1e
parentc73bd53eb8748d204d496f63fd38ad7680a406b5 (diff)
parent1a3bba4670e79f9e78fae512ace9191226715e35 (diff)
downloadglib-1ad64e183f156665aa9c18f6f3192da9f918d6f5.tar.gz
Merge branch '1911-flags-enums-leak' into 'master'
gparamspecs: Fix type class leaks on error handling paths See merge request GNOME/glib!1189
-rw-r--r--gobject/gparamspecs.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/gobject/gparamspecs.c b/gobject/gparamspecs.c
index 5d15c26e1..490c7c219 100644
--- a/gobject/gparamspecs.c
+++ b/gobject/gparamspecs.c
@@ -2092,7 +2092,10 @@ g_param_spec_enum (const gchar *name,
blurb,
flags);
if (espec == NULL)
- return NULL;
+ {
+ g_type_class_unref (enum_class);
+ return NULL;
+ }
espec->enum_class = enum_class;
espec->default_value = default_value;
@@ -2140,7 +2143,10 @@ g_param_spec_flags (const gchar *name,
blurb,
flags);
if (fspec == NULL)
- return NULL;
+ {
+ g_type_class_unref (flags_class);
+ return NULL;
+ }
fspec->flags_class = flags_class;
fspec->default_value = default_value;