]> sigrok.org Git - libserialport.git/commitdiff
Add sp_free_port() function.
authorMartin Ling <redacted>
Sun, 3 Nov 2013 22:27:59 +0000 (22:27 +0000)
committerUwe Hermann <redacted>
Thu, 14 Nov 2013 23:42:38 +0000 (00:42 +0100)
serialport.c
serialport.h

index c2a1a0cc606d7bda66527c275ffdd875ebc94973..77d8b28ca2829eeeae1f7d1dcb220b6b26790fb7 100644 (file)
@@ -73,6 +73,17 @@ int sp_get_port_by_name(const char *portname, struct sp_port **port_ptr)
        return SP_OK;
 }
 
+void sp_free_port(struct sp_port *port)
+{
+       if (!port)
+               return;
+
+       if (port->name)
+               free(port->name);
+
+       free(port);
+}
+
 static struct sp_port **sp_list_append(struct sp_port **list, const char *portname)
 {
        void *tmp;
@@ -313,7 +324,7 @@ void sp_free_port_list(struct sp_port **list)
 {
        unsigned int i;
        for (i = 0; list[i]; i++)
-               free(list[i]);
+               sp_free_port(list[i]);
        free(list);
 }
 
index c7d4f7c261edde451727e29c17253094b61e33aa..ac583e9431772094e928e29278ae8989f6b7c35d 100644 (file)
@@ -80,6 +80,7 @@ enum {
 };
 
 int sp_get_port_by_name(const char *portname, struct sp_port **port_ptr);
+void sp_free_port(struct sp_port *port);
 int sp_list_ports(struct sp_port ***list_ptr);
 void sp_free_port_list(struct sp_port **ports);
 int sp_open(struct sp_port *port, int flags);