From f1251c1ff2b3452854681d0648b4c1ca4180ff0d Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Tue, 20 Oct 2015 16:24:45 -0400 Subject: [Merge to XFA] Revert "Revert "Add type cast definitions for CPDF_Dictionary."" This reverts commit 937840e1722d1f2b77d80575d6e710d760662c9c. Add type cast definitions for CPDF_Dictionary. This CL adds ToCPDFDictionary type definitions and updates one file to use instead of straight casts. I had to fix two places where we'd casted off the constness of the original pointer. BUG=pdfium:201 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1420583003 . (cherry picked from commit 39869b641511c882d78e17548293cdb458c36f38) Review URL: https://codereview.chromium.org/1410343003 . --- core/src/fpdftext/fpdf_text_int.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'core/src/fpdftext') diff --git a/core/src/fpdftext/fpdf_text_int.cpp b/core/src/fpdftext/fpdf_text_int.cpp index e427a1d2a8..152bb4448f 100644 --- a/core/src/fpdftext/fpdf_text_int.cpp +++ b/core/src/fpdftext/fpdf_text_int.cpp @@ -1339,7 +1339,7 @@ int32_t CPDF_TextPage::PreMarkedContent(PDFTEXT_Obj Obj) { for (n = 0; n < nContentMark; n++) { CPDF_ContentMarkItem& item = pMarkData->GetItem(n); CFX_ByteString tagStr = (CFX_ByteString)item.GetName(); - pDict = (CPDF_Dictionary*)item.GetParam(); + pDict = ToDictionary(static_cast(item.GetParam())); CPDF_String* temp = (CPDF_String*)(pDict ? pDict->GetElement(FX_BSTRC("ActualText")) : NULL); @@ -1410,8 +1410,12 @@ void CPDF_TextPage::ProcessMarkedContent(PDFTEXT_Obj Obj) { for (n = 0; n < nContentMark; n++) { 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")); + + pDict = ToDictionary(static_cast(item.GetParam())); + CPDF_String* temp = + (CPDF_String*)(pDict ? pDict->GetElement(FX_BSTRC("ActualText")) + : NULL); + if (temp) { actText = temp->GetUnicodeText(); } -- cgit v1.2.3