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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user