Revert "Cleanup some numeric code."
[pdfium.git] / core / src / fpdftext / fpdf_text.cpp
index 52fcb5a..9ecbc21 100644 (file)
@@ -9,7 +9,7 @@
 #include "../../include/fpdfapi/fpdf_pageobj.h"
 #include "../../include/fpdfapi/fpdf_resource.h"
 #include "../../include/fpdftext/fpdf_text.h"
-#include "../../include/fxcrt/fx_arb.h"
+#include "../../include/fxcrt/fx_bidi.h"
 #include "../../include/fxcrt/fx_ucd.h"
 #include "text_int.h"
 #include "txtproc.h"
@@ -22,10 +22,7 @@ CFX_ByteString CharFromUnicodeAlt(FX_WCHAR unicode,
       return CFX_ByteString((char)unicode);
     }
     const FX_CHAR* altstr = FCS_GetAltStr(unicode);
-    if (altstr) {
-      return CFX_ByteString(altstr, -1);
-    }
-    return CFX_ByteString(defchar, -1);
+    return CFX_ByteString(altstr ? altstr : defchar);
   }
   char buf[10];
   int iDef = 0;
@@ -35,10 +32,7 @@ CFX_ByteString CharFromUnicodeAlt(FX_WCHAR unicode,
     return CFX_ByteString(buf, ret);
   }
   const FX_CHAR* altstr = FCS_GetAltStr(unicode);
-  if (altstr) {
-    return CFX_ByteString(altstr, -1);
-  }
-  return CFX_ByteString(defchar, -1);
+  return CFX_ByteString(altstr ? altstr : defchar);
 }
 CTextPage::CTextPage() {}
 CTextPage::~CTextPage() {
@@ -104,9 +98,7 @@ void CTextPage::ProcessObject(CPDF_PageObject* pObject) {
       InsertTextBox(NULL, char_origy, char_left, char_right, char_top,
                     char_bottom, spacew, fontsize_v, str, pFont);
     }
-    if (pPosArray) {
-      FX_Free(pPosArray);
-    }
+    FX_Free(pPosArray);
     return;
   }
   FX_FLOAT ratio_h = fontsize_h / pText->m_TextState.GetFontSize();
@@ -323,35 +315,35 @@ void NormalizeString(CFX_WideString& str) {
     return;
   }
   CFX_WideString sBuffer;
-  nonstd::unique_ptr<IFX_BidiChar> pBidiChar(IFX_BidiChar::Create());
+  nonstd::unique_ptr<CFX_BidiChar> pBidiChar(new CFX_BidiChar);
   CFX_WordArray order;
   FX_BOOL bR2L = FALSE;
   int32_t start = 0, count = 0, i = 0;
   int nR2L = 0, nL2R = 0;
   for (i = 0; i < str.GetLength(); i++) {
     if (pBidiChar->AppendChar(str.GetAt(i))) {
-      int32_t ret = pBidiChar->GetBidiInfo(start, count);
+      CFX_BidiChar::Direction ret = pBidiChar->GetBidiInfo(&start, &count);
       order.Add(start);
       order.Add(count);
       order.Add(ret);
       if (!bR2L) {
-        if (ret == 2) {
+        if (ret == CFX_BidiChar::RIGHT) {
           nR2L++;
-        } else if (ret == 1) {
+        } else if (ret == CFX_BidiChar::LEFT) {
           nL2R++;
         }
       }
     }
   }
   if (pBidiChar->EndChar()) {
-    int32_t ret = pBidiChar->GetBidiInfo(start, count);
+    CFX_BidiChar::Direction ret = pBidiChar->GetBidiInfo(&start, &count);
     order.Add(start);
     order.Add(count);
     order.Add(ret);
     if (!bR2L) {
-      if (ret == 2) {
+      if (ret == CFX_BidiChar::RIGHT) {
         nR2L++;
-      } else if (ret == 1) {
+      } else if (ret == CFX_BidiChar::LEFT) {
         nL2R++;
       }
     }
@@ -785,10 +777,6 @@ void PDF_GetPageText(CFX_ByteStringArray& lines,
     lines.Add(str);
   }
 }
-extern void _PDF_GetTextStream_Unicode(CFX_WideTextBuf& buffer,
-                                       CPDF_PageObjects* pPage,
-                                       FX_BOOL bUseLF,
-                                       CFX_PtrArray* pObjArray);
 void PDF_GetTextStream_Unicode(CFX_WideTextBuf& buffer,
                                CPDF_Document* pDoc,
                                CPDF_Dictionary* pPage,
@@ -800,5 +788,5 @@ void PDF_GetTextStream_Unicode(CFX_WideTextBuf& buffer,
   options.m_bTextOnly = TRUE;
   options.m_bSeparateForm = FALSE;
   page.ParseContent(&options);
-  _PDF_GetTextStream_Unicode(buffer, &page, TRUE, NULL);
+  GetTextStream_Unicode(buffer, &page, TRUE, NULL);
 }