GValue* kvp_frame_get_gvalue (KvpFrame *frame, const gchar *key) { KvpValue *kval = kvp_frame_get_value (frame, key); GValue *value = gvalue_from_kvp_value (kval); return value; }
static void gvalue_list_from_kvp_value (KvpValue *kval, gpointer pList) { GList **gvlist = NULL; GValue *gval = gvalue_from_kvp_value (kval); gvlist = (GList**)pList; if (G_VALUE_TYPE (gval)) *gvlist = g_list_prepend (*gvlist, gval); }
void qof_instance_get_kvp (const QofInstance *inst, const gchar *key, GValue *value) { auto temp = gvalue_from_kvp_value (inst->kvp_data->get_slot(key)); if (G_IS_VALUE (temp)) { if (G_IS_VALUE (value)) g_value_unset (value); g_value_init (value, G_VALUE_TYPE (temp)); g_value_copy (temp, value); gnc_gvalue_free (temp); } }
static void wrap_gvalue_function (const char* key, KvpValue *val, gpointer data) { GValue *gv; auto param = static_cast<wrap_param*>(data); if (val->get_type() != KvpValue::Type::FRAME) gv = gvalue_from_kvp_value(val); else { gv = g_slice_new0 (GValue); g_value_init (gv, G_TYPE_STRING); g_value_set_string (gv, nullptr); } param->proc(key, gv, param->user_data); g_slice_free (GValue, gv); }