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

Side by Side Diff: core/fxcrt/fx_basic_util.cpp

Issue 2011563006: Remove checks for _WIN32_WCE. (Closed) Base URL: https://pdfium.googlesource.com/pdfium@master
Patch Set: Rebase, fix build, make FX_OpenFolder impls match Created 4 years, 7 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 unified diff | Download patch
« no previous file with comments | « no previous file | fpdfsdk/fpdfview.cpp » ('j') | fpdfsdk/fsdk_rendercontext.cpp » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "core/fxcrt/include/fx_basic.h" 7 #include "core/fxcrt/include/fx_basic.h"
8 #include "core/fxcrt/include/fx_ext.h" 8 #include "core/fxcrt/include/fx_ext.h"
9 9
10 #if _FXM_PLATFORM_ != _FXM_PLATFORM_WINDOWS_ 10 #if _FXM_PLATFORM_ != _FXM_PLATFORM_WINDOWS_
11 #include <dirent.h> 11 #include <dirent.h>
12 #include <sys/types.h> 12 #include <sys/types.h>
13 #else 13 #else
14 #include <direct.h> 14 #include <direct.h>
15 #endif 15 #endif
16 16
17 #include <algorithm> 17 #include <algorithm>
18 #include <cctype> 18 #include <cctype>
19 #include <memory>
19 20
20 #ifdef PDF_ENABLE_XFA 21 #ifdef PDF_ENABLE_XFA
21 CFX_PrivateData::CFX_PrivateData() {} 22 CFX_PrivateData::CFX_PrivateData() {}
22 23
23 CFX_PrivateData::~CFX_PrivateData() { 24 CFX_PrivateData::~CFX_PrivateData() {
24 ClearAll(); 25 ClearAll();
25 } 26 }
26 void FX_PRIVATEDATA::FreeData() { 27 void FX_PRIVATEDATA::FreeData() {
27 if (!m_pData) { 28 if (!m_pData) {
28 return; 29 return;
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 public: 202 public:
202 virtual ~CFindFileDataA() {} 203 virtual ~CFindFileDataA() {}
203 WIN32_FIND_DATAA m_FindData; 204 WIN32_FIND_DATAA m_FindData;
204 }; 205 };
205 class CFindFileDataW : public CFindFileData { 206 class CFindFileDataW : public CFindFileData {
206 public: 207 public:
207 virtual ~CFindFileDataW() {} 208 virtual ~CFindFileDataW() {}
208 WIN32_FIND_DATAW m_FindData; 209 WIN32_FIND_DATAW m_FindData;
209 }; 210 };
210 #endif 211 #endif
212
211 void* FX_OpenFolder(const FX_CHAR* path) { 213 void* FX_OpenFolder(const FX_CHAR* path) {
212 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ 214 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
213 #ifndef _WIN32_WCE 215 std::unique_ptr<CFindFileDataA> pData(new CFindFileDataA);
214 CFindFileDataA* pData = new CFindFileDataA;
215 pData->m_Handle = FindFirstFileExA((CFX_ByteString(path) + "/*.*").c_str(), 216 pData->m_Handle = FindFirstFileExA((CFX_ByteString(path) + "/*.*").c_str(),
216 FindExInfoStandard, &pData->m_FindData, 217 FindExInfoStandard, &pData->m_FindData,
217 FindExSearchNameMatch, NULL, 0); 218 FindExSearchNameMatch, nullptr, 0);
218 #else 219 if (pData->m_Handle == INVALID_HANDLE_VALUE)
219 CFindFileDataW* pData = new CFindFileDataW; 220 return nullptr;
220 pData->m_Handle = FindFirstFileW(CFX_WideString::FromLocal(path) + L"/*.*", 221
221 &pData->m_FindData);
222 #endif
223 if (pData->m_Handle == INVALID_HANDLE_VALUE) {
224 delete pData;
225 return NULL;
226 }
227 pData->m_bEnd = FALSE; 222 pData->m_bEnd = FALSE;
228 return pData; 223 return pData.release();
229 #else 224 #else
230 DIR* dir = opendir(path); 225 DIR* dir = opendir(path);
231 return dir; 226 return dir;
232 #endif 227 #endif
233 } 228 }
229
234 void* FX_OpenFolder(const FX_WCHAR* path) { 230 void* FX_OpenFolder(const FX_WCHAR* path) {
235 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ 231 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
236 CFindFileDataW* pData = new CFindFileDataW; 232 std::unique_ptr<CFindFileDataW> pData(new CFindFileDataW);
237 pData->m_Handle = FindFirstFileExW((CFX_WideString(path) + L"/*.*").c_str(), 233 pData->m_Handle = FindFirstFileExW((CFX_WideString(path) + L"/*.*").c_str(),
238 FindExInfoStandard, &pData->m_FindData, 234 FindExInfoStandard, &pData->m_FindData,
239 FindExSearchNameMatch, NULL, 0); 235 FindExSearchNameMatch, nullptr, 0);
240 if (pData->m_Handle == INVALID_HANDLE_VALUE) { 236 if (pData->m_Handle == INVALID_HANDLE_VALUE)
241 delete pData; 237 return nullptr;
242 return NULL; 238
243 }
244 pData->m_bEnd = FALSE; 239 pData->m_bEnd = FALSE;
245 return pData; 240 return pData.release();
246 #else 241 #else
247 DIR* dir = opendir(CFX_ByteString::FromUnicode(path).c_str()); 242 DIR* dir = opendir(CFX_ByteString::FromUnicode(path).c_str());
248 return dir; 243 return dir;
249 #endif 244 #endif
250 } 245 }
251 FX_BOOL FX_GetNextFile(void* handle, 246 FX_BOOL FX_GetNextFile(void* handle,
252 CFX_ByteString& filename, 247 CFX_ByteString& filename,
253 FX_BOOL& bFolder) { 248 FX_BOOL& bFolder) {
254 if (!handle) { 249 if (!handle) {
255 return FALSE; 250 return FALSE;
256 } 251 }
257 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ 252 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
258 #ifndef _WIN32_WCE
259 CFindFileDataA* pData = (CFindFileDataA*)handle; 253 CFindFileDataA* pData = (CFindFileDataA*)handle;
260 if (pData->m_bEnd) { 254 if (pData->m_bEnd)
261 return FALSE; 255 return FALSE;
262 } 256
263 filename = pData->m_FindData.cFileName; 257 filename = pData->m_FindData.cFileName;
264 bFolder = pData->m_FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY; 258 bFolder = pData->m_FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
265 if (!FindNextFileA(pData->m_Handle, &pData->m_FindData)) { 259 if (!FindNextFileA(pData->m_Handle, &pData->m_FindData))
266 pData->m_bEnd = TRUE; 260 pData->m_bEnd = TRUE;
267 }
268 return TRUE; 261 return TRUE;
269 #else
270 CFindFileDataW* pData = (CFindFileDataW*)handle;
271 if (pData->m_bEnd) {
272 return FALSE;
273 }
274 filename = CFX_ByteString::FromUnicode(pData->m_FindData.cFileName);
275 bFolder = pData->m_FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
276 if (!FindNextFileW(pData->m_Handle, &pData->m_FindData)) {
277 pData->m_bEnd = TRUE;
278 }
279 return TRUE;
280 #endif
281 #elif defined(__native_client__) 262 #elif defined(__native_client__)
282 abort(); 263 abort();
283 return FALSE; 264 return FALSE;
284 #else 265 #else
285 struct dirent* de = readdir((DIR*)handle); 266 struct dirent* de = readdir((DIR*)handle);
286 if (!de) { 267 if (!de) {
287 return FALSE; 268 return FALSE;
288 } 269 }
289 filename = de->d_name; 270 filename = de->d_name;
290 bFolder = de->d_type == DT_DIR; 271 bFolder = de->d_type == DT_DIR;
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 dstShift -= 8; 371 dstShift -= 8;
391 result |= *dataPtr++ << dstShift; 372 result |= *dataPtr++ << dstShift;
392 } 373 }
393 if (dstShift > 0) { 374 if (dstShift > 0) {
394 bitShift = 8 - dstShift; 375 bitShift = 8 - dstShift;
395 bitMask = (1 << dstShift) - 1; 376 bitMask = (1 << dstShift) - 1;
396 result |= *dataPtr++ >> bitShift & bitMask; 377 result |= *dataPtr++ >> bitShift & bitMask;
397 } 378 }
398 return result; 379 return result;
399 } 380 }
OLDNEW
« no previous file with comments | « no previous file | fpdfsdk/fpdfview.cpp » ('j') | fpdfsdk/fsdk_rendercontext.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698