From eebcefa3b235811e948899d87266063df83a3cd7 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Wed, 19 Apr 2017 20:17:54 +0200 Subject: [PATCH] builder: Print warnings for unknown properties --- builder/builder-manifest.c | 1 + builder/builder-module.c | 1 + builder/builder-options.c | 1 + builder/builder-source.c | 10 ++++++++++ builder/builder-utils.c | 10 ++++++++++ builder/builder-utils.h | 4 ++++ 6 files changed, 27 insertions(+) diff --git a/builder/builder-manifest.c b/builder/builder-manifest.c index 27835bf4..aba9e2ad 100644 --- a/builder/builder-manifest.c +++ b/builder/builder-manifest.c @@ -1021,6 +1021,7 @@ serializable_iface_init (JsonSerializableIface *serializable_iface) { serializable_iface->serialize_property = builder_manifest_serialize_property; serializable_iface->deserialize_property = builder_manifest_deserialize_property; + serializable_iface->find_property = builder_serializable_find_property_with_error; } const char * diff --git a/builder/builder-module.c b/builder/builder-module.c index eba379ae..ce046943 100644 --- a/builder/builder-module.c +++ b/builder/builder-module.c @@ -779,6 +779,7 @@ serializable_iface_init (JsonSerializableIface *serializable_iface) { serializable_iface->serialize_property = builder_module_serialize_property; serializable_iface->deserialize_property = builder_module_deserialize_property; + serializable_iface->find_property = builder_serializable_find_property_with_error; } const char * diff --git a/builder/builder-options.c b/builder/builder-options.c index 739bdaba..08d2e37c 100644 --- a/builder/builder-options.c +++ b/builder/builder-options.c @@ -473,6 +473,7 @@ serializable_iface_init (JsonSerializableIface *serializable_iface) { serializable_iface->serialize_property = builder_options_serialize_property; serializable_iface->deserialize_property = builder_options_deserialize_property; + serializable_iface->find_property = builder_serializable_find_property_with_error; } static GList * diff --git a/builder/builder-source.c b/builder/builder-source.c index 4d666bc7..a1a62ca2 100644 --- a/builder/builder-source.c +++ b/builder/builder-source.c @@ -208,9 +208,19 @@ builder_source_init (BuilderSource *self) { } +static GParamSpec * +builder_source_find_property (JsonSerializable *serializable, + const char *name) +{ + if (strcmp (name, "type") == 0) + return NULL; + return builder_serializable_find_property_with_error (serializable, name); +} + static void serializable_iface_init (JsonSerializableIface *serializable_iface) { + serializable_iface->find_property = builder_source_find_property; } JsonNode * diff --git a/builder/builder-utils.c b/builder/builder-utils.c index c99b8537..9af75386 100644 --- a/builder/builder-utils.c +++ b/builder/builder-utils.c @@ -1666,3 +1666,13 @@ builder_download_uri (const char *url, return TRUE; } + +GParamSpec * +builder_serializable_find_property_with_error (JsonSerializable *serializable, + const char *name) +{ + GParamSpec *pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (serializable), name); + if (pspec == NULL) + g_warning ("Unknown property %s for type %s\n", name, g_type_name_from_instance ((GTypeInstance *)serializable)); + return pspec; +} diff --git a/builder/builder-utils.h b/builder/builder-utils.h index 6cf00944..4dac5bc0 100644 --- a/builder/builder-utils.h +++ b/builder/builder-utils.h @@ -23,6 +23,7 @@ #include #include +#include G_BEGIN_DECLS @@ -68,6 +69,9 @@ gboolean builder_download_uri (const char *url, SoupSession *soup_session, GError **error); +GParamSpec * builder_serializable_find_property_with_error (JsonSerializable *serializable, + const char *name); + G_END_DECLS #endif /* __BUILDER_UTILS_H__ */