]> sigrok.org Git - libsigrok.git/commitdiff
Remove unnecessary driver context checks
authorLars-Peter Clausen <redacted>
Mon, 2 May 2016 11:24:04 +0000 (13:24 +0200)
committerUwe Hermann <redacted>
Tue, 3 May 2016 23:33:02 +0000 (01:33 +0200)
Some drivers check in some of their driver callbacks if the driver has been
initialized and return an error if it has not.

For the scan() callback the sigrok core checks if the driver has been
initialized and if not returns an error. So it is not possible that the
scan() callback gets called if the driver is not initialized. Without the
scan() callback succeeding it is not possible to get a reference to a
device which is associated with the driver, so it is not possible that any
of the device specific callbacks is called without the driver first being
initialized either.

In conclusion these checks are not necessary since they never evaluate to
true and can be dropped. If they should ever become necessary they should
be done in the sigrok core so all drivers and all callbacks are equally
handled.

Signed-off-by: Lars-Peter Clausen <redacted>
src/hardware/ikalogic-scanalogic2/api.c
src/hardware/kecheng-kc-330b/api.c
src/hardware/lascar-el-usb/api.c
src/hardware/lecroy-logicstudio/api.c
src/hardware/link-mso19/api.c
src/hardware/sysclk-lwla/api.c
src/hardware/testo/api.c
src/hardware/uni-t-ut32x/api.c
src/hardware/victor-dmm/api.c

index dd2e421120fd21f73596aa5aa1b5330c94742159..1ce3b91c9d771b97a450561dda2d08615b796c68 100644 (file)
@@ -183,17 +183,12 @@ static int dev_clear(const struct sr_dev_driver *di)
 static int dev_open(struct sr_dev_inst *sdi)
 {
        struct sr_dev_driver *di = sdi->driver;
-       struct drv_context *drvc;
+       struct drv_context *drvc = di->context;
        struct dev_context *devc;
        struct sr_usb_dev_inst *usb;
        uint8_t buffer[PACKET_LENGTH];
        int ret;
 
-       if (!(drvc = di->context)) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        usb = sdi->conn;
        devc = sdi->priv;
 
@@ -254,14 +249,8 @@ static int dev_open(struct sr_dev_inst *sdi)
 
 static int dev_close(struct sr_dev_inst *sdi)
 {
-       struct sr_dev_driver *di = sdi->driver;
        struct sr_usb_dev_inst *usb;
 
-       if (!di->context) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        usb = sdi->conn;
 
        if (!usb->devhdl)
index 15c43b1b95fa21c155165983e832754e67a2e727..86ac30b15a5dfd7f435129adf4cefde36b553441 100644 (file)
@@ -163,15 +163,10 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options)
 static int dev_open(struct sr_dev_inst *sdi)
 {
        struct sr_dev_driver *di = sdi->driver;
-       struct drv_context *drvc;
+       struct drv_context *drvc = di->context;
        struct sr_usb_dev_inst *usb;
        int ret;
 
-       if (!(drvc = di->context)) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        usb = sdi->conn;
 
        if (sr_usb_open(drvc->sr_ctx->libusb_ctx, usb) != SR_OK)
@@ -193,15 +188,9 @@ static int dev_open(struct sr_dev_inst *sdi)
 
 static int dev_close(struct sr_dev_inst *sdi)
 {
-       struct sr_dev_driver *di = sdi->driver;
        struct dev_context *devc;
        struct sr_usb_dev_inst *usb;
 
-       if (!di->context) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        usb = sdi->conn;
 
        if (!usb->devhdl)
@@ -274,7 +263,6 @@ static int config_get(uint32_t key, GVariant **data, const struct sr_dev_inst *s
 static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sdi,
                const struct sr_channel_group *cg)
 {
-       struct sr_dev_driver *di = sdi->driver;
        struct dev_context *devc;
        uint64_t p, q;
        unsigned int i;
@@ -286,11 +274,6 @@ static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sd
        if (sdi->status != SR_ST_ACTIVE)
                return SR_ERR_DEV_CLOSED;
 
-       if (!di->context) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        devc = sdi->priv;
        ret = SR_OK;
        switch (key) {
index fb9d19309073a4e99b18768d6e8f8ba15a36a7d5..3b78b198b3c3c35009eddede52a3e7c3009114df 100644 (file)
@@ -92,15 +92,10 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options)
 static int dev_open(struct sr_dev_inst *sdi)
 {
        struct sr_dev_driver *di = sdi->driver;
-       struct drv_context *drvc;
+       struct drv_context *drvc = di->context;;
        struct sr_usb_dev_inst *usb;
        int ret;
 
-       if (!(drvc = di->context)) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        usb = sdi->conn;
 
        if (sr_usb_open(drvc->sr_ctx->libusb_ctx, usb) != SR_OK)
@@ -117,14 +112,8 @@ static int dev_open(struct sr_dev_inst *sdi)
 
 static int dev_close(struct sr_dev_inst *sdi)
 {
-       struct sr_dev_driver *di = sdi->driver;
        struct sr_usb_dev_inst *usb;
 
-       if (!di->context) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        usb = sdi->conn;
 
        if (!usb->devhdl)
@@ -178,7 +167,6 @@ static int config_get(uint32_t key, GVariant **data, const struct sr_dev_inst *s
 static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sdi,
                const struct sr_channel_group *cg)
 {
-       struct sr_dev_driver *di = sdi->driver;
        struct dev_context *devc;
        int ret;
 
@@ -187,11 +175,6 @@ static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sd
        if (sdi->status != SR_ST_ACTIVE)
                return SR_ERR_DEV_CLOSED;
 
-       if (!di->context) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        devc = sdi->priv;
        ret = SR_OK;
        switch (key) {
@@ -321,11 +304,6 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi)
        if (sdi->status != SR_ST_ACTIVE)
                return SR_ERR_DEV_CLOSED;
 
-       if (!di->context) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        drvc = di->context;
        devc = sdi->priv;
        usb = sdi->conn;
@@ -427,13 +405,6 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi)
 
 SR_PRIV int dev_acquisition_stop(struct sr_dev_inst *sdi)
 {
-       struct sr_dev_driver *di = sdi->driver;
-
-       if (!di->context) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        if (sdi->status != SR_ST_ACTIVE) {
                sr_err("Device inactive, can't stop acquisition.");
                return SR_ERR;
index 9cf7018eb810e93f7a72a76a499da046675c04d2..b6c5116083f4822c457212e4f1e1879035b4bb4d 100644 (file)
@@ -263,19 +263,12 @@ static int open_device(struct sr_dev_inst *sdi)
 
 static int dev_open(struct sr_dev_inst *sdi)
 {
-       struct drv_context *drvc;
        struct dev_context *devc;
        int64_t timediff_us, timediff_ms;
        int ret;
 
-       drvc = sdi->driver->context;
        devc = sdi->priv;
 
-       if (!drvc) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        /*
         * If we didn't need to upload FX2 firmware in scan(), open the device
         * right away. Otherwise, wait up to MAX_RENUM_DELAY_MS ms for the
index faee455c42408eebaeadf93cc5d4f565e6c8f988..c35fc718903eb41b202786432250ac1e43460bc5 100644 (file)
@@ -55,15 +55,12 @@ SR_PRIV struct sr_dev_driver link_mso19_driver_info;
 /* TODO: Use sr_dev_inst to store connection handle & use std_dev_clear(). */
 static int dev_clear(const struct sr_dev_driver *di)
 {
+       struct drv_context *drvc = di->context;
        GSList *l;
        struct sr_dev_inst *sdi;
-       struct drv_context *drvc;
        struct dev_context *devc;
        int ret = SR_OK;
 
-       if (!(drvc = di->context))
-               return SR_OK;
-
        /* Properly close and free all devices. */
        for (l = drvc->instances; l; l = l->next) {
                if (!(sdi = l->data)) {
index 59d126334c99900c8e5f222c28e1cf8a233b62af..0a614f9dbc4023f2a0f44780efd0f8cd10565731 100644 (file)
@@ -282,10 +282,6 @@ static int dev_open(struct sr_dev_inst *sdi)
        devc = sdi->priv;
        usb = sdi->conn;
 
-       if (!drvc) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
        if (sdi->status != SR_ST_INACTIVE) {
                sr_err("Device already open.");
                return SR_ERR;
@@ -349,19 +345,13 @@ static int dev_open(struct sr_dev_inst *sdi)
  */
 static int dev_close(struct sr_dev_inst *sdi)
 {
-       struct drv_context *drvc;
        struct dev_context *devc;
        struct sr_usb_dev_inst *usb;
        int ret;
 
-       drvc = sdi->driver->context;
        devc = sdi->priv;
        usb = sdi->conn;
 
-       if (!drvc) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
        if (sdi->status == SR_ST_INACTIVE) {
                sr_dbg("Device already closed.");
                return SR_OK;
index d0e60237cd0f3192ef9f886a547e4055a7b68913..5d5ccb9048776dd7d976d2a00f4f90825de25000 100644 (file)
@@ -155,11 +155,6 @@ static int dev_open(struct sr_dev_inst *sdi)
        int ret, i;
        char connection_id[64];
 
-       if (!di->context) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        usb = sdi->conn;
        libusb_get_device_list(drvc->sr_ctx->libusb_ctx, &devlist);
        for (i = 0; devlist[i]; i++) {
@@ -199,14 +194,8 @@ static int dev_open(struct sr_dev_inst *sdi)
 
 static int dev_close(struct sr_dev_inst *sdi)
 {
-       struct sr_dev_driver *di = sdi->driver;
        struct sr_usb_dev_inst *usb;
 
-       if (!di->context) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        usb = sdi->conn;
        if (!usb->devhdl)
                /*  Nothing to do. */
@@ -256,11 +245,6 @@ static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sd
        if (sdi->status != SR_ST_ACTIVE)
                return SR_ERR_DEV_CLOSED;
 
-       if (!di->context) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        devc = sdi->priv;
        ret = SR_OK;
        switch (key) {
@@ -434,10 +418,6 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi)
        if (sdi->status != SR_ST_ACTIVE)
                return SR_ERR_DEV_CLOSED;
 
-       if (!di->context) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
 
        devc = sdi->priv;
        usb = sdi->conn;
@@ -474,13 +454,6 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi)
 
 static int dev_acquisition_stop(struct sr_dev_inst *sdi)
 {
-       struct sr_dev_driver *di = sdi->driver;
-
-       if (!di->context) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        if (sdi->status != SR_ST_ACTIVE)
                return SR_ERR_DEV_CLOSED;
 
index f19dabeff55015f0bad2d20de530650b8821aec5..7ed3f88ce8fa1f38d8b159584d92224b02357298 100644 (file)
@@ -101,15 +101,10 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options)
 static int dev_open(struct sr_dev_inst *sdi)
 {
        struct sr_dev_driver *di = sdi->driver;
-       struct drv_context *drvc;
+       struct drv_context *drvc = di->context;
        struct sr_usb_dev_inst *usb;
        int ret;
 
-       if (!(drvc = di->context)) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        usb = sdi->conn;
 
        if (sr_usb_open(drvc->sr_ctx->libusb_ctx, usb) != SR_OK)
@@ -145,14 +140,8 @@ static int dev_open(struct sr_dev_inst *sdi)
 
 static int dev_close(struct sr_dev_inst *sdi)
 {
-       struct sr_dev_driver *di = sdi->driver;
        struct sr_usb_dev_inst *usb;
 
-       if (!di->context) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        usb = sdi->conn;
        if (!usb->devhdl)
                /*  Nothing to do. */
@@ -194,7 +183,6 @@ static int config_get(uint32_t key, GVariant **data, const struct sr_dev_inst *s
 static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sdi,
                const struct sr_channel_group *cg)
 {
-       struct sr_dev_driver *di = sdi->driver;
        struct dev_context *devc;
        const char *tmp_str;
 
@@ -203,11 +191,6 @@ static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sd
        if (sdi->status != SR_ST_ACTIVE)
                return SR_ERR_DEV_CLOSED;
 
-       if (!di->context) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        devc = sdi->priv;
 
        switch (key) {
index 9323e70015770c902d9b29c89d3a385edace2a67..8f20f599fca7ead98f9cffe0ce06b11d45ba930c 100644 (file)
@@ -110,11 +110,6 @@ static int dev_open(struct sr_dev_inst *sdi)
        int ret, i;
        char connection_id[64];
 
-       if (!di->context) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        usb = sdi->conn;
 
        libusb_get_device_list(drvc->sr_ctx->libusb_ctx, &devlist);
@@ -156,14 +151,8 @@ static int dev_open(struct sr_dev_inst *sdi)
 
 static int dev_close(struct sr_dev_inst *sdi)
 {
-       struct sr_dev_driver *di = sdi->driver;
        struct sr_usb_dev_inst *usb;
 
-       if (!di->context) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        usb = sdi->conn;
 
        if (!usb->devhdl)
@@ -204,7 +193,6 @@ static int config_get(uint32_t key, GVariant **data, const struct sr_dev_inst *s
 static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sdi,
                const struct sr_channel_group *cg)
 {
-       struct sr_dev_driver *di = sdi->driver;
        struct dev_context *devc;
        gint64 now;
 
@@ -213,11 +201,6 @@ static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sd
        if (sdi->status != SR_ST_ACTIVE)
                return SR_ERR_DEV_CLOSED;
 
-       if (!di->context) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        devc = sdi->priv;
 
        switch (key) {
@@ -351,11 +334,6 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi)
        if (sdi->status != SR_ST_ACTIVE)
                return SR_ERR_DEV_CLOSED;
 
-       if (!di->context) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        usb = sdi->conn;
 
        std_session_send_df_header(sdi, LOG_PREFIX);
@@ -384,13 +362,6 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi)
 
 static int dev_acquisition_stop(struct sr_dev_inst *sdi)
 {
-       struct sr_dev_driver *di = sdi->driver;
-
-       if (!di->context) {
-               sr_err("Driver was not initialized.");
-               return SR_ERR;
-       }
-
        if (sdi->status != SR_ST_ACTIVE) {
                sr_err("Device not active, can't stop acquisition.");
                return SR_ERR;