libftdi Archives

Subject: Re: [PATCH] Match close with open in ftdi_usb_get_strings

From: Thomas Jarosch <thomas.jarosch@xxxxxxxxxxxxx>
To: libftdi@xxxxxxxxxxxxxxxxxxxxxxx
Cc: fahhem@xxxxxxxxxx
Date: Sat, 26 Mar 2016 12:44:36 +0100
Hi Fahrzin,

Am 26.01.2016 um 09:12 schrieb Fahrzin Hemmati:
> In 1.2, ftdi_usb_get_strings stops opening a device if it's already
> open. But it still closes the device, even if it didn't open it. So if I
> have an open device, there's no way to just get the string info without
> having to reopen it.
> 
> The following simple patch changes the behavior to only close the
> usb_dev if it was opened, so now the open and close functions are
> matched internally.

thanks for the patch. I certainly see your point with the change.

There's one issue: Existing code might rely on the "bad"
behavior of libftdi. If we change they code now, the "client code"
might stop working as it expects libftdi to close the device.
-> leaked device pointer etc.

I'm not sure how we can fix this in a backward compatible way.

Any idea?

We could add a flag to ftdi_context, but that API design
would be even more bad :o) Unfortunately we don't have function
overloading in C or optional parameters with default arguments.

What we *could* do is a ftdi_usb_get_strings2() function and
add a compat wrapper for the old one. Once we do a major API revision
(nothing planned though), we could remove the old version.

Cheers,
Thomas


--
libftdi - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to libftdi+unsubscribe@xxxxxxxxxxxxxxxxxxxxxxx   

Current Thread