Bug 345588. Fix string length calculation when partitioning strings. r+sr=dbaron

git-svn-id: svn://10.0.0.236/trunk@206755 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
roc+%cs.cmu.edu
2006-08-07 21:57:12 +00:00
parent 1629b6ff97
commit 18acc00335

View File

@@ -702,9 +702,15 @@ nsRenderingContextImpl::GetTextDimensions(const char* aString,
for (wordCount = 0; wordCount < aNumBreaks; ++wordCount) {
PRInt32 lastBreak = wordCount > 0 ? aBreaks[wordCount - 1] : 0;
nsTextDimensions dimensions;
// Call safe method
nsresult rv = GetTextDimensions(aString + lastBreak, aBreaks[wordCount],
dimensions);
NS_ASSERTION(aBreaks[wordCount] > lastBreak, "Breaks must be monotonically increasing");
NS_ASSERTION(aBreaks[wordCount] <= aLength, "Breaks can't exceed string length");
// Call safe method
nsresult rv =
GetTextDimensions(aString + lastBreak, aBreaks[wordCount] - lastBreak,
dimensions);
if (NS_FAILED(rv))
return rv;
x += dimensions.width;
@@ -751,10 +757,15 @@ nsRenderingContextImpl::GetTextDimensions(const PRUnichar* aString,
PRInt32 wordCount;
for (wordCount = 0; wordCount < aNumBreaks; ++wordCount) {
PRInt32 lastBreak = wordCount > 0 ? aBreaks[wordCount - 1] : 0;
NS_ASSERTION(aBreaks[wordCount] > lastBreak, "Breaks must be monotonically increasing");
NS_ASSERTION(aBreaks[wordCount] <= aLength, "Breaks can't exceed string length");
nsTextDimensions dimensions;
// Call safe method
nsresult rv = GetTextDimensions(aString + lastBreak, aBreaks[wordCount],
dimensions);
nsresult rv =
GetTextDimensions(aString + lastBreak, aBreaks[wordCount] - lastBreak,
dimensions);
if (NS_FAILED(rv))
return rv;
x += dimensions.width;