Tcl Source Code

View Ticket
Login
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: