diff options
| author | sebres <sebres@users.sourceforge.net> | 2024-04-12 22:58:56 (GMT) |
|---|---|---|
| committer | sebres <sebres@users.sourceforge.net> | 2024-04-12 22:58:56 (GMT) |
| commit | 949672cd606685691ea107efd3e09825d3de8953 (patch) | |
| tree | 9375d113261b79f38921b1bab55299c57bccbefe /generic/tclHash.c | |
| parent | 95ba4d90b35db89ffba05ae1e25f9d1d03e7df55 (diff) | |
| parent | 05fad8df8972def0af73c6f528308220660ba67b (diff) | |
| download | tcl-949672cd606685691ea107efd3e09825d3de8953.zip tcl-949672cd606685691ea107efd3e09825d3de8953.tar.gz tcl-949672cd606685691ea107efd3e09825d3de8953.tar.bz2 | |
merge 8.5 (minor backport from my core) simple speed-up if searching for the key from hash itself (it is safe to compare needle with an address to key.string)
Diffstat (limited to 'generic/tclHash.c')
| -rw-r--r-- | generic/tclHash.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/generic/tclHash.c b/generic/tclHash.c index 83bc0fb..189748c 100644 --- a/generic/tclHash.c +++ b/generic/tclHash.c @@ -344,7 +344,10 @@ CreateHashEntry( continue; } #endif - 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; } |
