diff options
author | dgp <dgp@users.sourceforge.net> | 2017-09-23 20:10:30 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2017-09-23 20:10:30 (GMT) |
commit | eda3f844ea66c5ae31b744b99ad7b470514b0e35 (patch) | |
tree | dbc04196789c81e40d1ddcb0bbd526ebb550befb /generic/tclHAMT.c | |
parent | b3262959312ae6db8aa639dcb6e41eefd75d52e9 (diff) | |
download | tcl-eda3f844ea66c5ae31b744b99ad7b470514b0e35.zip tcl-eda3f844ea66c5ae31b744b99ad7b470514b0e35.tar.gz tcl-eda3f844ea66c5ae31b744b99ad7b470514b0e35.tar.bz2 |
more bug fixes
Diffstat (limited to 'generic/tclHAMT.c')
-rw-r--r-- | generic/tclHAMT.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/generic/tclHAMT.c b/generic/tclHAMT.c index d57284f..9744328 100644 --- a/generic/tclHAMT.c +++ b/generic/tclHAMT.c @@ -621,7 +621,7 @@ ClientData AMFetch( return NULL; } - tally = 1 << ((hash >> LSB(am->mask + 1)) & branchMask); + tally = (size_t)1 << ((hash >> LSB(am->mask + 1)) & branchMask); if (tally & am->kvMap) { KVList l; @@ -697,7 +697,7 @@ ArrayMap AMInsert( numList = NumBits(am->kvMap); numSubnode = NumBits(am->amMap); - tally = 1 << ((hash >> LSB(am->mask + 1)) & branchMask); + tally = (size_t)1 << ((hash >> LSB(am->mask + 1)) & branchMask); if (tally & am->kvMap) { /* Hash is consistent with one of our KVList children... */ @@ -886,7 +886,7 @@ ArrayMap AMInsert( *dst = KVLInsert(NULL, kt, key, vt, value, valuePtr); KVLClaim(*dst); dst++; - for (i = loffset + 1; i < numList; i++) { + for (i = loffset; i < numList; i++) { KVLClaim((KVList) *src); *dst++ = *src++; } @@ -897,7 +897,7 @@ ArrayMap AMInsert( *dst++ = *src++; } - return NULL; + return new; } /* @@ -954,7 +954,7 @@ ArrayMap AMRemove( numList = NumBits(am->kvMap); numSubnode = NumBits(am->amMap); - tally = 1 << ((hash >> LSB(am->mask + 1)) & branchMask); + tally = (size_t)1 << ((hash >> LSB(am->mask + 1)) & branchMask); if (tally & am->kvMap) { /* Hash is consistent with one of our KVList children... */ |