@@ -1610,7 +1610,7 @@ static void divide_geom_box_tree(geom_box_tree t)
16101610{
16111611 int division_nobjects [3 ][2 ] = {{0 ,0 },{0 ,0 },{0 ,0 }};
16121612 number division_point [3 ];
1613- int best = 0 ;
1613+ int best = -1 ;
16141614 int i , j , n1 , n2 ;
16151615
16161616 if (!t )
@@ -1632,17 +1632,17 @@ static void divide_geom_box_tree(geom_box_tree t)
16321632 find_best_partition (t -> nobjects , t -> objects , i , & division_point [i ],
16331633 & division_nobjects [i ][0 ],
16341634 & division_nobjects [i ][1 ]);
1635- if (MAX (division_nobjects [i ][0 ], division_nobjects [i ][1 ]) <
1635+ if (best < 0 ||
1636+ MAX (division_nobjects [i ][0 ], division_nobjects [i ][1 ]) <
16361637 MAX (division_nobjects [best ][0 ], division_nobjects [best ][1 ]))
16371638 best = i ;
16381639 }
16391640
16401641 /* don't do anything if division makes the worst case worse or if
16411642 it fails to improve the best case: */
1642- if (MAX (division_nobjects [best ][0 ], division_nobjects [best ][1 ]) + 1 >
1643- t -> nobjects ||
1644- MIN (division_nobjects [best ][0 ], division_nobjects [best ][1 ]) + 1 >=
1645- t -> nobjects )
1643+ if (best < 0 ||
1644+ MAX (division_nobjects [best ][0 ], division_nobjects [best ][1 ]) + 1 > t -> nobjects ||
1645+ MIN (division_nobjects [best ][0 ], division_nobjects [best ][1 ]) + 1 >= t -> nobjects )
16461646 return ; /* division didn't help us */
16471647
16481648 divide_geom_box (& t -> b , best , division_point [best ], & t -> b1 , & t -> b2 );
0 commit comments