From: Uwe Hermann Date: Fri, 21 Jul 2017 16:45:42 +0000 (+0200) Subject: std_gvar_tuple_array(): Change to allow for more ARRAY_AND_SIZE usage. X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=58ffcf97121453fb53e885338e23e54c7ed78659;p=libsigrok.git std_gvar_tuple_array(): Change to allow for more ARRAY_AND_SIZE usage. Thanks to Marcus Comstedt for the hint! --- diff --git a/src/hardware/cem-dt-885x/api.c b/src/hardware/cem-dt-885x/api.c index d7a75b60..2493a535 100644 --- a/src/hardware/cem-dt-885x/api.c +++ b/src/hardware/cem-dt-885x/api.c @@ -295,7 +295,7 @@ static int config_list(uint32_t key, GVariant **data, const struct sr_dev_inst * *data = g_variant_new_strv(ARRAY_AND_SIZE(weight_time)); break; case SR_CONF_SPL_MEASUREMENT_RANGE: - *data = std_gvar_tuple_array(&meas_ranges, ARRAY_SIZE(meas_ranges)); + *data = std_gvar_tuple_array(ARRAY_AND_SIZE(meas_ranges)); break; case SR_CONF_DATA_SOURCE: *data = g_variant_new_strv(ARRAY_AND_SIZE(data_sources)); diff --git a/src/hardware/hameg-hmo/api.c b/src/hardware/hameg-hmo/api.c index c4b75fe9..1e424440 100644 --- a/src/hardware/hameg-hmo/api.c +++ b/src/hardware/hameg-hmo/api.c @@ -495,12 +495,12 @@ static int config_list(uint32_t key, GVariant **data, const struct sr_dev_inst * case SR_CONF_TIMEBASE: if (!model) return SR_ERR_ARG; - *data = std_gvar_tuple_array(model->timebases, model->num_timebases); + *data = std_gvar_tuple_array(*model->timebases, model->num_timebases); break; case SR_CONF_VDIV: if (cg_type == CG_NONE) return SR_ERR_CHANNEL_GROUP; - *data = std_gvar_tuple_array(model->vdivs, model->num_vdivs); + *data = std_gvar_tuple_array(*model->vdivs, model->num_vdivs); break; default: return SR_ERR_NA; diff --git a/src/hardware/hantek-6xxx/api.c b/src/hardware/hantek-6xxx/api.c index 6b3cbcc2..53f50598 100644 --- a/src/hardware/hantek-6xxx/api.c +++ b/src/hardware/hantek-6xxx/api.c @@ -482,7 +482,7 @@ static int config_list(uint32_t key, GVariant **data, const struct sr_dev_inst * *data = g_variant_new_strv(devc->coupling_vals, devc->coupling_tab_size); break; case SR_CONF_VDIV: - *data = std_gvar_tuple_array(&vdivs, ARRAY_SIZE(vdivs)); + *data = std_gvar_tuple_array(ARRAY_AND_SIZE(vdivs)); break; default: return SR_ERR_NA; diff --git a/src/hardware/hantek-dso/api.c b/src/hardware/hantek-dso/api.c index 651c0e61..78b7f3b3 100644 --- a/src/hardware/hantek-dso/api.c +++ b/src/hardware/hantek-dso/api.c @@ -603,7 +603,7 @@ static int config_list(uint32_t key, GVariant **data, const struct sr_dev_inst * *data = std_gvar_array_u64(devc->profile->buffersizes, NUM_BUFFER_SIZES); break; case SR_CONF_TIMEBASE: - *data = std_gvar_tuple_array(&timebases, ARRAY_SIZE(timebases)); + *data = std_gvar_tuple_array(ARRAY_AND_SIZE(timebases)); break; case SR_CONF_TRIGGER_SOURCE: *data = g_variant_new_strv(ARRAY_AND_SIZE(trigger_sources)); @@ -623,7 +623,7 @@ static int config_list(uint32_t key, GVariant **data, const struct sr_dev_inst * *data = g_variant_new_strv(ARRAY_AND_SIZE(coupling)); break; case SR_CONF_VDIV: - *data = std_gvar_tuple_array(&vdivs, ARRAY_SIZE(vdivs)); + *data = std_gvar_tuple_array(ARRAY_AND_SIZE(vdivs)); break; default: return SR_ERR_NA; diff --git a/src/hardware/hung-chang-dso-2100/api.c b/src/hardware/hung-chang-dso-2100/api.c index f7515d74..5c764e45 100644 --- a/src/hardware/hung-chang-dso-2100/api.c +++ b/src/hardware/hung-chang-dso-2100/api.c @@ -604,7 +604,7 @@ static int config_list(uint32_t key, GVariant **data, const struct sr_dev_inst * *data = std_gvar_array_u64(ARRAY_AND_SIZE(buffersizes)); break; case SR_CONF_VDIV: - *data = std_gvar_tuple_array(&vdivs, ARRAY_SIZE(vdivs)); + *data = std_gvar_tuple_array(ARRAY_AND_SIZE(vdivs)); break; case SR_CONF_COUPLING: *data = g_variant_new_strv(ARRAY_AND_SIZE(coupling)); diff --git a/src/hardware/kecheng-kc-330b/api.c b/src/hardware/kecheng-kc-330b/api.c index 50986802..9fb9a0a7 100644 --- a/src/hardware/kecheng-kc-330b/api.c +++ b/src/hardware/kecheng-kc-330b/api.c @@ -324,8 +324,7 @@ static int config_list(uint32_t key, GVariant **data, const struct sr_dev_inst * case SR_CONF_DEVICE_OPTIONS: return STD_CONFIG_LIST(key, data, sdi, cg, NULL, drvopts, devopts); case SR_CONF_SAMPLE_INTERVAL: - *data = std_gvar_tuple_array(&kecheng_kc_330b_sample_intervals, - ARRAY_SIZE(kecheng_kc_330b_sample_intervals)); + *data = std_gvar_tuple_array(ARRAY_AND_SIZE(kecheng_kc_330b_sample_intervals)); break; case SR_CONF_SPL_WEIGHT_FREQ: *data = g_variant_new_strv(ARRAY_AND_SIZE(weight_freq)); diff --git a/src/hardware/pce-322a/api.c b/src/hardware/pce-322a/api.c index 04a8cfba..9e45e72d 100644 --- a/src/hardware/pce-322a/api.c +++ b/src/hardware/pce-322a/api.c @@ -247,7 +247,7 @@ static int config_list(uint32_t key, GVariant **data, *data = g_variant_new_strv(ARRAY_AND_SIZE(weight_time)); break; case SR_CONF_SPL_MEASUREMENT_RANGE: - *data = std_gvar_tuple_array(&meas_ranges, ARRAY_SIZE(meas_ranges)); + *data = std_gvar_tuple_array(ARRAY_AND_SIZE(meas_ranges)); break; case SR_CONF_DATA_SOURCE: *data = g_variant_new_strv(ARRAY_AND_SIZE(data_sources)); diff --git a/src/hardware/rigol-ds/api.c b/src/hardware/rigol-ds/api.c index 740e11f7..c2661a45 100644 --- a/src/hardware/rigol-ds/api.c +++ b/src/hardware/rigol-ds/api.c @@ -840,7 +840,7 @@ static int config_list(uint32_t key, GVariant **data, const struct sr_dev_inst * return SR_ERR_ARG; if (!cg) return SR_ERR_CHANNEL_GROUP; - *data = std_gvar_tuple_array((const uint64_t (*)[][2])devc->vdivs, devc->num_vdivs); + *data = std_gvar_tuple_array(devc->vdivs, devc->num_vdivs); break; case SR_CONF_TIMEBASE: if (!devc) @@ -848,7 +848,7 @@ static int config_list(uint32_t key, GVariant **data, const struct sr_dev_inst * return SR_ERR_ARG; if (devc->num_timebases <= 0) return SR_ERR_NA; - *data = std_gvar_tuple_array((const uint64_t (*)[][2])devc->timebases, devc->num_timebases); + *data = std_gvar_tuple_array(devc->timebases, devc->num_timebases); break; case SR_CONF_TRIGGER_SOURCE: if (!devc) diff --git a/src/hardware/yokogawa-dlm/api.c b/src/hardware/yokogawa-dlm/api.c index 87b0c776..4cdec52a 100644 --- a/src/hardware/yokogawa-dlm/api.c +++ b/src/hardware/yokogawa-dlm/api.c @@ -462,7 +462,7 @@ static int config_list(uint32_t key, GVariant **data, const struct sr_dev_inst * case SR_CONF_DEVICE_OPTIONS: return STD_CONFIG_LIST(key, data, sdi, cg, scanopts, drvopts, devopts); case SR_CONF_TIMEBASE: - *data = std_gvar_tuple_array(&dlm_timebases, ARRAY_SIZE(dlm_timebases)); + *data = std_gvar_tuple_array(ARRAY_AND_SIZE(dlm_timebases)); return SR_OK; case SR_CONF_TRIGGER_SOURCE: if (!model) @@ -503,7 +503,7 @@ static int config_list(uint32_t key, GVariant **data, const struct sr_dev_inst * case SR_CONF_VDIV: if (cg_type == CG_NONE) return SR_ERR_CHANNEL_GROUP; - *data = std_gvar_tuple_array(&dlm_vdivs, ARRAY_SIZE(dlm_vdivs)); + *data = std_gvar_tuple_array(ARRAY_AND_SIZE(dlm_vdivs)); break; default: return SR_ERR_NA; diff --git a/src/libsigrok-internal.h b/src/libsigrok-internal.h index cb0e38f3..1df5311c 100644 --- a/src/libsigrok-internal.h +++ b/src/libsigrok-internal.h @@ -956,7 +956,7 @@ SR_PRIV int std_opts_config_list(uint32_t key, GVariant **data, std_opts_config_list(key, data, sdi, cg, ARRAY_AND_SIZE(scanopts), \ ARRAY_AND_SIZE(drvopts), ARRAY_AND_SIZE(devopts)) -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); SR_PRIV GVariant *std_gvar_tuple_rational(const struct sr_rational *r, unsigned int n); SR_PRIV GVariant *std_gvar_samplerates(const uint64_t samplerates[], unsigned int n); SR_PRIV GVariant *std_gvar_samplerates_steps(const uint64_t samplerates[], unsigned int n); diff --git a/src/std.c b/src/std.c index 119b301e..fa4218e6 100644 --- 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));