Index: fsmpage.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/storage/freespace/fsmpage.c,v retrieving revision 1.2 diff -c -r1.2 fsmpage.c *** fsmpage.c 7 Oct 2008 21:10:11 -0000 1.2 --- fsmpage.c 9 Dec 2008 18:18:53 -0000 *************** *** 243,259 **** */ while (nodeno < NonLeafNodesPerPage) { ! int leftnodeno = leftchild(nodeno); ! int rightnodeno = leftnodeno + 1; ! bool leftok = (leftnodeno < NodesPerPage) && ! (fsmpage->fp_nodes[leftnodeno] >= minvalue); ! bool rightok = (rightnodeno < NodesPerPage) && ! (fsmpage->fp_nodes[rightnodeno] >= minvalue); ! ! if (leftok) ! nodeno = leftnodeno; ! else if (rightok) ! nodeno = rightnodeno; else { /* --- 243,262 ---- */ while (nodeno < NonLeafNodesPerPage) { ! int childnodeno = leftchild(nodeno); ! ! if (childnodeno < NodesPerPage && ! fsmpage->fp_nodes[childnodeno] >= minvalue) ! { ! nodeno = childnodeno; ! continue; ! } ! childnodeno++; /* point to right child */ ! if (childnodeno < NodesPerPage && ! fsmpage->fp_nodes[childnodeno] >= minvalue) ! { ! nodeno = childnodeno; ! } else { /*