libftdi: pass eeprom strings as const
authorDan Dedrick <dan.dedrick@gmail.com>
Tue, 7 Jan 2020 16:18:30 +0000 (11:18 -0500)
committerThomas Jarosch <thomas.jarosch@intra2net.com>
Wed, 15 Jan 2020 20:04:47 +0000 (21:04 +0100)
These strings are not modified and it doesn't make sense that they ever
would be. Setting these as const ensures that they will not be modified
and allows const strings to be passed in without special manipulation.

Specifically a call like the following failed to compile:
ftdi_eeprom_set_strings(&ftdi, "foo", "bar", "abc123");

The error will look something like this:
error: ISO C++ forbids converting a string constant to ‘char*’
[-Werror=write-strings]

src/ftdi.c
src/ftdi.h

index 988a9f1..9495fb5 100644 (file)
@@ -2724,8 +2724,8 @@ int ftdi_eeprom_initdefaults(struct ftdi_context *ftdi, char * manufacturer,
     return 0;
 }
 
-int ftdi_eeprom_set_strings(struct ftdi_context *ftdi, char * manufacturer,
-                            char * product, char * serial)
+int ftdi_eeprom_set_strings(struct ftdi_context *ftdi, const char * manufacturer,
+                            const char * product, const char * serial)
 {
     struct ftdi_eeprom *eeprom;
 
index 8fcf719..7addeb9 100644 (file)
@@ -544,8 +544,8 @@ extern "C"
                                 char *manufacturer, int mnf_len,
                                 char *product, int prod_len,
                                 char *serial, int serial_len);
-    int ftdi_eeprom_set_strings(struct ftdi_context *ftdi, char * manufacturer,
-                                char * product, char * serial);
+    int ftdi_eeprom_set_strings(struct ftdi_context *ftdi, const char * manufacturer,
+                                const char * product, const char * serial);
 
     int ftdi_usb_open(struct ftdi_context *ftdi, int vendor, int product);
     int ftdi_usb_open_desc(struct ftdi_context *ftdi, int vendor, int product,