[gnome-builder] flatpak: ensure dirty bit is not changed after creation



commit a1f8cdfeb5931415cdff7e1eed355a35c5d99b50
Author: Christian Hergert <chergert redhat com>
Date:   Fri Aug 3 14:05:12 2018 -0700

    flatpak: ensure dirty bit is not changed after creation
    
    By validating properties and changing state, we lost our FALSE state for
    the dirty bit in the configuration. That resulted in write-back of the
    configuration in situations where we don't want to do that.

 src/plugins/flatpak/gbp-flatpak-configuration-provider.c | 3 +++
 src/plugins/flatpak/gbp-flatpak-manifest.c               | 5 ++++-
 2 files changed, 7 insertions(+), 1 deletion(-)
---
diff --git a/src/plugins/flatpak/gbp-flatpak-configuration-provider.c 
b/src/plugins/flatpak/gbp-flatpak-configuration-provider.c
index 82bd55837..6a8f2c159 100644
--- a/src/plugins/flatpak/gbp-flatpak-configuration-provider.c
+++ b/src/plugins/flatpak/gbp-flatpak-configuration-provider.c
@@ -326,6 +326,8 @@ gbp_flatpak_configuration_provider_load_worker (IdeTask      *task,
           continue;
         }
 
+      g_assert (ide_configuration_get_dirty (IDE_CONFIGURATION (manifest)) == FALSE);
+
       g_signal_connect_object (manifest,
                                "needs-reload",
                                G_CALLBACK (manifest_needs_reload),
@@ -550,6 +552,7 @@ gbp_flatpak_configuration_provider_load_finish (IdeConfigurationProvider  *provi
       IdeConfiguration *config = g_ptr_array_index (configs, i);
 
       g_assert (IDE_IS_CONFIGURATION (config));
+      g_assert (ide_configuration_get_dirty (config) == FALSE);
 
       ide_configuration_provider_emit_added (provider, config);
     }
diff --git a/src/plugins/flatpak/gbp-flatpak-manifest.c b/src/plugins/flatpak/gbp-flatpak-manifest.c
index dcd427ade..c2e421d80 100644
--- a/src/plugins/flatpak/gbp-flatpak-manifest.c
+++ b/src/plugins/flatpak/gbp-flatpak-manifest.c
@@ -457,9 +457,12 @@ gbp_flatpak_manifest_initable_init (GInitable     *initable,
   self->root = json_node_ref (root);
   self->primary = json_object_ref (primary);
 
+  if (!validate_properties (self, error))
+    return FALSE;
+
   ide_configuration_set_dirty (IDE_CONFIGURATION (self), FALSE);
 
-  return validate_properties (self, error);
+  return TRUE;
 }
 
 static void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]