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

Side by Side Diff: xfa/fgas/crt/fgas_codepage.cpp

Issue 2095653002: Remove NULL in xfa/ (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Rebase to master Created 4 years, 6 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 | « xfa/fde/fde_gedevice.cpp ('k') | xfa/fgas/crt/fgas_stream.h » ('j') | no next file with comments »
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_ext.h" 7 #include "core/fxcrt/include/fx_ext.h"
8 #include "xfa/fgas/crt/fgas_codepage.h" 8 #include "xfa/fgas/crt/fgas_codepage.h"
9 #include "xfa/fgas/crt/fgas_language.h" 9 #include "xfa/fgas/crt/fgas_language.h"
10 10
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 {0xe3323399, 0x3a4}, {0xe60412dd, 0x3b5}, {0xeee47add, 0x4b0}, 265 {0xe3323399, 0x3a4}, {0xe60412dd, 0x3b5}, {0xeee47add, 0x4b0},
266 {0xf021a186, 0x4e2}, {0xf021a187, 0x4e3}, {0xf021a188, 0x4e4}, 266 {0xf021a186, 0x4e2}, {0xf021a187, 0x4e3}, {0xf021a188, 0x4e4},
267 {0xf021a189, 0x4e5}, {0xf021a18a, 0x4e6}, {0xf021a18b, 0x4e7}, 267 {0xf021a189, 0x4e5}, {0xf021a18a, 0x4e6}, {0xf021a18b, 0x4e7},
268 {0xf021a18c, 0x4e8}, {0xf021a18d, 0x4e9}, {0xf021a18e, 0x4ea}, 268 {0xf021a18c, 0x4e8}, {0xf021a18d, 0x4e9}, {0xf021a18e, 0x4ea},
269 {0xf0700456, 0x6fb3}, {0xf274f175, 0x3b5}, {0xf2a9730b, 0x3a8}, 269 {0xf0700456, 0x6fb3}, {0xf274f175, 0x3b5}, {0xf2a9730b, 0x3a8},
270 {0xf3d463c2, 0x3a4}, {0xf52a70a3, 0xc42e}, {0xf5693147, 0x6fb3}, 270 {0xf3d463c2, 0x3a4}, {0xf52a70a3, 0xc42e}, {0xf5693147, 0x6fb3},
271 {0xf637e157, 0x478}, {0xfc213f3a, 0x2717}, {0xff654d14, 0x3b5}, 271 {0xf637e157, 0x478}, {0xfc213f3a, 0x2717}, {0xff654d14, 0x3b5},
272 }; 272 };
273 273
274 uint16_t GetCodePageFromStringA(const FX_CHAR* pStr, int32_t iLength) { 274 uint16_t GetCodePageFromStringA(const FX_CHAR* pStr, int32_t iLength) {
275 ASSERT(pStr != NULL); 275 ASSERT(pStr);
276 if (iLength < 0) { 276 if (iLength < 0) {
277 iLength = FXSYS_strlen(pStr); 277 iLength = FXSYS_strlen(pStr);
278 } 278 }
279 if (iLength == 0) { 279 if (iLength == 0) {
280 return 0xFFFF; 280 return 0xFFFF;
281 } 281 }
282 uint32_t uHash = FX_HashCode_GetA(CFX_ByteStringC(pStr, iLength), true); 282 uint32_t uHash = FX_HashCode_GetA(CFX_ByteStringC(pStr, iLength), true);
283 int32_t iStart = 0; 283 int32_t iStart = 0;
284 int32_t iEnd = sizeof(g_FXCPHashTable) / sizeof(FX_STR2CPHASH) - 1; 284 int32_t iEnd = sizeof(g_FXCPHashTable) / sizeof(FX_STR2CPHASH) - 1;
285 ASSERT(iEnd >= 0); 285 ASSERT(iEnd >= 0);
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 CFX_ByteString csStr; 363 CFX_ByteString csStr;
364 FX_CHAR* pBuf = csStr.GetBuffer(iLength + 1); 364 FX_CHAR* pBuf = csStr.GetBuffer(iLength + 1);
365 for (int32_t i = 0; i < iLength; ++i) { 365 for (int32_t i = 0; i < iLength; ++i) {
366 *pBuf++ = (FX_CHAR)*pStr++; 366 *pBuf++ = (FX_CHAR)*pStr++;
367 } 367 }
368 csStr.ReleaseBuffer(iLength); 368 csStr.ReleaseBuffer(iLength);
369 return GetCodePageFromStringA(csStr.c_str(), iLength); 369 return GetCodePageFromStringA(csStr.c_str(), iLength);
370 } 370 }
371 371
372 void FX_SwapByteOrder(FX_WCHAR* pStr, int32_t iLength) { 372 void FX_SwapByteOrder(FX_WCHAR* pStr, int32_t iLength) {
373 ASSERT(pStr != NULL); 373 ASSERT(pStr);
374 if (iLength < 0) { 374 if (iLength < 0) {
375 iLength = FXSYS_wcslen(pStr); 375 iLength = FXSYS_wcslen(pStr);
376 } 376 }
377 uint16_t wch; 377 uint16_t wch;
378 if (sizeof(FX_WCHAR) > 2) { 378 if (sizeof(FX_WCHAR) > 2) {
379 while (iLength-- > 0) { 379 while (iLength-- > 0) {
380 wch = (uint16_t)*pStr; 380 wch = (uint16_t)*pStr;
381 wch = (wch >> 8) | (wch << 8); 381 wch = (wch >> 8) | (wch << 8);
382 wch &= 0x00FF; 382 wch &= 0x00FF;
383 *pStr++ = wch; 383 *pStr++ = wch;
384 } 384 }
385 } else { 385 } else {
386 while (iLength-- > 0) { 386 while (iLength-- > 0) {
387 wch = (uint16_t)*pStr; 387 wch = (uint16_t)*pStr;
388 wch = (wch >> 8) | (wch << 8); 388 wch = (wch >> 8) | (wch << 8);
389 *pStr++ = wch; 389 *pStr++ = wch;
390 } 390 }
391 } 391 }
392 } 392 }
393 393
394 void FX_UTF16ToWChar(void* pBuffer, int32_t iLength) { 394 void FX_UTF16ToWChar(void* pBuffer, int32_t iLength) {
395 ASSERT(pBuffer != NULL && iLength > 0); 395 ASSERT(pBuffer && iLength > 0);
396 if (sizeof(FX_WCHAR) == 2) { 396 if (sizeof(FX_WCHAR) == 2) {
397 return; 397 return;
398 } 398 }
399 uint16_t* pSrc = (uint16_t*)pBuffer; 399 uint16_t* pSrc = (uint16_t*)pBuffer;
400 FX_WCHAR* pDst = (FX_WCHAR*)pBuffer; 400 FX_WCHAR* pDst = (FX_WCHAR*)pBuffer;
401 while (--iLength >= 0) { 401 while (--iLength >= 0) {
402 pDst[iLength] = (FX_WCHAR)pSrc[iLength]; 402 pDst[iLength] = (FX_WCHAR)pSrc[iLength];
403 } 403 }
404 } 404 }
405 405
406 void FX_WCharToUTF16(void* pBuffer, int32_t iLength) { 406 void FX_WCharToUTF16(void* pBuffer, int32_t iLength) {
407 ASSERT(pBuffer != NULL && iLength > 0); 407 ASSERT(pBuffer && iLength > 0);
408 if (sizeof(FX_WCHAR) == 2) { 408 if (sizeof(FX_WCHAR) == 2) {
409 return; 409 return;
410 } 410 }
411 const FX_WCHAR* pSrc = (const FX_WCHAR*)pBuffer; 411 const FX_WCHAR* pSrc = (const FX_WCHAR*)pBuffer;
412 uint16_t* pDst = (uint16_t*)pBuffer; 412 uint16_t* pDst = (uint16_t*)pBuffer;
413 while (--iLength >= 0) { 413 while (--iLength >= 0) {
414 *pDst++ = (uint16_t)*pSrc++; 414 *pDst++ = (uint16_t)*pSrc++;
415 } 415 }
416 } 416 }
417 417
418 int32_t FX_DecodeString(uint16_t wCodePage, 418 int32_t FX_DecodeString(uint16_t wCodePage,
419 const FX_CHAR* pSrc, 419 const FX_CHAR* pSrc,
420 int32_t* pSrcLen, 420 int32_t* pSrcLen,
421 FX_WCHAR* pDst, 421 FX_WCHAR* pDst,
422 int32_t* pDstLen, 422 int32_t* pDstLen,
423 FX_BOOL bErrBreak) { 423 FX_BOOL bErrBreak) {
424 if (wCodePage == FX_CODEPAGE_UTF8) { 424 if (wCodePage == FX_CODEPAGE_UTF8) {
425 return FX_UTF8Decode(pSrc, pSrcLen, pDst, pDstLen); 425 return FX_UTF8Decode(pSrc, pSrcLen, pDst, pDstLen);
426 } 426 }
427 return -1; 427 return -1;
428 } 428 }
429 int32_t FX_UTF8Decode(const FX_CHAR* pSrc, 429 int32_t FX_UTF8Decode(const FX_CHAR* pSrc,
430 int32_t* pSrcLen, 430 int32_t* pSrcLen,
431 FX_WCHAR* pDst, 431 FX_WCHAR* pDst,
432 int32_t* pDstLen) { 432 int32_t* pDstLen) {
433 if (pSrcLen == NULL || pDstLen == NULL) { 433 if (!pSrcLen || !pDstLen) {
434 return -1; 434 return -1;
435 } 435 }
436 int32_t iSrcLen = *pSrcLen; 436 int32_t iSrcLen = *pSrcLen;
437 if (iSrcLen < 1) { 437 if (iSrcLen < 1) {
438 *pSrcLen = *pDstLen = 0; 438 *pSrcLen = *pDstLen = 0;
439 return 1; 439 return 1;
440 } 440 }
441 int32_t iDstLen = *pDstLen; 441 int32_t iDstLen = *pDstLen;
442 FX_BOOL bValidDst = (pDst != NULL && iDstLen > 0); 442 FX_BOOL bValidDst = (pDst && iDstLen > 0);
443 uint32_t dwCode = 0; 443 uint32_t dwCode = 0;
444 int32_t iPending = 0; 444 int32_t iPending = 0;
445 int32_t iSrcNum = 0, iDstNum = 0; 445 int32_t iSrcNum = 0, iDstNum = 0;
446 int32_t k = 0; 446 int32_t k = 0;
447 int32_t iIndex = 0; 447 int32_t iIndex = 0;
448 k = 1; 448 k = 1;
449 while (iIndex < iSrcLen) { 449 while (iIndex < iSrcLen) {
450 uint8_t byte = (uint8_t) * (pSrc + iIndex); 450 uint8_t byte = (uint8_t) * (pSrc + iIndex);
451 if (byte < 0x80) { 451 if (byte < 0x80) {
452 iPending = 0; 452 iPending = 0;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
497 dwCode = (byte & 0x01) << 30; 497 dwCode = (byte & 0x01) << 30;
498 } else { 498 } else {
499 break; 499 break;
500 } 500 }
501 iIndex++; 501 iIndex++;
502 } 502 }
503 *pSrcLen = iSrcNum; 503 *pSrcLen = iSrcNum;
504 *pDstLen = iDstNum; 504 *pDstLen = iDstNum;
505 return 1; 505 return 1;
506 } 506 }
OLDNEW
« no previous file with comments | « xfa/fde/fde_gedevice.cpp ('k') | xfa/fgas/crt/fgas_stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698