From: Andreas S. <ma...@cy...> - 2009-05-29 18:02:08
|
On Friday 29 May 2009 18:02:33 Daniel Drake wrote: > In the interest of not changing API, my temptation is to to modify the > code in those 2 last functions, to first check that the unsigned number > can safely fit in a signed int, and then to cast it and use it. That > would fix the warnings and not break API in any way. What do people think? > Unfortunately those 2 functions are static inlines inside libusb.h. > Actually, would casting an unsigned int to an int cause a new compiler > warning to come up, even if I range check it first? > > > Other options include: > - making a small API change to those 2 last functions to accept "int" > - making a bigger API change to unsigned everywhere I think you can do this safely. It is a API change but it will not really break the API and it should still be ABI compatible. Casting from int to unsigned int should be no problem. I think we have only positive numbers here. Casting from unsinged int to int is a problem cause the first bit is the signed bit. So a large number could be a negative number after the cast. So it is safer to change to unsinged values. This is just my opinion... -- andreas |