]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/hantek-6xxx/api.c
Factor out std_session_send_df_end() helper.
[libsigrok.git] / src / hardware / hantek-6xxx / api.c
index 40b48a4bff14ffbcf7f8da1b6b1e4676e17a3853..83992ff64f4f1490452b3491a59289c0de9600d3 100644 (file)
@@ -155,6 +155,7 @@ static void clear_dev_context(void *priv)
 
        devc = priv;
        g_slist_free(devc->enabled_channels);
+       g_free(devc);
 }
 
 static int dev_clear(const struct sr_dev_driver *di)
@@ -650,6 +651,8 @@ static void LIBUSB_CALL receive_transfer(struct libusb_transfer *transfer)
        devc = sdi->priv;
 
        if (devc->dev_state == FLUSH) {
+               g_free(transfer->buffer);
+               libusb_free_transfer(transfer);
                devc->dev_state = CAPTURE;
                devc->aq_started = g_get_monotonic_time();
                read_channel(sdi, data_amount(sdi));
@@ -729,7 +732,6 @@ static int read_channel(const struct sr_dev_inst *sdi, uint32_t amount)
 static int handle_event(int fd, int revents, void *cb_data)
 {
        const struct sr_dev_inst *sdi;
-       struct sr_datafeed_packet packet;
        struct timeval tv;
        struct sr_dev_driver *di;
        struct dev_context *devc;
@@ -758,9 +760,7 @@ static int handle_event(int fd, int revents, void *cb_data)
                 */
                usb_source_remove(sdi->session, drvc->sr_ctx);
 
-               packet.type = SR_DF_END;
-               packet.payload = NULL;
-               sr_session_send(sdi, &packet);
+               std_session_send_df_end(sdi, LOG_PREFIX);
 
                devc->dev_state = IDLE;