Fossil SCM

Fix a potential infinite loop in the graph generator for overly-complex change graphs.

drh 2011-02-07 18:21 trunk
Commit 838283273ac6323706c331e08f7ac4b97988b139
1 file changed +3 -1
+3 -1
--- src/graph.c
+++ src/graph.c
@@ -459,8 +459,10 @@
459459
*/
460460
p->mxRail = 0;
461461
for(pRow=p->pFirst; pRow; pRow=pRow->pNext){
462462
if( pRow->iRail>p->mxRail ) p->mxRail = pRow->iRail;
463463
if( pRow->mergeOut>p->mxRail ) p->mxRail = pRow->mergeOut;
464
- while( pRow->mergeDown>((1<<(p->mxRail+1))-1) ) p->mxRail++;
464
+ while( p->mxRail<GR_MAX_RAIL && pRow->mergeDown>((1<<(p->mxRail+1))-1) ){
465
+ p->mxRail++;
466
+ }
465467
}
466468
}
467469
--- src/graph.c
+++ src/graph.c
@@ -459,8 +459,10 @@
459 */
460 p->mxRail = 0;
461 for(pRow=p->pFirst; pRow; pRow=pRow->pNext){
462 if( pRow->iRail>p->mxRail ) p->mxRail = pRow->iRail;
463 if( pRow->mergeOut>p->mxRail ) p->mxRail = pRow->mergeOut;
464 while( pRow->mergeDown>((1<<(p->mxRail+1))-1) ) p->mxRail++;
 
 
465 }
466 }
467
--- src/graph.c
+++ src/graph.c
@@ -459,8 +459,10 @@
459 */
460 p->mxRail = 0;
461 for(pRow=p->pFirst; pRow; pRow=pRow->pNext){
462 if( pRow->iRail>p->mxRail ) p->mxRail = pRow->iRail;
463 if( pRow->mergeOut>p->mxRail ) p->mxRail = pRow->mergeOut;
464 while( p->mxRail<GR_MAX_RAIL && pRow->mergeDown>((1<<(p->mxRail+1))-1) ){
465 p->mxRail++;
466 }
467 }
468 }
469

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button