X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fhp-3478a%2Fapi.c;h=19d96ee155f352a0cc2e86b04931df1d7c7a30b0;hb=060df80fb354246cc309ef80927d38e37e922eb2;hp=0c461bb1740bebd4c4c4f1e41b892cfac1248057;hpb=569165c0e44323ce8a4baf1da4d540e8976e9d33;p=libsigrok.git diff --git a/src/hardware/hp-3478a/api.c b/src/hardware/hp-3478a/api.c index 0c461bb1..19d96ee1 100644 --- a/src/hardware/hp-3478a/api.c +++ b/src/hardware/hp-3478a/api.c @@ -102,7 +102,7 @@ static const char *digits[] = { "3.5", "4.5", "5.5", }; -/** Mapping between devc->spec_digits and digits string. */ +/** Mapping between devc->digits and digits string. */ static const char *digits_map[] = { "", "", "", "", "3.5", "4.5", "5.5", }; @@ -192,7 +192,9 @@ static int config_get(uint32_t key, GVariant **data, (void)cg; - devc = sdi ? sdi->priv : NULL; + if (!sdi) + return SR_ERR_ARG; + devc = sdi->priv; switch (key) { case SR_CONF_LIMIT_SAMPLES: @@ -225,7 +227,7 @@ static int config_get(uint32_t key, GVariant **data, ret = hp_3478a_get_status_bytes(sdi); if (ret != SR_OK) return ret; - *data = g_variant_new_string(digits_map[devc->spec_digits]); + *data = g_variant_new_string(digits_map[devc->digits]); break; default: return SR_ERR_NA; @@ -247,7 +249,9 @@ static int config_set(uint32_t key, GVariant *data, (void)cg; - devc = sdi ? sdi->priv : NULL; + if (!sdi) + return SR_ERR_ARG; + devc = sdi->priv; switch (key) { case SR_CONF_LIMIT_SAMPLES: @@ -294,7 +298,11 @@ static int config_list(uint32_t key, GVariant **data, GVariant *gvar, *arr[2]; GVariantBuilder gvb; - devc = sdi ? sdi->priv : NULL; + /* Only handle standard keys when no device instance is given. */ + if (!sdi) + return STD_CONFIG_LIST(key, data, sdi, cg, scanopts, drvopts, devopts); + + devc = sdi->priv; switch (key) { case SR_CONF_SCAN_OPTIONS: