libftdi Archives

Subject: [PATCH] libftdi: pass eeprom strings as const

From: Dan Dedrick <dan.dedrick@xxxxxxxxx>
To: libftdi@xxxxxxxxxxxxxxxxxxxxxxx
Cc: Dan Dedrick <dan.dedrick@xxxxxxxxx>
Date: Tue, 7 Jan 2020 11:18:30 -0500
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 will fail 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 | 4 ++--
 src/ftdi.h | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/ftdi.c b/src/ftdi.c
index 988a9f1..9495fb5 100644
--- a/src/ftdi.c
+++ b/src/ftdi.c
@@ -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;
 
diff --git a/src/ftdi.h b/src/ftdi.h
index 8fcf719..7addeb9 100644
--- a/src/ftdi.h
+++ b/src/ftdi.h
@@ -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,
-- 
2.7.4


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

Current Thread