]> sigrok.org Git - libsigrok.git/commitdiff
Add sr_config_free()
authorBert Vermeulen <redacted>
Mon, 25 Mar 2013 19:23:13 +0000 (20:23 +0100)
committerBert Vermeulen <redacted>
Thu, 11 Apr 2013 16:32:06 +0000 (18:32 +0200)
Due to struct sr_config now containing a GVariant, this needs to be
cleaned up after use properly. This is a helper function for that.

hwdriver.c
libsigrok-internal.h

index 4635f3c4b7ace23bd64b39b295197e3d3d1becbf..40995fe7ac2c2d4b6d97f426daa15ca99b66c122 100644 (file)
@@ -368,6 +368,19 @@ SR_PRIV struct sr_config *sr_config_new(int key, GVariant *data)
        return src;
 }
 
+SR_PRIV void sr_config_free(struct sr_config *src)
+{
+
+       if (!src || !src->data) {
+               sr_err("%s: invalid data!", __func__);
+               return;
+       }
+
+       g_variant_unref(src->data);
+       g_free(src);
+
+}
+
 /**
  * Returns information about the given driver or device instance.
  *
index 649a0a311b1d70037fb1337999b355a5c15a38da..b8b2adc0a7df9fc20bc22baff66a88c29f7479e1 100644 (file)
@@ -114,6 +114,7 @@ SR_PRIV void sr_serial_dev_inst_free(struct sr_serial_dev_inst *serial);
 
 SR_PRIV void sr_hw_cleanup_all(void);
 SR_PRIV struct sr_config *sr_config_new(int key, GVariant *data);
+SR_PRIV void sr_config_free(struct sr_config *src);
 SR_PRIV int sr_source_remove(int fd);
 SR_PRIV int sr_source_add(int fd, int events, int timeout,
                          sr_receive_data_callback_t cb, void *cb_data);