]> sigrok.org Git - libsigrok.git/commitdiff
modbus: Close device after scan
authorv1ne <redacted>
Wed, 8 Apr 2020 15:05:16 +0000 (17:05 +0200)
committerUwe Hermann <redacted>
Sat, 11 Apr 2020 13:55:35 +0000 (15:55 +0200)
Since the device should be closed after the scan, close it in sr_modbus_scan.
Alternatively, every single driver could close the device after calling
sr_modbus_scan. This causes duplicated code, is prone to forgetting it and it
wasn't the calling driver who opened the device in the first place.

This change unbreaks maynuo-m97 and rdtech-dps.

src/modbus/modbus.c

index 88be136c5e8d9fc888b5720cf899acb300bd6929..b7bf2e5ec565d6db33268a565850291d9d9ac065 100644 (file)
@@ -51,13 +51,14 @@ static struct sr_dev_inst *sr_modbus_scan_resource(const char *resource,
                return NULL;
        };
 
-       if ((sdi = probe_device(modbus)))
-               return sdi;
+       sdi = probe_device(modbus);
 
        sr_modbus_close(modbus);
-       sr_modbus_free(modbus);
 
-       return NULL;
+       if (!sdi)
+               sr_modbus_free(modbus);
+
+       return sdi;
 }
 
 /**