diff --git a/gio/gdbus-2.0/codegen/codegen.py b/gio/gdbus-2.0/codegen/codegen.py index d8d9a8521..8f1caacc1 100644 --- a/gio/gdbus-2.0/codegen/codegen.py +++ b/gio/gdbus-2.0/codegen/codegen.py @@ -2364,8 +2364,17 @@ class CodeGenerator: "{\n" % (p.arg.ctype_in, i.name_lower, p.name_lower, i.camel_name) ) self.outfile.write( + " g_return_val_if_fail (%sIS_%s (object), %s);\n" + "\n" " return %s%s_GET_IFACE (object)->get_%s (object);\n" - % (i.ns_upper, i.name_upper, p.name_lower) + % ( + i.ns_upper, + i.name_upper, + p.arg.ctype_in_default_value, + i.ns_upper, + i.name_upper, + p.name_lower, + ) ) self.outfile.write("}\n") self.outfile.write("\n") @@ -3100,9 +3109,6 @@ class CodeGenerator: # property vfuncs for p in i.properties: - nul_value = "0" - if p.arg.free_func is not None: - nul_value = "NULL" self.outfile.write( "static %s\n" "%s_proxy_get_%s (%s *object)\n" @@ -3119,7 +3125,7 @@ class CodeGenerator: i.ns_upper, i.name_upper, p.arg.ctype_in, - nul_value, + p.arg.ctype_in_default_value, ) ) # For some property types, we have to free the returned diff --git a/gio/gdbus-2.0/codegen/dbustypes.py b/gio/gdbus-2.0/codegen/dbustypes.py index bbe5c4e1e..283eeb758 100644 --- a/gio/gdbus-2.0/codegen/dbustypes.py +++ b/gio/gdbus-2.0/codegen/dbustypes.py @@ -76,6 +76,7 @@ class Arg: self.ctype_in_g = "GVariant *" self.ctype_in = "GVariant *" self.ctype_in_dup = "GVariant *" + self.ctype_in_default_value = "NULL" self.ctype_out = "GVariant **" self.gtype = "G_TYPE_VARIANT" self.free_func = "g_variant_unref" @@ -91,6 +92,7 @@ class Arg: if self.signature == "b": self.ctype_in_g = "gboolean " self.ctype_in = "gboolean " + self.ctype_in_default_value = "FALSE" self.ctype_out = "gboolean *" self.gtype = "G_TYPE_BOOLEAN" self.free_func = None @@ -101,6 +103,7 @@ class Arg: elif self.signature == "y": self.ctype_in_g = "guchar " self.ctype_in = "guchar " + self.ctype_in_default_value = "'\\0'" self.ctype_out = "guchar *" self.gtype = "G_TYPE_UCHAR" self.free_func = None @@ -111,6 +114,7 @@ class Arg: elif self.signature == "n": self.ctype_in_g = "gint " self.ctype_in = "gint16 " + self.ctype_in_default_value = "0" self.ctype_out = "gint16 *" self.gtype = "G_TYPE_INT" self.free_func = None @@ -121,6 +125,7 @@ class Arg: elif self.signature == "q": self.ctype_in_g = "guint " self.ctype_in = "guint16 " + self.ctype_in_default_value = "0" self.ctype_out = "guint16 *" self.gtype = "G_TYPE_UINT" self.free_func = None @@ -131,6 +136,7 @@ class Arg: elif self.signature == "i": self.ctype_in_g = "gint " self.ctype_in = "gint " + self.ctype_in_default_value = "0" self.ctype_out = "gint *" self.gtype = "G_TYPE_INT" self.free_func = None @@ -141,6 +147,7 @@ class Arg: elif self.signature == "u": self.ctype_in_g = "guint " self.ctype_in = "guint " + self.ctype_in_default_value = "0" self.ctype_out = "guint *" self.gtype = "G_TYPE_UINT" self.free_func = None @@ -151,6 +158,7 @@ class Arg: elif self.signature == "x": self.ctype_in_g = "gint64 " self.ctype_in = "gint64 " + self.ctype_in_default_value = "0" self.ctype_out = "gint64 *" self.gtype = "G_TYPE_INT64" self.free_func = None @@ -162,6 +170,7 @@ class Arg: self.ctype_in_g = "guint64 " self.ctype_in = "guint64 " self.ctype_out = "guint64 *" + self.ctype_in_default_value = "0" self.gtype = "G_TYPE_UINT64" self.free_func = None self.format_in = "t" @@ -171,6 +180,7 @@ class Arg: elif self.signature == "d": self.ctype_in_g = "gdouble " self.ctype_in = "gdouble " + self.ctype_in_default_value = "0.0" self.ctype_out = "gdouble *" self.gtype = "G_TYPE_DOUBLE" self.free_func = None @@ -182,6 +192,7 @@ class Arg: self.ctype_in_g = "const gchar *" self.ctype_in = "const gchar *" self.ctype_in_dup = "gchar *" + self.ctype_in_default_value = "NULL" self.ctype_out = "gchar **" self.gtype = "G_TYPE_STRING" self.free_func = "g_free" @@ -193,6 +204,7 @@ class Arg: self.ctype_in_g = "const gchar *" self.ctype_in = "const gchar *" self.ctype_in_dup = "gchar *" + self.ctype_in_default_value = "NULL" self.ctype_out = "gchar **" self.gtype = "G_TYPE_STRING" self.free_func = "g_free" @@ -204,6 +216,7 @@ class Arg: self.ctype_in_g = "const gchar *" self.ctype_in = "const gchar *" self.ctype_in_dup = "gchar *" + self.ctype_in_default_value = "NULL" self.ctype_out = "gchar **" self.gtype = "G_TYPE_STRING" self.free_func = "g_free" @@ -214,6 +227,7 @@ class Arg: elif self.signature == "ay": self.ctype_in_g = "const gchar *" self.ctype_in = "const gchar *" + self.ctype_in_default_value = "NULL" self.ctype_in_dup = "gchar *" self.ctype_out = "gchar **" self.gtype = "G_TYPE_STRING" @@ -226,6 +240,7 @@ class Arg: self.ctype_in_g = "const gchar *const *" self.ctype_in = "const gchar *const *" self.ctype_in_dup = "gchar **" + self.ctype_in_default_value = "NULL" self.ctype_out = "gchar ***" self.gtype = "G_TYPE_STRV" self.free_func = "g_strfreev" @@ -238,6 +253,7 @@ class Arg: self.ctype_in_g = "const gchar *const *" self.ctype_in = "const gchar *const *" self.ctype_in_dup = "gchar **" + self.ctype_in_default_value = "NULL" self.ctype_out = "gchar ***" self.gtype = "G_TYPE_STRV" self.free_func = "g_strfreev" @@ -250,6 +266,7 @@ class Arg: self.ctype_in_g = "const gchar *const *" self.ctype_in = "const gchar *const *" self.ctype_in_dup = "gchar **" + self.ctype_in_default_value = "NULL" self.ctype_out = "gchar ***" self.gtype = "G_TYPE_STRV" self.free_func = "g_strfreev"