summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2017-09-23 20:10:30 (GMT)
committerdgp <dgp@users.sourceforge.net>2017-09-23 20:10:30 (GMT)
commiteda3f844ea66c5ae31b744b99ad7b470514b0e35 (patch)
treedbc04196789c81e40d1ddcb0bbd526ebb550befb
parentb3262959312ae6db8aa639dcb6e41eefd75d52e9 (diff)
downloadtcl-eda3f844ea66c5ae31b744b99ad7b470514b0e35.zip
tcl-eda3f844ea66c5ae31b744b99ad7b470514b0e35.tar.gz
tcl-eda3f844ea66c5ae31b744b99ad7b470514b0e35.tar.bz2
more bug fixes
-rw-r--r--generic/tclHAMT.c10
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... */