summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xfa/fxfa/parser/cxfa_localemgr.cpp4
-rw-r--r--xfa/fxfa/parser/cxfa_localemgr.h6
2 files changed, 7 insertions, 3 deletions
diff --git a/xfa/fxfa/parser/cxfa_localemgr.cpp b/xfa/fxfa/parser/cxfa_localemgr.cpp
index 5ad0ce2438..a6d5b148d8 100644
--- a/xfa/fxfa/parser/cxfa_localemgr.cpp
+++ b/xfa/fxfa/parser/cxfa_localemgr.cpp
@@ -1145,7 +1145,7 @@ CXFA_LocaleMgr::~CXFA_LocaleMgr() {}
LocaleIface* CXFA_LocaleMgr::GetDefLocale() {
if (m_pDefLocale)
- return m_pDefLocale;
+ return m_pDefLocale.Get();
if (!m_LocaleArray.empty())
return m_LocaleArray[0].get();
@@ -1158,7 +1158,7 @@ LocaleIface* CXFA_LocaleMgr::GetDefLocale() {
if (locale)
m_XMLLocaleArray.push_back(std::move(locale));
- return m_pDefLocale;
+ return m_pDefLocale.Get();
}
std::unique_ptr<LocaleIface> CXFA_LocaleMgr::GetLocale(uint16_t lcid) {
diff --git a/xfa/fxfa/parser/cxfa_localemgr.h b/xfa/fxfa/parser/cxfa_localemgr.h
index c72e23ab5a..a59fdcdda6 100644
--- a/xfa/fxfa/parser/cxfa_localemgr.h
+++ b/xfa/fxfa/parser/cxfa_localemgr.h
@@ -10,6 +10,7 @@
#include <memory>
#include <vector>
+#include "core/fxcrt/unowned_ptr.h"
#include "core/fxcrt/widestring.h"
class CXFA_Node;
@@ -31,7 +32,10 @@ class CXFA_LocaleMgr {
std::vector<std::unique_ptr<LocaleIface>> m_LocaleArray;
std::vector<std::unique_ptr<LocaleIface>> m_XMLLocaleArray;
- LocaleIface* m_pDefLocale; // owned by m_LocaleArray or m_XMLLocaleArray.
+
+ // Owned by m_LocaleArray or m_XMLLocaleArray.
+ UnownedPtr<LocaleIface> m_pDefLocale;
+
WideString m_wsConfigLocale;
uint16_t m_dwDeflcid;
bool m_hasSetLocaleName = false;