[gitg: 4/7] Use config snapshot when reading config values



commit 75d1148df914a4e4e52b302d2252bb83bdd1f92d
Author: Jesse van den Kieboom <jessevdk gnome org>
Date:   Fri Jul 31 00:57:01 2015 +0200

    Use config snapshot when reading config values

 gitg/gitg-author-details-dialog.vala      |   18 ++++++++++++------
 gitg/gitg-remote-manager.vala             |    2 +-
 gitg/history/gitg-history.vala            |    2 +-
 libgitg/gitg-credentials-manager.vala     |    2 +-
 libgitg/gitg-repository.vala              |    2 +-
 libgitg/gitg-stage-status-enumerator.vala |    2 +-
 libgitg/gitg-stage.vala                   |    2 +-
 tests/libgitg/test-encoding.vala          |    2 +-
 8 files changed, 19 insertions(+), 13 deletions(-)
---
diff --git a/gitg/gitg-author-details-dialog.vala b/gitg/gitg-author-details-dialog.vala
index 59f66dd..37b3eab 100644
--- a/gitg/gitg-author-details-dialog.vala
+++ b/gitg/gitg-author-details-dialog.vala
@@ -81,15 +81,21 @@ namespace Gitg
 
                        try
                        {
-                               author_name = d_config.get_string("user.name");
-                       }
-                       catch {}
+                               var config = d_config.snapshot();
 
-                       try
+                               try
+                               {
+                                       author_name = config.get_string("user.name");
+                               } catch {}
+
+                               try
+                               {
+                                       author_email = config.get_string("user.email");
+                               } catch {}
+                       }
+                       catch
                        {
-                               author_email = d_config.get_string("user.email");
                        }
-                       catch {}
 
                        if (author_name != "")
                        {
diff --git a/gitg/gitg-remote-manager.vala b/gitg/gitg-remote-manager.vala
index d008855..116639c 100644
--- a/gitg/gitg-remote-manager.vala
+++ b/gitg/gitg-remote-manager.vala
@@ -71,7 +71,7 @@ class RemoteManager : Object, GitgExt.RemoteLookup
 
                try
                {
-                       config = d_window.repository.get_config();
+                       config = d_window.repository.get_config().snapshot();
                } catch { return; }
 
                Regex r;
diff --git a/gitg/history/gitg-history.vala b/gitg/history/gitg-history.vala
index 49c0395..7f76e0b 100644
--- a/gitg/history/gitg-history.vala
+++ b/gitg/history/gitg-history.vala
@@ -336,7 +336,7 @@ namespace GitgHistory
                        try
                        {
                                config = repository.get_config();
-                               ref_names = config.get_string("gitg.mainline").split(",");
+                               ref_names = config.snapshot().get_string("gitg.mainline").split(",");
                        }
                        catch
                        {
diff --git a/libgitg/gitg-credentials-manager.vala b/libgitg/gitg-credentials-manager.vala
index 4e98d3e..d913bd6 100644
--- a/libgitg/gitg-credentials-manager.vala
+++ b/libgitg/gitg-credentials-manager.vala
@@ -55,7 +55,7 @@ public class CredentialsManager
 
                        try
                        {
-                               var config = d_remote.get_owner().get_config();
+                               var config = d_remote.get_owner().get_config().snapshot();
                                var r = new Regex("credential\\.(.*)\\.username");
 
                                config.match_foreach(r, (info, value) => {
diff --git a/libgitg/gitg-repository.vala b/libgitg/gitg-repository.vala
index 727b68c..effcb8b 100644
--- a/libgitg/gitg-repository.vala
+++ b/libgitg/gitg-repository.vala
@@ -205,7 +205,7 @@ public class Repository : Ggit.Repository
                        date = new DateTime.now_local();
                }
 
-               var conf = get_config();
+               var conf = get_config().snapshot();
 
                if (user == null)
                {
diff --git a/libgitg/gitg-stage-status-enumerator.vala b/libgitg/gitg-stage-status-enumerator.vala
index 709698b..2b17ee4 100644
--- a/libgitg/gitg-stage-status-enumerator.vala
+++ b/libgitg/gitg-stage-status-enumerator.vala
@@ -237,7 +237,7 @@ public class StageStatusEnumerator : Object
                {
                        d_ignored_submodules = new Gee.HashSet<string>();
 
-                       repository.get_config().match_foreach(s_ignore_regex, (match, val) => {
+                       repository.get_config().snapshot().match_foreach(s_ignore_regex, (match, val) => {
                                if (val != "true")
                                {
                                        return 0;
diff --git a/libgitg/gitg-stage.vala b/libgitg/gitg-stage.vala
index 27eb8a8..7199ccc 100644
--- a/libgitg/gitg-stage.vala
+++ b/libgitg/gitg-stage.vala
@@ -384,7 +384,7 @@ public class Stage : Object
                        }
 
                        // Write tree from index
-                       var conf = d_repository.get_config();
+                       var conf = d_repository.get_config().snapshot();
 
                        string emsg = message;
 
diff --git a/tests/libgitg/test-encoding.vala b/tests/libgitg/test-encoding.vala
index 2848433..6fc8a95 100644
--- a/tests/libgitg/test-encoding.vala
+++ b/tests/libgitg/test-encoding.vala
@@ -28,7 +28,7 @@ class Gitg.Test.Encoding : Gitg.Test.Repository
        {
                base.set_up();
 
-               d_repository.get_config().set_string("i18n.commitencoding", "KOI8-R");
+               d_repository.get_config().snapshot().set_string("i18n.commitencoding", "KOI8-R");
 
                index_modify("b", "staged changes\n");
                index_modify("a", "lala\n");


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