|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 08/25] tools/xenstore: make hashtable key and value parameters const
On 26.07.23 10:20, Julien Grall wrote: Hi Juergen, On 26/07/2023 07:19, Juergen Gross wrote:On 25.07.23 18:08, Julien Grall wrote:Hi, On 24/07/2023 12:02, Juergen Gross wrote:The key and value are never modified by hashtable code, so they should be marked as const.You wrote this but... This is arguable IMHO. To give a concrete example, with the current interface we are telling the user that what they store in the hashtable can be modified at some point. By adding 'const' for the value in hashtable_add(), we can mislead a user to think it is fine to store static string, yet this is not enforced all the way through. So one could mistakenly think that values returned hashtable_search() can be modified. And the compiler will not be here to help enforcing it because you cast-away the const. Yes, like in the case of strstr(). It takes two const char * parameters and it is returning char *, even with it pointing into the first parameter. Do you have any code in this series that requires the 'const' in hashtable_add()? If so, can you point me to the patch and I will have a look? I had it when writing this patch, but this requirement is gone now. But please note that this means to drop the const from db_write(), too. If not, then I will strongly argue that this should be dropped because dropping a const is always a recipe for disaster. Depends IMO. I believe it is better as I've done it, but in case you insist on it I can drop the patch. An alternative would be make hashtable_search() return a const and only cast the const away where it is really needed (and probably with a prominent comment at the related hashtable_add() place). I think this will hit xenstored_domain.c use cases only. Juergen Attachment:
OpenPGP_0xB0DE9DD628BF132F.asc Attachment:
OpenPGP_signature
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |