@@ -876,7 +876,7 @@ dataPlaceToPage(RumBtree btree, Page page, OffsetNumber off)
876876if (ptr - RumDataPageGetData(page) > \
877877totalsize / 2 && page == newlPage) \
878878{ \
879- maxLeftIptr =item.iptr; \
879+ maxLeftIptr =curIptr; \
880880ItemPointerSetMin(&prevIptr); \
881881RumPageGetOpaque(newlPage)->maxoff = j; \
882882page = rPage; \
@@ -909,7 +909,7 @@ dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf,
909909Page newlPage = PageGetTempPageCopy (lPage );
910910Size pageSize = PageGetPageSize (newlPage );
911911Size maxItemSize = 0 ;
912- ItemPointerData prevIptr ,maxLeftIptr ;
912+ ItemPointerData prevIptr ,maxLeftIptr , curIptr ;
913913RumKey item ;
914914int totalCount = 0 ;
915915int maxItemIndex = btree -> curitem ;
@@ -1017,6 +1017,7 @@ dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf,
10171017{
10181018while (btree -> curitem < maxItemIndex )
10191019{
1020+ curIptr = btree -> items [btree -> curitem ].iptr ;
10201021ptr = rumPlaceToDataPageLeaf (ptr ,btree -> entryAttnum ,
10211022& btree -> items [btree -> curitem ],
10221023& prevIptr ,btree -> rumstate );
@@ -1033,6 +1034,7 @@ dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf,
10331034copyPtr = rumDataPageLeafRead (copyPtr ,btree -> entryAttnum ,& item ,
10341035btree -> rumstate );
10351036
1037+ curIptr = item .iptr ;
10361038ptr = rumPlaceToDataPageLeaf (ptr ,btree -> entryAttnum ,& item ,
10371039& prevIptr ,btree -> rumstate );
10381040freespace = RumDataPageFreeSpacePre (page ,ptr );
@@ -1047,6 +1049,7 @@ dataSplitPageLeaf(RumBtree btree, Buffer lbuf, Buffer rbuf,
10471049{
10481050while (btree -> curitem < maxItemIndex )
10491051{
1052+ curIptr = btree -> items [btree -> curitem ].iptr ;
10501053ptr = rumPlaceToDataPageLeaf (ptr ,btree -> entryAttnum ,
10511054& btree -> items [btree -> curitem ],& prevIptr ,btree -> rumstate );
10521055freespace = RumDataPageFreeSpacePre (page ,ptr );