Index: core/src/fpdftext/fpdf_text_search.cpp |
diff --git a/core/src/fpdftext/fpdf_text_search.cpp b/core/src/fpdftext/fpdf_text_search.cpp |
index b77f9428cb1f0729bf0fec4211fa8e5bd22d9fc1..5bbfbd91983e220542800f77ca091cc5b6daa11f 100644 |
--- a/core/src/fpdftext/fpdf_text_search.cpp |
+++ b/core/src/fpdftext/fpdf_text_search.cpp |
@@ -6,28 +6,19 @@ |
#include "core/include/fpdfapi/fpdf_page.h" |
#include "core/include/fpdfapi/fpdf_pageobj.h" |
-#include "text_int.h" |
+#include "core/src/fpdftext/text_int.h" |
class CPDF_TextStream { |
public: |
- CPDF_TextStream(CFX_WideTextBuf& buffer, |
- FX_BOOL bUseLF, |
- CFX_PtrArray* pObjArray); |
+ CPDF_TextStream(CFX_WideTextBuf& buffer, FX_BOOL bUseLF) |
+ : m_Buffer(buffer), m_bUseLF(bUseLF), m_pLastObj(nullptr) {} |
~CPDF_TextStream() {} |
FX_BOOL ProcessObject(const CPDF_TextObject* pObj, FX_BOOL bFirstLine); |
+ |
CFX_WideTextBuf& m_Buffer; |
FX_BOOL m_bUseLF; |
- CFX_PtrArray* m_pObjArray; |
const CPDF_TextObject* m_pLastObj; |
}; |
-CPDF_TextStream::CPDF_TextStream(CFX_WideTextBuf& buffer, |
- FX_BOOL bUseLF, |
- CFX_PtrArray* pObjArray) |
- : m_Buffer(buffer) { |
- m_pLastObj = NULL; |
- m_bUseLF = bUseLF; |
- m_pObjArray = pObjArray; |
-} |
FX_BOOL FPDFText_IsSameTextObject(const CPDF_TextObject* pTextObj1, |
const CPDF_TextObject* pTextObj2) { |
if (!pTextObj1 || !pTextObj2) { |
@@ -160,9 +151,6 @@ FX_BOOL CPDF_TextStream::ProcessObject(const CPDF_TextObject* pObj, |
int len = m_Buffer.GetLength(); |
if (len && m_bUseLF && m_Buffer.GetBuffer()[len - 1] == L'-') { |
m_Buffer.Delete(len - 1, 1); |
- if (m_pObjArray) { |
- m_pObjArray->RemoveAt((len - 1) * 2, 2); |
- } |
} else { |
if (bFirstLine) { |
return TRUE; |
@@ -170,25 +158,12 @@ FX_BOOL CPDF_TextStream::ProcessObject(const CPDF_TextObject* pObj, |
if (m_bUseLF) { |
m_Buffer.AppendChar(L'\r'); |
m_Buffer.AppendChar(L'\n'); |
- if (m_pObjArray) { |
- for (int i = 0; i < 4; i++) { |
- m_pObjArray->Add(NULL); |
- } |
- } |
} else { |
m_Buffer.AppendChar(' '); |
- if (m_pObjArray) { |
- m_pObjArray->Add(NULL); |
- m_pObjArray->Add(NULL); |
- } |
} |
} |
} else if (result == 1) { |
m_Buffer.AppendChar(L' '); |
- if (m_pObjArray) { |
- m_pObjArray->Add(NULL); |
- m_pObjArray->Add(NULL); |
- } |
} else if (result == -1) { |
m_pLastObj = pObj; |
return FALSE; |
@@ -266,10 +241,6 @@ FX_BOOL CPDF_TextStream::ProcessObject(const CPDF_TextObject* pObj, |
} |
if (threshold && (spacing && spacing >= threshold)) { |
m_Buffer.AppendChar(L' '); |
- if (m_pObjArray) { |
- m_pObjArray->Add(NULL); |
- m_pObjArray->Add(NULL); |
- } |
} |
if (item.m_CharCode == (FX_DWORD)-1) { |
continue; |
@@ -279,27 +250,16 @@ FX_BOOL CPDF_TextStream::ProcessObject(const CPDF_TextObject* pObj, |
CFX_WideString unicode_str = pFont->UnicodeFromCharCode(item.m_CharCode); |
if (unicode_str.IsEmpty()) { |
m_Buffer.AppendChar((FX_WCHAR)item.m_CharCode); |
- if (m_pObjArray) { |
- m_pObjArray->Add((void*)pObj); |
- m_pObjArray->Add((void*)(intptr_t)item_index); |
- } |
} else { |
m_Buffer << unicode_str; |
- if (m_pObjArray) { |
- for (int i = 0; i < unicode_str.GetLength(); i++) { |
- m_pObjArray->Add((void*)pObj); |
- m_pObjArray->Add((void*)(intptr_t)item_index); |
- } |
- } |
} |
} |
return FALSE; |
} |
void GetTextStream_Unicode(CFX_WideTextBuf& buffer, |
CPDF_PageObjectList* pPage, |
- FX_BOOL bUseLF, |
- CFX_PtrArray* pObjArray) { |
- CPDF_TextStream textstream(buffer, bUseLF, pObjArray); |
+ FX_BOOL bUseLF) { |
+ CPDF_TextStream textstream(buffer, bUseLF); |
FX_POSITION pos = pPage->GetFirstObjectPosition(); |
while (pos) { |
CPDF_PageObject* pObject = pPage->GetNextObject(pos); |
@@ -317,7 +277,7 @@ CFX_WideString PDF_GetFirstTextLine_Unicode(CPDF_Document* pDoc, |
options.m_bTextOnly = TRUE; |
options.m_bSeparateForm = FALSE; |
page.ParseContent(&options); |
- CPDF_TextStream textstream(buffer, FALSE, NULL); |
+ CPDF_TextStream textstream(buffer, FALSE); |
FX_POSITION pos = page.GetFirstObjectPosition(); |
while (pos) { |
CPDF_PageObject* pObject = page.GetNextObject(pos); |