diff -pruN -x '.moz*' -x .deps -x 'thunderbird*' -x '*.mk' -x 'config*' -x dist -x build -x toolkit -x '*o' -x '*a' -x '*html' mozilla.orig/layout/generic/nsTextFrame.cpp mozilla/layout/generic/nsTextFrame.cpp --- mozilla.orig/layout/generic/nsTextFrame.cpp 2006-12-20 12:53:26.000000000 +0900 +++ mozilla/layout/generic/nsTextFrame.cpp 2006-12-20 15:43:14.000000000 +0900 @@ -2097,11 +2097,11 @@ nsTextFrame::PaintTextDecorations(nsIRen nsRect rect = GetRect(); while(aDetails){ const nscoord* sp= aSpacing; - PRInt32 startOffset = 0; - PRInt32 textWidth = 0; - PRInt32 start = PR_MAX(0,(aDetails->mStart - (PRInt32)aIndex)); - PRInt32 end = PR_MIN((PRInt32)aLength,(aDetails->mEnd - (PRInt32)aIndex)); - PRInt32 i; + PRUint32 startOffset = 0; + PRUint32 textWidth = 0; + PRInt32 start = PR_MAX(0,(aDetails->mStart - (PRInt32)aIndex)); + PRInt32 end = PR_MIN((PRInt32)aLength,(aDetails->mEnd - (PRInt32)aIndex)); + PRInt32 i; if ((start < end) && ((aLength - start) > 0)) { //aDetails allready processed to have offsets from frame start not content offsets @@ -2117,7 +2117,7 @@ nsTextFrame::PaintTextDecorations(nsIRen } } else - aRenderingContext.GetWidth(aText, start, startOffset); + aRenderingContext.GetRangeWidth(aText, aLength, 0, start, startOffset); } if (sp){ for (i = start; i < end;i ++){ @@ -2125,8 +2125,7 @@ nsTextFrame::PaintTextDecorations(nsIRen } } else - aRenderingContext.GetWidth(aText + start, - PRUint32(end - start), textWidth); + aRenderingContext.GetRangeWidth(aText, aLength, start, end, textWidth); } nscoord offset, size;