Changeset 19856 for S60/trunk/WebCore

Show
Ignore:
Timestamp:
02/26/07 12:49:18 (23 months ago)
Author:
brmorris
Message:

vbradley, reviewed by Zalan

DESC: [S60] MLIO-6YCACU: Browser freeze and panic in symbianoggplay.sourceforge.com
http://bugs.webkit.org/show_bug.cgi?id=12831

Location:
S60/trunk/WebCore
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • S60/trunk/WebCore/ChangeLog

    r19803 r19856  
    1 hongzhao, reviewed by Zalan, merged by mbradley++ 
    2  DESC: merge of r19802 to s60 trunk. Cache memory collector is not initialized in 3.2 HZHO-6YMQCK  
    3  Fix: Initialize the initial size of cache memory collector after create it. 
    4  http://bugs.webkit.org/show_bug.cgi?id=12844 
     1vbradley, reviewed by Zalan 
     2 DESC: [S60] MLIO-6YCACU: Browser freeze and panic in symbianoggplay.sourceforge.com 
     3 http://bugs.webkit.org/show_bug.cgi?id=12831 
     4 
     5        WARNING: NO TEST CASES ADDED OR CHANGED 
     6 
     7        * kwq/KWQPainter.cpp: 
     8        (RectPolygon::findCrossingEdge): 
     9 
    510 
    611        WARNING: NO TEST CASES ADDED OR CHANGED 
  • S60/trunk/WebCore/kwq/KWQPainter.cpp

    r17934 r19856  
    10851085    QPoint c1 = current.end(); 
    10861086    QValueListIterator<PolyRect> it; 
     1087    PolyRect* res = 0; 
     1088    QPoint saveCrossingPoint(1000000, 1000000); 
    10871089    for ( it = rects.begin(); it != rects.end() ; it++) { 
    10881090        if ((*it).rect == current.rect) 
     
    10921094        QPoint e1 = searchEdge.end(); 
    10931095        QPoint crossingPoint; 
    1094         if ( lineCrosses(c0,c1,e0,e1,crossingPoint) && crossingPoint!=e1 ){ 
    1095             crossingEdge = searchEdge; 
    1096             lastCrossing = crossingPoint; 
    1097             (*it).used = true; 
    1098             return true; 
     1096        if ( lineCrosses(c0,c1,e0,e1,crossingPoint) && crossingPoint!=e1 ) { 
     1097            if ( saveCrossingPoint.x() == 1000000 ||  
     1098                 current.direction == 0 && crossingPoint.x() < saveCrossingPoint.x() || 
     1099                 current.direction == 1 && crossingPoint.y() < saveCrossingPoint.y() || 
     1100                 current.direction == 2 && crossingPoint.x() > saveCrossingPoint.x() || 
     1101                 current.direction == 3 && crossingPoint.y() > saveCrossingPoint.y() ) { 
     1102                res = &(*it); 
     1103                saveCrossingPoint = crossingPoint; 
     1104                crossingEdge = searchEdge; 
     1105                lastCrossing = crossingPoint; 
     1106            } 
    10991107        } 
    11001108    } 
     1109    if (res) { 
     1110        res->used = true; 
     1111        return true; 
     1112        } 
    11011113    return false; 
    11021114}