diff options
| author | sebres <sebres@users.sourceforge.net> | 2024-04-12 23:03:19 (GMT) |
|---|---|---|
| committer | sebres <sebres@users.sourceforge.net> | 2024-04-12 23:03:19 (GMT) |
| commit | fc1d78b041e73c4fef5326e5794ff43f4993c13c (patch) | |
| tree | 31294289f4cde21d71fbc088eb1811cb7707117b /generic/tclHash.c | |
| parent | 6508b65399000d941e47f1f1c50ce1359b1621d5 (diff) | |
| parent | ae0d35c2744747f5e538c9aa52e21289b7eccfc1 (diff) | |
| download | tcl-fc1d78b041e73c4fef5326e5794ff43f4993c13c.zip tcl-fc1d78b041e73c4fef5326e5794ff43f4993c13c.tar.gz tcl-fc1d78b041e73c4fef5326e5794ff43f4993c13c.tar.bz2 | |
merge 8.6
Diffstat (limited to 'generic/tclHash.c')
| -rw-r--r-- | generic/tclHash.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/generic/tclHash.c b/generic/tclHash.c index 742691c..c72dc6d 100644 --- a/generic/tclHash.c +++ b/generic/tclHash.c @@ -320,13 +320,16 @@ CreateHashEntry( return hPtr; } } - } else { /* no direct compare */ + } else { /* no direct compare - compare key addresses only */ for (hPtr = tablePtr->buckets[index]; hPtr != NULL; hPtr = hPtr->nextPtr) { if (hash != PTR2UINT(hPtr->hash)) { continue; } - if (compareKeysProc((void *) key, hPtr)) { + /* if needle pointer equals content pointer or values equal */ + if ((key == hPtr->key.string) + || compareKeysProc((void *) key, hPtr) + ) { if (newPtr) { *newPtr = 0; } |
