| Index: core/src/fpdftext/fpdf_text_int.cpp
|
| diff --git a/core/src/fpdftext/fpdf_text_int.cpp b/core/src/fpdftext/fpdf_text_int.cpp
|
| index 5b174f0187bf523fe77675d86854f0856b4e25ae..42bbffa52ee8ff6bebe71f7ed7577ec266a579b9 100644
|
| --- a/core/src/fpdftext/fpdf_text_int.cpp
|
| +++ b/core/src/fpdftext/fpdf_text_int.cpp
|
| @@ -1499,7 +1499,7 @@ void CPDF_TextPage::ProcessMarkedContent(PDFTEXT_Obj Obj)
|
| CPDF_ContentMarkItem& item = pMarkData->GetItem(n);
|
| CFX_ByteString tagStr = (CFX_ByteString)item.GetName();
|
| pDict = (CPDF_Dictionary*)item.GetParam();
|
| - CPDF_String* temp = (CPDF_String*)pDict->GetElement(FX_BSTRC("ActualText"));
|
| + CPDF_String* temp = (CPDF_String*)(pDict ? pDict->GetElement(FX_BSTRC("ActualText")) : NULL);
|
| if (temp) {
|
| actText = temp->GetUnicodeText();
|
| }
|
| @@ -1875,30 +1875,30 @@ void CPDF_TextPage::ProcessTextObject(PDFTEXT_Obj Obj)
|
| }
|
| }
|
| }
|
| - if (bIsBidiAndMirrosInverse) {
|
| - FX_INT32 i, j;
|
| - i = iCharListStartAppend;
|
| - j = m_TempCharList.GetSize() - 1;
|
| - PAGECHAR_INFO tempCharInfo;
|
| - FX_INT32 tempIndex = 0;
|
| - for (; i < j; i++, j--) {
|
| - tempCharInfo = m_TempCharList[i];
|
| - m_TempCharList[i] = m_TempCharList[j];
|
| - m_TempCharList[j] = tempCharInfo;
|
| - tempIndex = m_TempCharList[i].m_Index;
|
| - m_TempCharList[i].m_Index = m_TempCharList[j].m_Index;
|
| - m_TempCharList[j].m_Index = tempIndex;
|
| - }
|
| - FX_WCHAR * pTempBuffer = m_TempTextBuf.GetBuffer();
|
| - i = iBufStartAppend;
|
| - j = m_TempTextBuf.GetLength() - 1;
|
| - FX_WCHAR wTemp;
|
| - for (; i < j; i++, j--) {
|
| - wTemp = pTempBuffer[i];
|
| - pTempBuffer[i] = pTempBuffer[j];
|
| - pTempBuffer[j] = wTemp;
|
| - }
|
| - }
|
| + if (bIsBidiAndMirrosInverse) {
|
| + FX_INT32 i, j;
|
| + i = iCharListStartAppend;
|
| + j = m_TempCharList.GetSize() - 1;
|
| + PAGECHAR_INFO tempCharInfo;
|
| + FX_INT32 tempIndex = 0;
|
| + for (; i < j; i++, j--) {
|
| + tempCharInfo = m_TempCharList[i];
|
| + m_TempCharList[i] = m_TempCharList[j];
|
| + m_TempCharList[j] = tempCharInfo;
|
| + tempIndex = m_TempCharList[i].m_Index;
|
| + m_TempCharList[i].m_Index = m_TempCharList[j].m_Index;
|
| + m_TempCharList[j].m_Index = tempIndex;
|
| + }
|
| + FX_WCHAR * pTempBuffer = m_TempTextBuf.GetBuffer();
|
| + i = iBufStartAppend;
|
| + j = m_TempTextBuf.GetLength() - 1;
|
| + FX_WCHAR wTemp;
|
| + for (; i < j; i++, j--) {
|
| + wTemp = pTempBuffer[i];
|
| + pTempBuffer[i] = pTempBuffer[j];
|
| + pTempBuffer[j] = wTemp;
|
| + }
|
| + }
|
| }
|
| FX_INT32 CPDF_TextPage::GetTextObjectWritingMode(const CPDF_TextObject* pTextObj)
|
| {
|
|
|