diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-08-26 22:47:05 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-08-26 22:47:05 (GMT) |
| commit | c1b4a8688f530f2fb6ab049c3304c1d11e385ebc (patch) | |
| tree | f07981157616618425e2ecc2f9ba8387f230325a /generic/tclHash.c | |
| parent | ce60b9f9bf7ea98961297c9757251a4abcdaa4de (diff) | |
| download | tcl-c1b4a8688f530f2fb6ab049c3304c1d11e385ebc.zip tcl-c1b4a8688f530f2fb6ab049c3304c1d11e385ebc.tar.gz tcl-c1b4a8688f530f2fb6ab049c3304c1d11e385ebc.tar.bz2 | |
Use TclOffset() in stead of magic calculations using sizeof(), which might give unexpected results when padding is involved
Diffstat (limited to 'generic/tclHash.c')
| -rw-r--r-- | generic/tclHash.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/generic/tclHash.c b/generic/tclHash.c index 5de8168..709831d 100644 --- a/generic/tclHash.c +++ b/generic/tclHash.c @@ -722,7 +722,7 @@ AllocArrayEntry( count = tablePtr->keyType; - size = sizeof(Tcl_HashEntry) + (count*sizeof(int)) - sizeof(hPtr->key); + size = TclOffset(Tcl_HashEntry, key) + count*sizeof(int); if (size < sizeof(Tcl_HashEntry)) { size = sizeof(Tcl_HashEntry); } @@ -839,7 +839,7 @@ AllocStringEntry( allocsize = sizeof(hPtr->key); } hPtr = ckalloc(TclOffset(Tcl_HashEntry, key) + allocsize); - memset(hPtr, 0, sizeof(Tcl_HashEntry) + allocsize - sizeof(hPtr->key)); + memset(hPtr, 0, TclOffset(Tcl_HashEntry, key) + allocsize); memcpy(hPtr->key.string, string, size); hPtr->clientData = 0; return hPtr; |
