| Index: core/fpdfapi/fpdf_page/cpdf_textobject.cpp
|
| diff --git a/core/fpdfapi/fpdf_page/cpdf_textobject.cpp b/core/fpdfapi/fpdf_page/cpdf_textobject.cpp
|
| index 444101fb9e0b373137a00816b0964a203b68981c..a3fbbad8b0011d2860e05f430df54e7bfb1fc342 100644
|
| --- a/core/fpdfapi/fpdf_page/cpdf_textobject.cpp
|
| +++ b/core/fpdfapi/fpdf_page/cpdf_textobject.cpp
|
| @@ -142,7 +142,7 @@ void CPDF_TextObject::SetSegments(const CFX_ByteString* pStrs,
|
| CPDF_Font* pFont = m_TextState.GetFont();
|
| m_nChars = 0;
|
| for (int i = 0; i < nsegs; ++i) {
|
| - m_nChars += pFont->CountChar(pStrs[i], pStrs[i].GetLength());
|
| + m_nChars += pFont->CountChar(pStrs[i].c_str(), pStrs[i].GetLength());
|
| }
|
| m_nChars += nsegs - 1;
|
| if (m_nChars > 1) {
|
| @@ -150,8 +150,9 @@ void CPDF_TextObject::SetSegments(const CFX_ByteString* pStrs,
|
| m_pCharPos = FX_Alloc(FX_FLOAT, m_nChars - 1);
|
| int index = 0;
|
| for (int i = 0; i < nsegs; ++i) {
|
| - const FX_CHAR* segment = pStrs[i];
|
| - int offset = 0, len = pStrs[i].GetLength();
|
| + const FX_CHAR* segment = pStrs[i].c_str();
|
| + int len = pStrs[i].GetLength();
|
| + int offset = 0;
|
| while (offset < len) {
|
| m_pCharCodes[index++] = pFont->GetNextChar(segment, len, offset);
|
| }
|
| @@ -163,7 +164,7 @@ void CPDF_TextObject::SetSegments(const CFX_ByteString* pStrs,
|
| } else {
|
| int offset = 0;
|
| m_pCharCodes = (uint32_t*)(uintptr_t)pFont->GetNextChar(
|
| - pStrs[0], pStrs[0].GetLength(), offset);
|
| + pStrs[0].c_str(), pStrs[0].GetLength(), offset);
|
| }
|
| }
|
|
|
|
|