| Index: xfa/fxfa/parser/xfa_localemgr.cpp
|
| diff --git a/xfa/fxfa/parser/xfa_localemgr.cpp b/xfa/fxfa/parser/xfa_localemgr.cpp
|
| index 2d2bddd44a41dec09ec06660a18d89c6ac9e02e4..999e0f27aa070d80bc884a4d371c45e90161be56 100644
|
| --- a/xfa/fxfa/parser/xfa_localemgr.cpp
|
| +++ b/xfa/fxfa/parser/xfa_localemgr.cpp
|
| @@ -6,6 +6,9 @@
|
|
|
| #include "xfa/fxfa/parser/xfa_localemgr.h"
|
|
|
| +#include <memory>
|
| +#include <utility>
|
| +
|
| #include "core/fxcodec/include/fx_codec.h"
|
| #include "core/fxcrt/include/fx_xml.h"
|
| #include "core/fxge/include/cfx_gemodule.h"
|
| @@ -1042,20 +1045,18 @@ static IFX_Locale* XFA_GetLocaleFromBuffer(const uint8_t* pBuf, int nBufLen) {
|
| if (!pCodecMgr) {
|
| return nullptr;
|
| }
|
| - CXML_Element* pLocale = nullptr;
|
| + std::unique_ptr<CXML_Element> pLocale;
|
| uint8_t* pOut = nullptr;
|
| uint32_t dwSize;
|
| pCodecMgr->GetFlateModule()->FlateOrLZWDecode(FALSE, pBuf, nBufLen, TRUE, 0,
|
| 0, 0, 0, 0, pOut, dwSize);
|
| if (pOut) {
|
| - pLocale = CXML_Element::Parse(pOut, dwSize);
|
| + pLocale.reset(CXML_Element::Parse(pOut, dwSize));
|
| FX_Free(pOut);
|
| }
|
| - if (pLocale) {
|
| - return new CXFA_XMLLocale(pLocale);
|
| - }
|
| - return nullptr;
|
| + return pLocale ? new CXFA_XMLLocale(std::move(pLocale)) : nullptr;
|
| }
|
| +
|
| static uint16_t XFA_GetLanguage(CFX_WideString wsLanguage) {
|
| uint16_t dwLangueID = XFA_LANGID_en_US;
|
| if (wsLanguage.GetLength() < 2) {
|
|
|