Ticket UUID: | 3009403 | |||
Title: | Signature of Tcl_GetHashKey, Tcl_(Create|Find)HashEntry | |||
Type: | Patch | Version: | None | |
Submitter: | nijtmans | Created on: | 2010-05-31 09:49:31 | |
Subsystem: | 52. Portability Support | Assigned To: | aku | |
Priority: | 9 Immediate | Severity: | Minor | |
Status: | Closed | Last Modified: | 2015-01-26 16:39:15 | |
Resolution: | Fixed | Closed By: | dgp | |
Closed on: | 2015-01-26 16:39:15 | |||
Description: |
The signatures of those functions use "char *" resp. "const char *" in their signatures. However, keys in hash tables, can be anything, so using "char" here means that type casts are needed in many current code using hash tables. At first sight, this might seem a binary incompatible change to change this , because on some platforms "char *" does not have the same size as "void *". However, those 3 functions are in reality macros defined in tcl.h, which eventuall call functions whose signature is not changed. So: this change is 100% source and binary compatible! Here is the suggested patch. Because Tcl_(Create|Find)HashEntry is in the stub table, (but cannot actually be used, see Bug #3007895), this patch is better used in combination with #3007895. Otherwise people might wonder why the signatures of those stub table entries don't match the doc and the macros. | |||
User Comments: |
dgp added on 2015-01-26 16:39:15:
Just for the record, this caused some source incompat trouble with Itk 4 sources. Not difficult to resolve. dgp added on 2010-08-17 01:13:44: allow_comments - 1 Don't see any problem with this. Agree that as long as this is done, it's better to get 3007895 done too. nijtmans added on 2010-08-16 08:44:48: Don, does this mean you are evaluating this? Great! nijtmans added on 2010-08-15 03:59:43: signature change checked in HEAD nijtmans added on 2010-05-31 16:49:31: File Added - 375686: hash.patch |
Attachments:
- hash.patch [download] added by nijtmans on 2010-05-31 16:49:31. [details]