| Index: core/fxcrt/fx_basic_util.cpp
|
| diff --git a/core/fxcrt/fx_basic_util.cpp b/core/fxcrt/fx_basic_util.cpp
|
| index be5200fc6fc1d47d9435010a12c2f8e3b1f9eb64..02e09ce0576a73d74f94ddb68ec97e9be32d8e76 100644
|
| --- a/core/fxcrt/fx_basic_util.cpp
|
| +++ b/core/fxcrt/fx_basic_util.cpp
|
| @@ -16,6 +16,7 @@
|
|
|
| #include <algorithm>
|
| #include <cctype>
|
| +#include <memory>
|
|
|
| #ifdef PDF_ENABLE_XFA
|
| CFX_PrivateData::CFX_PrivateData() {}
|
| @@ -208,41 +209,35 @@ class CFindFileDataW : public CFindFileData {
|
| WIN32_FIND_DATAW m_FindData;
|
| };
|
| #endif
|
| +
|
| void* FX_OpenFolder(const FX_CHAR* path) {
|
| #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
|
| -#ifndef _WIN32_WCE
|
| - CFindFileDataA* pData = new CFindFileDataA;
|
| + std::unique_ptr<CFindFileDataA> pData(new CFindFileDataA);
|
| pData->m_Handle = FindFirstFileExA((CFX_ByteString(path) + "/*.*").c_str(),
|
| FindExInfoStandard, &pData->m_FindData,
|
| - FindExSearchNameMatch, NULL, 0);
|
| -#else
|
| - CFindFileDataW* pData = new CFindFileDataW;
|
| - pData->m_Handle = FindFirstFileW(CFX_WideString::FromLocal(path) + L"/*.*",
|
| - &pData->m_FindData);
|
| -#endif
|
| - if (pData->m_Handle == INVALID_HANDLE_VALUE) {
|
| - delete pData;
|
| - return NULL;
|
| - }
|
| + FindExSearchNameMatch, nullptr, 0);
|
| + if (pData->m_Handle == INVALID_HANDLE_VALUE)
|
| + return nullptr;
|
| +
|
| pData->m_bEnd = FALSE;
|
| - return pData;
|
| + return pData.release();
|
| #else
|
| DIR* dir = opendir(path);
|
| return dir;
|
| #endif
|
| }
|
| +
|
| void* FX_OpenFolder(const FX_WCHAR* path) {
|
| #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
|
| - CFindFileDataW* pData = new CFindFileDataW;
|
| + std::unique_ptr<CFindFileDataW> pData(new CFindFileDataW);
|
| pData->m_Handle = FindFirstFileExW((CFX_WideString(path) + L"/*.*").c_str(),
|
| FindExInfoStandard, &pData->m_FindData,
|
| - FindExSearchNameMatch, NULL, 0);
|
| - if (pData->m_Handle == INVALID_HANDLE_VALUE) {
|
| - delete pData;
|
| - return NULL;
|
| - }
|
| + FindExSearchNameMatch, nullptr, 0);
|
| + if (pData->m_Handle == INVALID_HANDLE_VALUE)
|
| + return nullptr;
|
| +
|
| pData->m_bEnd = FALSE;
|
| - return pData;
|
| + return pData.release();
|
| #else
|
| DIR* dir = opendir(CFX_ByteString::FromUnicode(path).c_str());
|
| return dir;
|
| @@ -255,29 +250,15 @@ FX_BOOL FX_GetNextFile(void* handle,
|
| return FALSE;
|
| }
|
| #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
|
| -#ifndef _WIN32_WCE
|
| CFindFileDataA* pData = (CFindFileDataA*)handle;
|
| - if (pData->m_bEnd) {
|
| + if (pData->m_bEnd)
|
| return FALSE;
|
| - }
|
| +
|
| filename = pData->m_FindData.cFileName;
|
| bFolder = pData->m_FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
|
| - if (!FindNextFileA(pData->m_Handle, &pData->m_FindData)) {
|
| + if (!FindNextFileA(pData->m_Handle, &pData->m_FindData))
|
| pData->m_bEnd = TRUE;
|
| - }
|
| - return TRUE;
|
| -#else
|
| - CFindFileDataW* pData = (CFindFileDataW*)handle;
|
| - if (pData->m_bEnd) {
|
| - return FALSE;
|
| - }
|
| - filename = CFX_ByteString::FromUnicode(pData->m_FindData.cFileName);
|
| - bFolder = pData->m_FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
|
| - if (!FindNextFileW(pData->m_Handle, &pData->m_FindData)) {
|
| - pData->m_bEnd = TRUE;
|
| - }
|
| return TRUE;
|
| -#endif
|
| #elif defined(__native_client__)
|
| abort();
|
| return FALSE;
|
|
|