(unnamed)

text/plain

Filename: (unnamed)
Type: text/plain
Part: 0
Message: Re: cvs head initdb hangs on unixware
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
  		{
  			/*