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

Side by Side Diff: core/src/fxcodec/codec/fx_codec.cpp

Issue 1172793002: Merge to XFA: Use stdint.h types throughout PDFium. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: Created 5 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 | « core/src/fxcodec/codec/codec_int.h ('k') | core/src/fxcodec/codec/fx_codec_bmp.cpp » ('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 "../../../include/fxcodec/fx_codec.h" 7 #include "../../../include/fxcodec/fx_codec.h"
8 #include "codec_int.h" 8 #include "codec_int.h"
9 CCodec_ModuleMgr::CCodec_ModuleMgr() 9 CCodec_ModuleMgr::CCodec_ModuleMgr()
10 { 10 {
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 dest_height = -dest_height; 116 dest_height = -dest_height;
117 } 117 }
118 v_DownScale(dest_width, dest_height); 118 v_DownScale(dest_width, dest_height);
119 if (m_pDataCache) { 119 if (m_pDataCache) {
120 if (m_pDataCache->m_Height == m_OutputHeight && m_pDataCache->m_Width == m_OutputWidth) { 120 if (m_pDataCache->m_Height == m_OutputHeight && m_pDataCache->m_Width == m_OutputWidth) {
121 return; 121 return;
122 } 122 }
123 FX_Free(m_pDataCache); 123 FX_Free(m_pDataCache);
124 m_pDataCache = NULL; 124 m_pDataCache = NULL;
125 } 125 }
126 m_pDataCache = (CCodec_ImageDataCache*)FX_TryAlloc(FX_BYTE, sizeof(CCodec_Im ageDataCache) + m_Pitch * m_OutputHeight); 126 m_pDataCache = (CCodec_ImageDataCache*)FX_TryAlloc(uint8_t, sizeof(CCodec_Im ageDataCache) + m_Pitch * m_OutputHeight);
127 if (m_pDataCache == NULL) { 127 if (m_pDataCache == NULL) {
128 return; 128 return;
129 } 129 }
130 m_pDataCache->m_Height = m_OutputHeight; 130 m_pDataCache->m_Height = m_OutputHeight;
131 m_pDataCache->m_Width = m_OutputWidth; 131 m_pDataCache->m_Width = m_OutputWidth;
132 m_pDataCache->m_nCachedLines = 0; 132 m_pDataCache->m_nCachedLines = 0;
133 } 133 }
134 FX_BOOL CCodec_BasicModule::RunLengthEncode(const FX_BYTE* src_buf, FX_DWORD src _size, FX_LPBYTE& dest_buf, 134 FX_BOOL CCodec_BasicModule::RunLengthEncode(const uint8_t* src_buf, FX_DWORD src _size, FX_LPBYTE& dest_buf,
135 FX_DWORD& dest_size) 135 FX_DWORD& dest_size)
136 { 136 {
137 return FALSE; 137 return FALSE;
138 } 138 }
139 extern "C" double FXstrtod(const char* nptr, char** endptr) 139 extern "C" double FXstrtod(const char* nptr, char** endptr)
140 { 140 {
141 double ret = 0.0; 141 double ret = 0.0;
142 const char* ptr = nptr; 142 const char* ptr = nptr;
143 const char* exp_ptr = NULL; 143 const char* exp_ptr = NULL;
144 int e_number = 0, 144 int e_number = 0,
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 while(exp_ret--) { 233 while(exp_ret--) {
234 ret *= 10.0; 234 ret *= 10.0;
235 } 235 }
236 } else { 236 } else {
237 while(exp_ret--) { 237 while(exp_ret--) {
238 ret /= 10.0; 238 ret /= 10.0;
239 } 239 }
240 } 240 }
241 return is_negative ? -ret : ret; 241 return is_negative ? -ret : ret;
242 } 242 }
243 FX_BOOL CCodec_BasicModule::A85Encode(const FX_BYTE* src_buf, FX_DWORD src_size, FX_LPBYTE& dest_buf, 243 FX_BOOL CCodec_BasicModule::A85Encode(const uint8_t* src_buf, FX_DWORD src_size, FX_LPBYTE& dest_buf,
244 FX_DWORD& dest_size) 244 FX_DWORD& dest_size)
245 { 245 {
246 return FALSE; 246 return FALSE;
247 } 247 }
248 CCodec_ModuleMgr* CCodec_ModuleMgr::Create() 248 CCodec_ModuleMgr* CCodec_ModuleMgr::Create()
249 { 249 {
250 return new CCodec_ModuleMgr; 250 return new CCodec_ModuleMgr;
251 } 251 }
252 void CCodec_ModuleMgr::Destroy() 252 void CCodec_ModuleMgr::Destroy()
253 { 253 {
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 if (pMap && data) { 361 if (pMap && data) {
362 if (len > 8) { 362 if (len > 8) {
363 FX_WORD wTagNum = m_readWord(data); 363 FX_WORD wTagNum = m_readWord(data);
364 data += 2; 364 data += 2;
365 FX_DWORD wTag; 365 FX_DWORD wTag;
366 FX_LPBYTE buf; 366 FX_LPBYTE buf;
367 while (wTagNum--) { 367 while (wTagNum--) {
368 wTag = m_readWord(data); 368 wTag = m_readWord(data);
369 data += 2; 369 data += 2;
370 if (!pMap->Lookup(wTag, buf)) { 370 if (!pMap->Lookup(wTag, buf)) {
371 buf = FX_Alloc(FX_BYTE, 10); 371 buf = FX_Alloc(uint8_t, 10);
372 if (buf == NULL) { 372 if (buf == NULL) {
373 return FALSE; 373 return FALSE;
374 } 374 }
375 FXSYS_memcpy32(buf, data, 10); 375 FXSYS_memcpy32(buf, data, 10);
376 pMap->SetAt(wTag, buf); 376 pMap->SetAt(wTag, buf);
377 } 377 }
378 data += 10; 378 data += 10;
379 } 379 }
380 FX_DWORD dwIFDOffset; 380 FX_DWORD dwIFDOffset;
381 dwIFDOffset = m_readDword(data); 381 dwIFDOffset = m_readDword(data);
382 while (dwIFDOffset && dwIFDOffset < len) { 382 while (dwIFDOffset && dwIFDOffset < len) {
383 data = m_pExifData + dwIFDOffset; 383 data = m_pExifData + dwIFDOffset;
384 wTagNum = m_readWord(data); 384 wTagNum = m_readWord(data);
385 data += 2; 385 data += 2;
386 while (wTagNum--) { 386 while (wTagNum--) {
387 wTag = m_readWord(data); 387 wTag = m_readWord(data);
388 data += 2; 388 data += 2;
389 if (!pMap->Lookup(wTag, buf)) { 389 if (!pMap->Lookup(wTag, buf)) {
390 buf = FX_Alloc(FX_BYTE, 10); 390 buf = FX_Alloc(uint8_t, 10);
391 if (buf == NULL) { 391 if (buf == NULL) {
392 return FALSE; 392 return FALSE;
393 } 393 }
394 FXSYS_memcpy32(buf, data, 10); 394 FXSYS_memcpy32(buf, data, 10);
395 pMap->SetAt(wTag, buf); 395 pMap->SetAt(wTag, buf);
396 } 396 }
397 data += 10; 397 data += 10;
398 } 398 }
399 dwIFDOffset = m_readDword(data); 399 dwIFDOffset = m_readDword(data);
400 } 400 }
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 type = m_readWord(head); 445 type = m_readWord(head);
446 head += 2; 446 head += 2;
447 dwModuleNum = m_readDword(head); 447 dwModuleNum = m_readDword(head);
448 head += 4; 448 head += 4;
449 switch (type) { 449 switch (type) {
450 case FX_UnsignedByte: 450 case FX_UnsignedByte:
451 case FX_AscString: 451 case FX_AscString:
452 case FX_SignedByte: 452 case FX_SignedByte:
453 case FX_Undefined: 453 case FX_Undefined:
454 dwSize = dwModuleNum; 454 dwSize = dwModuleNum;
455 val = FX_Alloc(FX_BYTE, dwSize); 455 val = FX_Alloc(uint8_t, dwSize);
456 if (val == NULL) { 456 if (val == NULL) {
457 return FALSE; 457 return FALSE;
458 } 458 }
459 if (dwSize > 4) { 459 if (dwSize > 4) {
460 FXSYS_memcpy32(val, old_data + m_readDword(head) , dwSize); 460 FXSYS_memcpy32(val, old_data + m_readDword(head) , dwSize);
461 } else { 461 } else {
462 FXSYS_memcpy32(val, head, dwSize); 462 FXSYS_memcpy32(val, head, dwSize);
463 } 463 }
464 break; 464 break;
465 case FX_UnsignedShort: 465 case FX_UnsignedShort:
466 case FX_SignedShort: 466 case FX_SignedShort:
467 dwSize = dwModuleNum << 1; 467 dwSize = dwModuleNum << 1;
468 val = FX_Alloc(FX_BYTE, dwSize); 468 val = FX_Alloc(uint8_t, dwSize);
469 if (val == NULL) { 469 if (val == NULL) {
470 return FALSE; 470 return FALSE;
471 } 471 }
472 if (dwSize > 4) { 472 if (dwSize > 4) {
473 FXSYS_memcpy32(val, old_data + m_readDword(head) , dwSize); 473 FXSYS_memcpy32(val, old_data + m_readDword(head) , dwSize);
474 } else { 474 } else {
475 FXSYS_memcpy32(val, head, dwSize); 475 FXSYS_memcpy32(val, head, dwSize);
476 } 476 }
477 buf = val; 477 buf = val;
478 for(i = 0; i < (int)dwModuleNum; i ++) { 478 for(i = 0; i < (int)dwModuleNum; i ++) {
479 *(FX_WORD*)buf = m_readWord(buf); 479 *(FX_WORD*)buf = m_readWord(buf);
480 buf += 2; 480 buf += 2;
481 } 481 }
482 break; 482 break;
483 case FX_UnsignedLong: 483 case FX_UnsignedLong:
484 case FX_SignedLong: 484 case FX_SignedLong:
485 case FX_SignedFloat: 485 case FX_SignedFloat:
486 dwSize = dwModuleNum << 2; 486 dwSize = dwModuleNum << 2;
487 val = FX_Alloc(FX_BYTE, dwSize); 487 val = FX_Alloc(uint8_t, dwSize);
488 if (val == NULL) { 488 if (val == NULL) {
489 return FALSE; 489 return FALSE;
490 } 490 }
491 if (dwSize > 4) { 491 if (dwSize > 4) {
492 FXSYS_memcpy32(val, old_data + m_readDword(head) , dwSize); 492 FXSYS_memcpy32(val, old_data + m_readDword(head) , dwSize);
493 } else { 493 } else {
494 FXSYS_memcpy32(val, head, dwSize); 494 FXSYS_memcpy32(val, head, dwSize);
495 } 495 }
496 buf = val; 496 buf = val;
497 for(i = 0; i < (int)dwModuleNum; i ++) { 497 for(i = 0; i < (int)dwModuleNum; i ++) {
498 *(FX_DWORD*)buf = m_readDword(buf); 498 *(FX_DWORD*)buf = m_readDword(buf);
499 buf += 4; 499 buf += 4;
500 } 500 }
501 break; 501 break;
502 case FX_UnsignedRation: 502 case FX_UnsignedRation:
503 case FX_SignedRation: { 503 case FX_SignedRation: {
504 dwSize = dwModuleNum << 3; 504 dwSize = dwModuleNum << 3;
505 buf = FX_Alloc(FX_BYTE, dwSize); 505 buf = FX_Alloc(uint8_t, dwSize);
506 if (buf == NULL) { 506 if (buf == NULL) {
507 return FALSE; 507 return FALSE;
508 } 508 }
509 if (dwSize > 4) { 509 if (dwSize > 4) {
510 FXSYS_memcpy32(buf, old_data + m_readDword(h ead), dwSize); 510 FXSYS_memcpy32(buf, old_data + m_readDword(h ead), dwSize);
511 } else { 511 } else {
512 FXSYS_memcpy32(buf, head, dwSize); 512 FXSYS_memcpy32(buf, head, dwSize);
513 } 513 }
514 temp = buf; 514 temp = buf;
515 val = FX_Alloc(FX_BYTE, dwSize / 2); 515 val = FX_Alloc(uint8_t, dwSize / 2);
516 if (val == NULL) { 516 if (val == NULL) {
517 FX_Free(buf); 517 FX_Free(buf);
518 return FALSE; 518 return FALSE;
519 } 519 }
520 for(i = 0; i < (int)dwModuleNum; i ++) { 520 for(i = 0; i < (int)dwModuleNum; i ++) {
521 *(FX_DWORD*)temp = m_readDword(temp); 521 *(FX_DWORD*)temp = m_readDword(temp);
522 *(FX_DWORD*)(temp + 4) = m_readDword(temp + 4); 522 *(FX_DWORD*)(temp + 4) = m_readDword(temp + 4);
523 FX_DWORD* lNumerator = (FX_DWORD*)temp; 523 FX_DWORD* lNumerator = (FX_DWORD*)temp;
524 FX_DWORD* lNenominator = (FX_DWORD*)(temp + 4); 524 FX_DWORD* lNenominator = (FX_DWORD*)(temp + 4);
525 *(FX_FLOAT*)(val + i * 4) = (FX_FLOAT)(*lNum erator) / (FX_FLOAT)(*lNenominator); 525 *(FX_FLOAT*)(val + i * 4) = (FX_FLOAT)(*lNum erator) / (FX_FLOAT)(*lNenominator);
526 temp += 8; 526 temp += 8;
527 } 527 }
528 FX_Free(buf); 528 FX_Free(buf);
529 } 529 }
530 break; 530 break;
531 case FX_DoubleFloat: 531 case FX_DoubleFloat:
532 dwSize = dwModuleNum << 3; 532 dwSize = dwModuleNum << 3;
533 val = FX_Alloc(FX_BYTE, dwSize); 533 val = FX_Alloc(uint8_t, dwSize);
534 if (val == NULL) { 534 if (val == NULL) {
535 return FALSE; 535 return FALSE;
536 } 536 }
537 if (dwSize > 4) { 537 if (dwSize > 4) {
538 FXSYS_memcpy32(val, old_data + m_readDword(head) , dwSize); 538 FXSYS_memcpy32(val, old_data + m_readDword(head) , dwSize);
539 } else { 539 } else {
540 FXSYS_memcpy32(val, head, dwSize); 540 FXSYS_memcpy32(val, head, dwSize);
541 } 541 }
542 buf = val; 542 buf = val;
543 for(i = 0; i < (int)dwModuleNum; i ++) { 543 for(i = 0; i < (int)dwModuleNum; i ++) {
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 virtual void v_DownScale(int dest_width, int dest_height) {} 599 virtual void v_DownScale(int dest_width, int dest_height) {}
600 virtual FX_BOOL v_Rewind(); 600 virtual FX_BOOL v_Rewind();
601 virtual FX_LPBYTE v_GetNextLine(); 601 virtual FX_LPBYTE v_GetNextLine();
602 virtual FX_DWORD GetSrcOffset() 602 virtual FX_DWORD GetSrcOffset()
603 { 603 {
604 return m_SrcOffset; 604 return m_SrcOffset;
605 } 605 }
606 protected: 606 protected:
607 FX_BOOL CheckDestSize(); 607 FX_BOOL CheckDestSize();
608 void GetNextOperator(); 608 void GetNextOperator();
609 void» » » » UpdateOperator(FX_BYTE used_bytes); 609 void» » » » UpdateOperator(uint8_t used_bytes);
610 610
611 FX_LPBYTE m_pScanline; 611 FX_LPBYTE m_pScanline;
612 FX_LPCBYTE m_pSrcBuf; 612 FX_LPCBYTE m_pSrcBuf;
613 FX_DWORD m_SrcSize; 613 FX_DWORD m_SrcSize;
614 FX_DWORD m_dwLineBytes; 614 FX_DWORD m_dwLineBytes;
615 FX_DWORD m_SrcOffset; 615 FX_DWORD m_SrcOffset;
616 FX_BOOL m_bEOD; 616 FX_BOOL m_bEOD;
617 FX_BYTE» » » » m_Operator; 617 uint8_t» » » » m_Operator;
618 }; 618 };
619 CCodec_RLScanlineDecoder::CCodec_RLScanlineDecoder() 619 CCodec_RLScanlineDecoder::CCodec_RLScanlineDecoder()
620 : m_pScanline(NULL) 620 : m_pScanline(NULL)
621 , m_pSrcBuf(NULL) 621 , m_pSrcBuf(NULL)
622 , m_SrcSize(0) 622 , m_SrcSize(0)
623 , m_dwLineBytes(0) 623 , m_dwLineBytes(0)
624 , m_SrcOffset(0) 624 , m_SrcOffset(0)
625 , m_bEOD(FALSE) 625 , m_bEOD(FALSE)
626 , m_Operator(0) 626 , m_Operator(0)
627 { 627 {
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
666 m_pSrcBuf = src_buf; 666 m_pSrcBuf = src_buf;
667 m_SrcSize = src_size; 667 m_SrcSize = src_size;
668 m_OutputWidth = m_OrigWidth = width; 668 m_OutputWidth = m_OrigWidth = width;
669 m_OutputHeight = m_OrigHeight = height; 669 m_OutputHeight = m_OrigHeight = height;
670 m_nComps = nComps; 670 m_nComps = nComps;
671 m_bpc = bpc; 671 m_bpc = bpc;
672 m_bColorTransformed = FALSE; 672 m_bColorTransformed = FALSE;
673 m_DownScale = 1; 673 m_DownScale = 1;
674 m_Pitch = (width * nComps * bpc + 31) / 32 * 4; 674 m_Pitch = (width * nComps * bpc + 31) / 32 * 4;
675 m_dwLineBytes = (width * nComps * bpc + 7) / 8; 675 m_dwLineBytes = (width * nComps * bpc + 7) / 8;
676 m_pScanline = FX_Alloc(FX_BYTE, m_Pitch); 676 m_pScanline = FX_Alloc(uint8_t, m_Pitch);
677 return CheckDestSize(); 677 return CheckDestSize();
678 } 678 }
679 FX_BOOL CCodec_RLScanlineDecoder::v_Rewind() 679 FX_BOOL CCodec_RLScanlineDecoder::v_Rewind()
680 { 680 {
681 FXSYS_memset32(m_pScanline, 0, m_Pitch); 681 FXSYS_memset32(m_pScanline, 0, m_Pitch);
682 m_SrcOffset = 0; 682 m_SrcOffset = 0;
683 m_bEOD = FALSE; 683 m_bEOD = FALSE;
684 m_Operator = 0; 684 m_Operator = 0;
685 return TRUE; 685 return TRUE;
686 } 686 }
(...skipping 15 matching lines...) Expand all
702 if (col_pos + copy_len >= m_dwLineBytes) { 702 if (col_pos + copy_len >= m_dwLineBytes) {
703 copy_len = m_dwLineBytes - col_pos; 703 copy_len = m_dwLineBytes - col_pos;
704 eol = TRUE; 704 eol = TRUE;
705 } 705 }
706 if (copy_len >= m_SrcSize - m_SrcOffset) { 706 if (copy_len >= m_SrcSize - m_SrcOffset) {
707 copy_len = m_SrcSize - m_SrcOffset; 707 copy_len = m_SrcSize - m_SrcOffset;
708 m_bEOD = TRUE; 708 m_bEOD = TRUE;
709 } 709 }
710 FXSYS_memcpy32(m_pScanline + col_pos, m_pSrcBuf + m_SrcOffset, copy_ len); 710 FXSYS_memcpy32(m_pScanline + col_pos, m_pSrcBuf + m_SrcOffset, copy_ len);
711 col_pos += copy_len; 711 col_pos += copy_len;
712 UpdateOperator((FX_BYTE)copy_len); 712 UpdateOperator((uint8_t)copy_len);
713 } else if (m_Operator > 128) { 713 } else if (m_Operator > 128) {
714 int fill = 0; 714 int fill = 0;
715 if (m_SrcOffset - 1 < m_SrcSize - 1) { 715 if (m_SrcOffset - 1 < m_SrcSize - 1) {
716 fill = m_pSrcBuf[m_SrcOffset]; 716 fill = m_pSrcBuf[m_SrcOffset];
717 } 717 }
718 FX_DWORD duplicate_len = 257 - m_Operator; 718 FX_DWORD duplicate_len = 257 - m_Operator;
719 if (col_pos + duplicate_len >= m_dwLineBytes) { 719 if (col_pos + duplicate_len >= m_dwLineBytes) {
720 duplicate_len = m_dwLineBytes - col_pos; 720 duplicate_len = m_dwLineBytes - col_pos;
721 eol = TRUE; 721 eol = TRUE;
722 } 722 }
723 FXSYS_memset8(m_pScanline + col_pos, fill, duplicate_len); 723 FXSYS_memset8(m_pScanline + col_pos, fill, duplicate_len);
724 col_pos += duplicate_len; 724 col_pos += duplicate_len;
725 UpdateOperator((FX_BYTE)duplicate_len); 725 UpdateOperator((uint8_t)duplicate_len);
726 } else { 726 } else {
727 m_bEOD = TRUE; 727 m_bEOD = TRUE;
728 break; 728 break;
729 } 729 }
730 } 730 }
731 return m_pScanline; 731 return m_pScanline;
732 } 732 }
733 void CCodec_RLScanlineDecoder::GetNextOperator() 733 void CCodec_RLScanlineDecoder::GetNextOperator()
734 { 734 {
735 if (m_SrcOffset >= m_SrcSize) { 735 if (m_SrcOffset >= m_SrcSize) {
736 m_Operator = 128; 736 m_Operator = 128;
737 return; 737 return;
738 } 738 }
739 m_Operator = m_pSrcBuf[m_SrcOffset]; 739 m_Operator = m_pSrcBuf[m_SrcOffset];
740 m_SrcOffset ++; 740 m_SrcOffset ++;
741 } 741 }
742 void CCodec_RLScanlineDecoder::UpdateOperator(FX_BYTE used_bytes) 742 void CCodec_RLScanlineDecoder::UpdateOperator(uint8_t used_bytes)
743 { 743 {
744 if (used_bytes == 0) { 744 if (used_bytes == 0) {
745 return; 745 return;
746 } 746 }
747 if (m_Operator < 128) { 747 if (m_Operator < 128) {
748 FXSYS_assert((FX_DWORD)m_Operator + 1 >= used_bytes); 748 FXSYS_assert((FX_DWORD)m_Operator + 1 >= used_bytes);
749 if (used_bytes == m_Operator + 1) { 749 if (used_bytes == m_Operator + 1) {
750 m_SrcOffset += used_bytes; 750 m_SrcOffset += used_bytes;
751 GetNextOperator(); 751 GetNextOperator();
752 return; 752 return;
753 } 753 }
754 m_Operator -= used_bytes; 754 m_Operator -= used_bytes;
755 m_SrcOffset += used_bytes; 755 m_SrcOffset += used_bytes;
756 if (m_SrcOffset >= m_SrcSize) { 756 if (m_SrcOffset >= m_SrcSize) {
757 m_Operator = 128; 757 m_Operator = 128;
758 } 758 }
759 return; 759 return;
760 } 760 }
761 FX_BYTE count = 257 - m_Operator; 761 uint8_t count = 257 - m_Operator;
762 FXSYS_assert((FX_DWORD)count >= used_bytes); 762 FXSYS_assert((FX_DWORD)count >= used_bytes);
763 if (used_bytes == count) { 763 if (used_bytes == count) {
764 m_SrcOffset ++; 764 m_SrcOffset ++;
765 GetNextOperator(); 765 GetNextOperator();
766 return; 766 return;
767 } 767 }
768 count -= used_bytes; 768 count -= used_bytes;
769 m_Operator = 257 - count; 769 m_Operator = 257 - count;
770 } 770 }
771 ICodec_ScanlineDecoder* CCodec_BasicModule::CreateRunLengthDecoder(FX_LPCBYTE sr c_buf, FX_DWORD src_size, int width, int height, 771 ICodec_ScanlineDecoder* CCodec_BasicModule::CreateRunLengthDecoder(FX_LPCBYTE sr c_buf, FX_DWORD src_size, int width, int height,
772 int nComps, int bpc) 772 int nComps, int bpc)
773 { 773 {
774 CCodec_RLScanlineDecoder* pRLScanlineDecoder = new CCodec_RLScanlineDecoder; 774 CCodec_RLScanlineDecoder* pRLScanlineDecoder = new CCodec_RLScanlineDecoder;
775 if (!pRLScanlineDecoder->Create(src_buf, src_size, width, height, nComps, bp c)) { 775 if (!pRLScanlineDecoder->Create(src_buf, src_size, width, height, nComps, bp c)) {
776 delete pRLScanlineDecoder; 776 delete pRLScanlineDecoder;
777 return NULL; 777 return NULL;
778 } 778 }
779 return pRLScanlineDecoder; 779 return pRLScanlineDecoder;
780 } 780 }
OLDNEW
« no previous file with comments | « core/src/fxcodec/codec/codec_int.h ('k') | core/src/fxcodec/codec/fx_codec_bmp.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698