Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(146)

Unified Diff: core/src/fpdfdoc/doc_form.cpp

Issue 1711893003: Remove CFX_{Byte,Wide}String::ConvertFrom(). (Closed) Base URL: https://pdfium.googlesource.com/pdfium@master
Patch Set: address comments Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « core/src/fpdfdoc/doc_basic_unittest.cpp ('k') | core/src/fxcrt/fx_basic_bstring.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: core/src/fpdfdoc/doc_form.cpp
diff --git a/core/src/fpdfdoc/doc_form.cpp b/core/src/fpdfdoc/doc_form.cpp
index 460a44a7dffea28731e6dad33d3796e7f7429e46..9252e073e047c53ead4c333cbb9904cee2110fc7 100644
--- a/core/src/fpdfdoc/doc_form.cpp
+++ b/core/src/fpdfdoc/doc_form.cpp
@@ -8,8 +8,35 @@
#include "core/src/fpdfdoc/doc_utils.h"
#include "third_party/base/stl_util.h"
+namespace {
+
const int nMaxRecursion = 32;
+const struct SupportFieldEncoding {
+ const FX_CHAR* m_name;
+ FX_WORD m_codePage;
+} g_fieldEncoding[] = {
+ {"BigFive", 950},
+ {"GBK", 936},
+ {"Shift-JIS", 932},
+ {"UHC", 949},
+};
+
+CFX_WideString FPDFDOC_FDF_GetFieldValue(const CPDF_Dictionary& pFieldDict,
+ const CFX_ByteString& bsEncoding) {
+ const CFX_ByteString csBValue = pFieldDict.GetStringBy("V");
+ for (const auto& encoding : g_fieldEncoding) {
+ if (bsEncoding == encoding.m_name)
+ return CFX_WideString::FromCodePage(csBValue, encoding.m_codePage);
+ }
+ CFX_ByteString csTemp = csBValue.Left(2);
+ if (csTemp == "\xFF\xFE" || csTemp == "\xFE\xFF")
+ return PDF_DecodeText(csBValue);
+ return CFX_WideString::FromLocal(csBValue);
+}
+
+} // namespace
+
class CFieldNameExtractor {
public:
explicit CFieldNameExtractor(const CFX_WideString& full_name) {
@@ -1088,39 +1115,7 @@ CFDF_Document* CPDF_InterForm::ExportToFDF(
}
return pDoc;
}
-const struct _SupportFieldEncoding {
- const FX_CHAR* m_name;
- int32_t m_codePage;
-} g_fieldEncoding[] = {
- {"BigFive", 950},
- {"GBK", 936},
- {"Shift-JIS", 932},
- {"UHC", 949},
-};
-static void FPDFDOC_FDF_GetFieldValue(CPDF_Dictionary* pFieldDict,
- CFX_WideString& csValue,
- CFX_ByteString& bsEncoding) {
- CFX_ByteString csBValue = pFieldDict->GetStringBy("V");
- int32_t iCount = sizeof(g_fieldEncoding) / sizeof(g_fieldEncoding[0]);
- int32_t i = 0;
- for (; i < iCount; ++i)
- if (bsEncoding == g_fieldEncoding[i].m_name) {
- break;
- }
- if (i < iCount) {
- CFX_CharMap* pCharMap =
- CFX_CharMap::GetDefaultMapper(g_fieldEncoding[i].m_codePage);
- FXSYS_assert(pCharMap);
- csValue.ConvertFrom(csBValue, pCharMap);
- return;
- }
- CFX_ByteString csTemp = csBValue.Left(2);
- if (csTemp == "\xFF\xFE" || csTemp == "\xFE\xFF") {
- csValue = PDF_DecodeText(csBValue);
- } else {
- csValue = CFX_WideString::FromLocal(csBValue);
- }
-}
+
void CPDF_InterForm::FDF_ImportField(CPDF_Dictionary* pFieldDict,
const CFX_WideString& parent_name,
FX_BOOL bNotify,
@@ -1150,8 +1145,8 @@ void CPDF_InterForm::FDF_ImportField(CPDF_Dictionary* pFieldDict,
if (!pField) {
return;
}
- CFX_WideString csWValue;
- FPDFDOC_FDF_GetFieldValue(pFieldDict, csWValue, m_bsEncoding);
+ CFX_WideString csWValue =
+ FPDFDOC_FDF_GetFieldValue(*pFieldDict, m_bsEncoding);
int iType = pField->GetFieldType();
if (bNotify && m_pFormNotify) {
int iRet = 0;
« no previous file with comments | « core/src/fpdfdoc/doc_basic_unittest.cpp ('k') | core/src/fxcrt/fx_basic_bstring.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698