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

Unified Diff: xfa/fxfa/parser/xfa_localevalue.cpp

Issue 2557173002: Remove CFX_FormatString::Release() (Closed)
Patch Set: Created 4 years 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 | « xfa/fgas/localization/fgas_localeimp.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: xfa/fxfa/parser/xfa_localevalue.cpp
diff --git a/xfa/fxfa/parser/xfa_localevalue.cpp b/xfa/fxfa/parser/xfa_localevalue.cpp
index b66212123003055ba4abda53780cf1d12e30c938..c060fe816666d375eb55b581c0f88bcc8e8594e5 100644
--- a/xfa/fxfa/parser/xfa_localevalue.cpp
+++ b/xfa/fxfa/parser/xfa_localevalue.cpp
@@ -7,6 +7,7 @@
#include "xfa/fxfa/parser/xfa_localevalue.h"
#include "core/fxcrt/fx_ext.h"
+#include "third_party/base/ptr_util.h"
#include "xfa/fgas/localization/fgas_localeimp.h"
#include "xfa/fxfa/parser/cxfa_document.h"
#include "xfa/fxfa/parser/xfa_localemgr.h"
@@ -93,21 +94,20 @@ static FX_LOCALECATEGORY XFA_ValugeCategory(FX_LOCALECATEGORY eCategory,
}
return eCategory;
}
+
bool CXFA_LocaleValue::ValidateValue(const CFX_WideString& wsValue,
const CFX_WideString& wsPattern,
IFX_Locale* pLocale,
CFX_WideString* pMatchFormat) {
CFX_WideString wsOutput;
IFX_Locale* locale = m_pLocaleMgr->GetDefLocale();
- if (pLocale) {
+ if (pLocale)
m_pLocaleMgr->SetDefLocale(pLocale);
- }
- CFX_FormatString* pFormat = nullptr;
- if (m_pLocaleMgr)
Tom Sepez 2016/12/07 22:56:13 segv at 110 unless this block executes.
dsinclair 2016/12/07 23:17:43 Do we know if m_pLocalMgr can be null? Should we b
Tom Sepez 2016/12/07 23:36:36 Hope not. Should we early return ? Not unless we
dsinclair 2016/12/07 23:45:20 If CFX_FormatString doesn't need it, can we just r
Tom Sepez 2016/12/07 23:46:12 Also segv at 187, even if we manage to successfull
- pFormat = new CFX_FormatString(m_pLocaleMgr, false);
+ auto pFormat = pdfium::MakeUnique<CFX_FormatString>(m_pLocaleMgr, false);
CFX_WideStringArray wsPatterns;
pFormat->SplitFormatString(wsPattern, wsPatterns);
+
bool bRet = false;
int32_t iCount = wsPatterns.GetSize();
int32_t i = 0;
@@ -181,15 +181,15 @@ bool CXFA_LocaleValue::ValidateValue(const CFX_WideString& wsValue,
break;
}
}
- if (bRet && pMatchFormat) {
+ if (bRet && pMatchFormat)
*pMatchFormat = wsPatterns[i - 1];
- }
- pFormat->Release();
- if (pLocale) {
+
+ if (pLocale)
m_pLocaleMgr->SetDefLocale(locale);
- }
+
return bRet;
}
+
CFX_WideString CXFA_LocaleValue::GetValue() const {
return m_wsValue;
}
@@ -458,44 +458,34 @@ bool CXFA_LocaleValue::SetDateTime(const CFX_WideString& wsDateTime,
m_dwType = XFA_VT_DATETIME;
return m_bValid = ParsePatternValue(wsDateTime, wsFormat, pLocale);
}
+
bool CXFA_LocaleValue::FormatPatterns(CFX_WideString& wsResult,
const CFX_WideString& wsFormat,
IFX_Locale* pLocale,
XFA_VALUEPICTURE eValueType) const {
- wsResult.clear();
- bool bRet = false;
-
- CFX_FormatString* pFormat = nullptr;
- if (m_pLocaleMgr)
Tom Sepez 2016/12/07 22:56:13 segv at 473 unless this block executes.
dsinclair 2016/12/07 23:17:43 ditto
- pFormat = new CFX_FormatString(m_pLocaleMgr, false);
-
+ auto pFormat = pdfium::MakeUnique<CFX_FormatString>(m_pLocaleMgr, false);
CFX_WideStringArray wsPatterns;
pFormat->SplitFormatString(wsFormat, wsPatterns);
+ wsResult.clear();
int32_t iCount = wsPatterns.GetSize();
for (int32_t i = 0; i < iCount; i++) {
- bRet = FormatSinglePattern(wsResult, wsPatterns[i], pLocale, eValueType);
- if (bRet) {
- break;
- }
+ if (FormatSinglePattern(wsResult, wsPatterns[i], pLocale, eValueType))
+ return true;
}
- pFormat->Release();
- return bRet;
+ return false;
}
+
bool CXFA_LocaleValue::FormatSinglePattern(CFX_WideString& wsResult,
const CFX_WideString& wsFormat,
IFX_Locale* pLocale,
XFA_VALUEPICTURE eValueType) const {
IFX_Locale* locale = m_pLocaleMgr->GetDefLocale();
- if (pLocale) {
+ if (pLocale)
m_pLocaleMgr->SetDefLocale(pLocale);
- }
+
wsResult.clear();
bool bRet = false;
-
- CFX_FormatString* pFormat = nullptr;
- if (m_pLocaleMgr)
Tom Sepez 2016/12/07 22:56:13 segv at 534 unless this block executes
dsinclair 2016/12/07 23:17:43 "
- pFormat = new CFX_FormatString(m_pLocaleMgr, false);
-
+ auto pFormat = pdfium::MakeUnique<CFX_FormatString>(m_pLocaleMgr, false);
FX_LOCALECATEGORY eCategory = pFormat->GetCategory(wsFormat);
eCategory = XFA_ValugeCategory(eCategory, m_dwType);
switch (eCategory) {
@@ -531,16 +521,16 @@ bool CXFA_LocaleValue::FormatSinglePattern(CFX_WideString& wsResult,
wsResult = m_wsValue;
bRet = true;
}
- pFormat->Release();
if (!bRet && (eCategory != FX_LOCALECATEGORY_Num ||
eValueType != XFA_VALUEPICTURE_Display)) {
wsResult = m_wsValue;
}
- if (pLocale) {
+ if (pLocale)
m_pLocaleMgr->SetDefLocale(locale);
- }
+
return bRet;
}
+
static bool XFA_ValueSplitDateTime(const CFX_WideString& wsDateTime,
CFX_WideString& wsDate,
CFX_WideString& wsTime) {
@@ -799,14 +789,10 @@ bool CXFA_LocaleValue::ParsePatternValue(const CFX_WideString& wsValue,
const CFX_WideString& wsPattern,
IFX_Locale* pLocale) {
IFX_Locale* locale = m_pLocaleMgr->GetDefLocale();
- if (pLocale) {
+ if (pLocale)
m_pLocaleMgr->SetDefLocale(pLocale);
- }
-
- CFX_FormatString* pFormat = nullptr;
- if (m_pLocaleMgr)
- pFormat = new CFX_FormatString(m_pLocaleMgr, false);
Tom Sepez 2016/12/07 22:56:13 segv at 811, 881 unless this block executes
dsinclair 2016/12/07 23:17:43 "
+ auto pFormat = pdfium::MakeUnique<CFX_FormatString>(m_pLocaleMgr, false);
CFX_WideStringArray wsPatterns;
pFormat->SplitFormatString(wsPattern, wsPatterns);
bool bRet = false;
@@ -875,15 +861,15 @@ bool CXFA_LocaleValue::ParsePatternValue(const CFX_WideString& wsValue,
break;
}
}
- if (!bRet) {
+ if (!bRet)
m_wsValue = wsValue;
- }
- pFormat->Release();
- if (pLocale) {
+
+ if (pLocale)
m_pLocaleMgr->SetDefLocale(locale);
- }
+
return bRet;
}
+
void CXFA_LocaleValue::GetNumbericFormat(CFX_WideString& wsFormat,
int32_t nIntLen,
int32_t nDecLen,
« no previous file with comments | « xfa/fgas/localization/fgas_localeimp.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698