summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Hughes <richard@hughsie.com>2014-07-11 09:02:03 +0100
committerRichard Hughes <richard@hughsie.com>2014-07-11 11:25:39 +0100
commitbad76fb07a4fe946aff70cf36b87b3959c6b4fe5 (patch)
tree1a1f39a8d4c91d19ff6901893c022b52260e225c
parentca31d4ebf39813a085783fe604ad430df8fe387e (diff)
downloadappstream-glib-bad76fb07a4fe946aff70cf36b87b3959c6b4fe5.tar.gz
Do not allow RequiresAppdata to become true with AppData
-rw-r--r--libappstream-builder/asb-app.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libappstream-builder/asb-app.c b/libappstream-builder/asb-app.c
index 951525c..0b7af3f 100644
--- a/libappstream-builder/asb-app.c
+++ b/libappstream-builder/asb-app.c
@@ -42,6 +42,7 @@ struct _AsbAppPrivate
GPtrArray *requires_appdata;
GdkPixbuf *pixbuf;
AsbPackage *pkg;
+ gboolean ignore_requires_appdata;
};
G_DEFINE_TYPE_WITH_PRIVATE (AsbApp, asb_app, AS_TYPE_APP)
@@ -156,6 +157,8 @@ asb_app_add_requires_appdata (AsbApp *app, const gchar *fmt, ...)
AsbAppPrivate *priv = GET_PRIVATE (app);
gchar *tmp;
va_list args;
+ if (priv->ignore_requires_appdata)
+ return;
va_start (args, fmt);
tmp = g_strdup_vprintf (fmt, args);
va_end (args);
@@ -176,9 +179,12 @@ asb_app_set_requires_appdata (AsbApp *app, gboolean requires_appdata)
{
AsbAppPrivate *priv = GET_PRIVATE (app);
if (requires_appdata) {
+ if (priv->ignore_requires_appdata)
+ return;
g_ptr_array_add (priv->requires_appdata, NULL);
} else {
g_ptr_array_set_size (priv->requires_appdata, 0);
+ priv->ignore_requires_appdata = TRUE;
}
}