@@ -232,17 +232,6 @@ int compare(const KvpFrameImpl & one, const KvpFrameImpl & two) noexcept
232232 return 0 ;
233233}
234234
235- static void
236- kvp_value_list_from_gvalue (GValue *gval, gpointer pList)
237- {
238- GList **kvplist = (GList**)pList;
239- KvpValue *kvp;
240- if (!(gval && G_VALUE_TYPE (gval)))
241- return ;
242- kvp = kvp_value_from_gvalue (gval);
243- *kvplist = g_list_prepend (*kvplist, kvp);
244- }
245-
246235GValue*
247236gvalue_from_kvp_value (const KvpValue *kval, GValue* val)
248237{
@@ -283,14 +272,12 @@ gvalue_from_kvp_value (const KvpValue *kval, GValue* val)
283272 g_value_set_static_boxed (val, kval->get_ptr <GDate>());
284273 break ;
285274 case KvpValue::Type::GLIST:
286- {
287- g_value_init (val, GNC_TYPE_VALUE_LIST);
288- g_value_set_static_boxed (val, kval->get <GList*>());
289- break ;
290- }
275+ PWARN (" Error! Attempt to transfer KvpGList!" );
276+ [[fallthrough]];
291277/* No transfer of KVP frames outside of QofInstance-derived classes! */
292278 case KvpValue::Type::FRAME:
293279 PWARN (" Error! Attempt to transfer KvpFrame!" );
280+ [[fallthrough]];
294281 default :
295282 PWARN (" Error! Invalid KVP Transfer Request!" );
296283 g_slice_free (GValue, val);
@@ -338,68 +325,12 @@ kvp_value_from_gvalue (const GValue *gval)
338325 val = new KvpValue (*(Time64*)g_value_get_boxed (gval));
339326 else if (type == G_TYPE_DATE)
340327 val = new KvpValue (*(GDate*)g_value_get_boxed (gval));
341- else if (type == GNC_TYPE_VALUE_LIST)
342- {
343- GList *gvalue_list = (GList*)g_value_get_boxed (gval);
344- GList *kvp_list = NULL ;
345- g_list_foreach (gvalue_list, (GFunc)kvp_value_list_from_gvalue,
346- &kvp_list);
347- kvp_list = g_list_reverse (kvp_list);
348- val = new KvpValue (kvp_list);
349- // g_list_free_full (gvalue_list, (GDestroyNotify)g_value_unset);
350- // gvalue_list = NULL;
351- }
352328 else
353329 PWARN (" Error! Don't know how to make a KvpValue from a %s" ,
354330 G_VALUE_TYPE_NAME (gval));
355331
356332 return val;
357333}
358- /* The following are required for using KvpValue GLists as GValues */
359- static void
360- gnc_gvalue_copy (GValue *src, gpointer uData)
361- {
362- GList **new_list = (GList**)uData;
363- GValue *dest = g_value_init (g_slice_new0 (GValue), G_VALUE_TYPE (src));
364- g_value_copy (src, dest);
365- *new_list = g_list_prepend (*new_list, dest);
366- }
367-
368- void
369- gnc_gvalue_free (GValue *val)
370- {
371- if (val == NULL || ! G_IS_VALUE (val)) return ;
372- g_value_unset (val);
373- g_slice_free (GValue, val);
374- }
375-
376- static GList*
377- gnc_value_list_copy (GList *list)
378- {
379- GList *new_list = NULL ;
380- g_list_foreach (list, (GFunc)gnc_gvalue_copy, &new_list);
381- new_list = g_list_reverse (new_list);
382- return new_list;
383- }
384-
385- static void
386- gnc_value_list_free (GList *list)
387- {
388- g_list_free_full (list, (GDestroyNotify)gnc_gvalue_free);
389- }
390-
391- GType
392- gnc_value_list_get_type (void )
393- {
394- static GType type = 0 ;
395- if (type == 0 )
396- {
397- type = g_boxed_type_register_static (" gnc_value_list" ,
398- (GBoxedCopyFunc)gnc_value_list_copy,
399- (GBoxedFreeFunc)gnc_value_list_free);
400- }
401- return type;
402- }
403334
404335void
405336KvpFrame::flatten_kvp_impl (std::vector <std::string> path, std::vector <KvpEntry> & entries) const noexcept
0 commit comments