]> sigrok.org Git - libsigrok.git/blobdiff - src/std.c
std_gvar_tuple_array(): Change to allow for more ARRAY_AND_SIZE usage.
[libsigrok.git] / src / std.c
index 45cc3a49acf9b3ea25cae96513d095313b89f97d..fa4218e67ace8f61c61e2dd6912b632438cb0385 100644 (file)
--- a/src/std.c
+++ b/src/std.c
@@ -541,7 +541,7 @@ SR_PRIV int std_opts_config_list(uint32_t key, GVariant **data,
        return SR_OK;
 }
 
-SR_PRIV GVariant *std_gvar_tuple_array(const uint64_t (*a)[][2], unsigned int n)
+SR_PRIV GVariant *std_gvar_tuple_array(const uint64_t a[][2], unsigned int n)
 {
        unsigned int i;
        GVariant *rational[2];
@@ -550,8 +550,8 @@ SR_PRIV GVariant *std_gvar_tuple_array(const uint64_t (*a)[][2], unsigned int n)
        g_variant_builder_init(&gvb, G_VARIANT_TYPE_ARRAY);
 
        for (i = 0; i < n; i++) {
-               rational[0] = g_variant_new_uint64((*a)[i][0]);
-               rational[1] = g_variant_new_uint64((*a)[i][1]);
+               rational[0] = g_variant_new_uint64(a[i][0]);
+               rational[1] = g_variant_new_uint64(a[i][1]);
 
                /* FIXME: Valgrind reports a memory leak here. */
                g_variant_builder_add_value(&gvb, g_variant_new_tuple(rational, 2));
@@ -646,3 +646,21 @@ SR_PRIV GVariant *std_gvar_min_max_step_thresholds(const double min, const doubl
 
        return g_variant_builder_end(&gvb);
 }
+
+SR_PRIV GVariant *std_gvar_array_i32(const int32_t *a, unsigned int n)
+{
+       return g_variant_new_fixed_array(G_VARIANT_TYPE_INT32,
+                               a, n, sizeof(int32_t));
+}
+
+SR_PRIV GVariant *std_gvar_array_u32(const uint32_t *a, unsigned int n)
+{
+       return g_variant_new_fixed_array(G_VARIANT_TYPE_UINT32,
+                               a, n, sizeof(uint32_t));
+}
+
+SR_PRIV GVariant *std_gvar_array_u64(const uint64_t *a, unsigned int n)
+{
+       return g_variant_new_fixed_array(G_VARIANT_TYPE_UINT64,
+                               a, n, sizeof(uint64_t));
+}