]> sigrok.org Git - libsigrok.git/blobdiff - src/std.c
std: avoid doube close
[libsigrok.git] / src / std.c
index 9766875cc2ac058db9365f7479c2331ffee06c30..d1e2eedf784289eeaf72323e608a84ba99956ab2 100644 (file)
--- a/src/std.c
+++ b/src/std.c
@@ -263,7 +263,7 @@ SR_PRIV int std_session_send_df_trigger(const struct sr_dev_inst *sdi)
  * @retval SR_ERR_ARG Invalid argument.
  * @retval other Other error.
  */
-SR_PRIV int std_session_send_frame_begin(const struct sr_dev_inst *sdi)
+SR_PRIV int std_session_send_df_frame_begin(const struct sr_dev_inst *sdi)
 {
        return send_df_without_payload(sdi, SR_DF_FRAME_BEGIN);
 }
@@ -279,7 +279,7 @@ SR_PRIV int std_session_send_frame_begin(const struct sr_dev_inst *sdi)
  * @retval SR_ERR_ARG Invalid argument.
  * @retval other Other error.
  */
-SR_PRIV int std_session_send_frame_end(const struct sr_dev_inst *sdi)
+SR_PRIV int std_session_send_df_frame_end(const struct sr_dev_inst *sdi)
 {
        return send_df_without_payload(sdi, SR_DF_FRAME_END);
 }
@@ -424,7 +424,7 @@ SR_PRIV int std_dev_clear_with_callback(const struct sr_dev_driver *driver,
                        ret = SR_ERR_BUG;
                        continue;
                }
-               if (driver->dev_close)
+               if (driver->dev_close && sdi->status == SR_ST_ACTIVE)
                        driver->dev_close(sdi);
 
                if (sdi->conn) {