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); |
} |
} |