std_gvar_tuple_array(): Change to allow for more ARRAY_AND_SIZE usage.

Thanks to Marcus Comstedt <marcus@mc.pp.se> for the hint!
This commit is contained in:
Uwe Hermann 2017-07-21 18:45:42 +02:00
parent 8dacbcf68f
commit 58ffcf9712
11 changed files with 17 additions and 18 deletions

View File

@ -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));

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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));

View File

@ -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));

View File

@ -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));

View File

@ -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)

View File

@ -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;

View File

@ -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);

View File

@ -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));