gnucash trunk: Replace glib 2.34-or-later g_list_copy_deep

John Ralls jralls at code.gnucash.org
Thu May 8 21:06:54 EDT 2014


Updated	 via  https://github.com/Gnucash/gnucash/commit/71c31ccf (commit)
	from  https://github.com/Gnucash/gnucash/commit/c4a18ae2 (commit)



commit 71c31ccf2af838e61dfd0d7412879ef94425b777
Author: John Ralls <jralls at ceridwen.us>
Date:   Thu May 8 21:05:05 2014 -0400

    Replace glib 2.34-or-later g_list_copy_deep
    
    Fixes Win32 build issue, where we're using 2.28

diff --git a/src/libqof/qof/kvp_frame.cpp b/src/libqof/qof/kvp_frame.cpp
index 881d029..299eee5 100644
--- a/src/libqof/qof/kvp_frame.cpp
+++ b/src/libqof/qof/kvp_frame.cpp
@@ -1812,12 +1812,13 @@ kvp_frame_set_gvalue (KvpFrame *frame, const gchar *key, const GValue *value)
   kvp_frame_set_value_nc (frame, key, kvp_value_from_gvalue (value));
 }
 
-static GValue*
+static void
 gnc_gvalue_copy (GValue *src, gpointer uData)
 {
+    GList **new_list = (GList**)uData;
     GValue *dest = g_value_init (g_slice_new0 (GValue), G_VALUE_TYPE (src));
     g_value_copy (src, dest);
-    return dest;
+    *new_list = g_list_prepend(*new_list, dest);
 }
 
 void
@@ -1831,7 +1832,10 @@ gnc_gvalue_free (GValue *val)
 static GList*
 gnc_value_list_copy (GList *list)
 {
-    return g_list_copy_deep (list, (GCopyFunc)gnc_gvalue_copy, NULL);
+    GList *new_list = NULL;
+    g_list_foreach (list, (GFunc)gnc_gvalue_copy, &new_list);
+    new_list = g_list_reverse (new_list);
+    return new_list;
 }
 
 static void



Summary of changes:
 src/libqof/qof/kvp_frame.cpp | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)



More information about the gnucash-changes mailing list