diff options
author | Tom Yu <tlyu@mit.edu> | 2002-08-28 06:34:05 +0000 |
---|---|---|
committer | Tom Yu <tlyu@mit.edu> | 2002-08-28 06:34:05 +0000 |
commit | e4ebca8203e95550a9a084b0255f3eda471718dc (patch) | |
tree | 22b7fbb4c6ba1a097395143a3ea1d6d45ed6f462 /src/util | |
parent | 375af1e21d44baae4334e992fb56867696164103 (diff) | |
download | krb5-e4ebca8203e95550a9a084b0255f3eda471718dc.tar.gz krb5-e4ebca8203e95550a9a084b0255f3eda471718dc.tar.xz krb5-e4ebca8203e95550a9a084b0255f3eda471718dc.zip |
* btree/bt_split.c (bt_psplit): Correctly account for
sizeof(indx_t) when computing space used in a page by an item.
[patch from www.sleepycat.com]
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@14780 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/db2/ChangeLog | 6 | ||||
-rw-r--r-- | src/util/db2/btree/bt_split.c | 5 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/util/db2/ChangeLog b/src/util/db2/ChangeLog index dc6eff0a5..9c04afed2 100644 --- a/src/util/db2/ChangeLog +++ b/src/util/db2/ChangeLog @@ -1,3 +1,9 @@ +2002-08-28 Tom Yu <tlyu@mit.edu> + + * btree/bt_split.c (bt_psplit): Correctly account for + sizeof(indx_t) when computing space used in a page by an item. + [patch from www.sleepycat.com] + 2002-08-23 Ken Raeburn <raeburn@mit.edu> * Makefile.in, btree/Makefile.in, clib/Makefile.in, diff --git a/src/util/db2/btree/bt_split.c b/src/util/db2/btree/bt_split.c index c6319b55f..0cc6cf09b 100644 --- a/src/util/db2/btree/bt_split.c +++ b/src/util/db2/btree/bt_split.c @@ -673,7 +673,8 @@ bt_psplit(t, h, l, r, pskip, ilen) * where we decide to try and copy too much onto the left page. * Make sure that doesn't happen. */ - if ((skip <= off && used + nbytes >= full) || nxt == top - 1) { + if ((skip <= off && used + nbytes + sizeof(indx_t) >= full) + || nxt == top - 1) { --off; break; } @@ -686,7 +687,7 @@ bt_psplit(t, h, l, r, pskip, ilen) memmove((char *)l + l->upper, src, nbytes); } - used += nbytes; + used += nbytes + sizeof(indx_t); if (used >= half) { if (!isbigkey || bigkeycnt == 3) break; |