| OLD | NEW |
| 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 <limits.h> | 7 #include <limits.h> |
| 8 | 8 |
| 9 #include "../../../include/fpdfapi/fpdf_module.h" | 9 #include "../../../include/fpdfapi/fpdf_module.h" |
| 10 #include "../../../include/fpdfapi/fpdf_page.h" | 10 #include "../../../include/fpdfapi/fpdf_page.h" |
| (...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 480 CPDF_StreamAcc* m_pSampleStream; | 480 CPDF_StreamAcc* m_pSampleStream; |
| 481 }; | 481 }; |
| 482 | 482 |
| 483 CPDF_SampledFunc::CPDF_SampledFunc() { | 483 CPDF_SampledFunc::CPDF_SampledFunc() { |
| 484 m_pSampleStream = NULL; | 484 m_pSampleStream = NULL; |
| 485 m_pEncodeInfo = NULL; | 485 m_pEncodeInfo = NULL; |
| 486 m_pDecodeInfo = NULL; | 486 m_pDecodeInfo = NULL; |
| 487 } | 487 } |
| 488 CPDF_SampledFunc::~CPDF_SampledFunc() { | 488 CPDF_SampledFunc::~CPDF_SampledFunc() { |
| 489 delete m_pSampleStream; | 489 delete m_pSampleStream; |
| 490 if (m_pEncodeInfo) { | 490 FX_Free(m_pEncodeInfo); |
| 491 FX_Free(m_pEncodeInfo); | 491 FX_Free(m_pDecodeInfo); |
| 492 } | |
| 493 if (m_pDecodeInfo) { | |
| 494 FX_Free(m_pDecodeInfo); | |
| 495 } | |
| 496 } | 492 } |
| 497 FX_BOOL CPDF_SampledFunc::v_Init(CPDF_Object* pObj) { | 493 FX_BOOL CPDF_SampledFunc::v_Init(CPDF_Object* pObj) { |
| 498 if (pObj->GetType() != PDFOBJ_STREAM) { | 494 if (pObj->GetType() != PDFOBJ_STREAM) { |
| 499 return FALSE; | 495 return FALSE; |
| 500 } | 496 } |
| 501 CPDF_Stream* pStream = (CPDF_Stream*)pObj; | 497 CPDF_Stream* pStream = (CPDF_Stream*)pObj; |
| 502 CPDF_Dictionary* pDict = pStream->GetDict(); | 498 CPDF_Dictionary* pDict = pStream->GetDict(); |
| 503 CPDF_Array* pSize = pDict->GetArray(FX_BSTRC("Size")); | 499 CPDF_Array* pSize = pDict->GetArray(FX_BSTRC("Size")); |
| 504 CPDF_Array* pEncode = pDict->GetArray(FX_BSTRC("Encode")); | 500 CPDF_Array* pEncode = pDict->GetArray(FX_BSTRC("Encode")); |
| 505 CPDF_Array* pDecode = pDict->GetArray(FX_BSTRC("Decode")); | 501 CPDF_Array* pDecode = pDict->GetArray(FX_BSTRC("Decode")); |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 671 FX_FLOAT* m_pBeginValues; | 667 FX_FLOAT* m_pBeginValues; |
| 672 FX_FLOAT* m_pEndValues; | 668 FX_FLOAT* m_pEndValues; |
| 673 int m_nOrigOutputs; | 669 int m_nOrigOutputs; |
| 674 }; | 670 }; |
| 675 | 671 |
| 676 CPDF_ExpIntFunc::CPDF_ExpIntFunc() { | 672 CPDF_ExpIntFunc::CPDF_ExpIntFunc() { |
| 677 m_pBeginValues = NULL; | 673 m_pBeginValues = NULL; |
| 678 m_pEndValues = NULL; | 674 m_pEndValues = NULL; |
| 679 } | 675 } |
| 680 CPDF_ExpIntFunc::~CPDF_ExpIntFunc() { | 676 CPDF_ExpIntFunc::~CPDF_ExpIntFunc() { |
| 681 if (m_pBeginValues) { | |
| 682 FX_Free(m_pBeginValues); | 677 FX_Free(m_pBeginValues); |
| 683 } | |
| 684 if (m_pEndValues) { | |
| 685 FX_Free(m_pEndValues); | 678 FX_Free(m_pEndValues); |
| 686 } | |
| 687 } | 679 } |
| 688 FX_BOOL CPDF_ExpIntFunc::v_Init(CPDF_Object* pObj) { | 680 FX_BOOL CPDF_ExpIntFunc::v_Init(CPDF_Object* pObj) { |
| 689 CPDF_Dictionary* pDict = pObj->GetDict(); | 681 CPDF_Dictionary* pDict = pObj->GetDict(); |
| 690 if (pDict == NULL) { | 682 if (pDict == NULL) { |
| 691 return FALSE; | 683 return FALSE; |
| 692 } | 684 } |
| 693 CPDF_Array* pArray0 = pDict->GetArray(FX_BSTRC("C0")); | 685 CPDF_Array* pArray0 = pDict->GetArray(FX_BSTRC("C0")); |
| 694 if (m_nOutputs == 0) { | 686 if (m_nOutputs == 0) { |
| 695 m_nOutputs = 1; | 687 m_nOutputs = 1; |
| 696 if (pArray0) { | 688 if (pArray0) { |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 740 | 732 |
| 741 CPDF_StitchFunc::CPDF_StitchFunc() { | 733 CPDF_StitchFunc::CPDF_StitchFunc() { |
| 742 m_nSubs = 0; | 734 m_nSubs = 0; |
| 743 m_pSubFunctions = NULL; | 735 m_pSubFunctions = NULL; |
| 744 m_pBounds = NULL; | 736 m_pBounds = NULL; |
| 745 m_pEncode = NULL; | 737 m_pEncode = NULL; |
| 746 } | 738 } |
| 747 CPDF_StitchFunc::~CPDF_StitchFunc() { | 739 CPDF_StitchFunc::~CPDF_StitchFunc() { |
| 748 for (int i = 0; i < m_nSubs; i++) | 740 for (int i = 0; i < m_nSubs; i++) |
| 749 delete m_pSubFunctions[i]; | 741 delete m_pSubFunctions[i]; |
| 750 if (m_pSubFunctions) { | 742 FX_Free(m_pSubFunctions); |
| 751 FX_Free(m_pSubFunctions); | 743 FX_Free(m_pBounds); |
| 752 } | 744 FX_Free(m_pEncode); |
| 753 if (m_pBounds) { | |
| 754 FX_Free(m_pBounds); | |
| 755 } | |
| 756 if (m_pEncode) { | |
| 757 FX_Free(m_pEncode); | |
| 758 } | |
| 759 } | 745 } |
| 760 FX_BOOL CPDF_StitchFunc::v_Init(CPDF_Object* pObj) { | 746 FX_BOOL CPDF_StitchFunc::v_Init(CPDF_Object* pObj) { |
| 761 CPDF_Dictionary* pDict = pObj->GetDict(); | 747 CPDF_Dictionary* pDict = pObj->GetDict(); |
| 762 if (pDict == NULL) { | 748 if (pDict == NULL) { |
| 763 return FALSE; | 749 return FALSE; |
| 764 } | 750 } |
| 765 CPDF_Array* pArray = pDict->GetArray(FX_BSTRC("Functions")); | 751 CPDF_Array* pArray = pDict->GetArray(FX_BSTRC("Functions")); |
| 766 if (pArray == NULL) { | 752 if (pArray == NULL) { |
| 767 return FALSE; | 753 return FALSE; |
| 768 } | 754 } |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 852 delete pFunc; | 838 delete pFunc; |
| 853 return NULL; | 839 return NULL; |
| 854 } | 840 } |
| 855 return pFunc; | 841 return pFunc; |
| 856 } | 842 } |
| 857 CPDF_Function::CPDF_Function() { | 843 CPDF_Function::CPDF_Function() { |
| 858 m_pDomains = NULL; | 844 m_pDomains = NULL; |
| 859 m_pRanges = NULL; | 845 m_pRanges = NULL; |
| 860 } | 846 } |
| 861 CPDF_Function::~CPDF_Function() { | 847 CPDF_Function::~CPDF_Function() { |
| 862 if (m_pDomains) { | 848 FX_Free(m_pDomains); |
| 863 FX_Free(m_pDomains); | 849 FX_Free(m_pRanges); |
| 864 m_pDomains = NULL; | |
| 865 } | |
| 866 if (m_pRanges) { | |
| 867 FX_Free(m_pRanges); | |
| 868 m_pRanges = NULL; | |
| 869 } | |
| 870 } | 850 } |
| 871 FX_BOOL CPDF_Function::Init(CPDF_Object* pObj) { | 851 FX_BOOL CPDF_Function::Init(CPDF_Object* pObj) { |
| 872 CPDF_Dictionary* pDict; | 852 CPDF_Dictionary* pDict; |
| 873 if (pObj->GetType() == PDFOBJ_STREAM) { | 853 if (pObj->GetType() == PDFOBJ_STREAM) { |
| 874 pDict = ((CPDF_Stream*)pObj)->GetDict(); | 854 pDict = ((CPDF_Stream*)pObj)->GetDict(); |
| 875 } else { | 855 } else { |
| 876 pDict = (CPDF_Dictionary*)pObj; | 856 pDict = (CPDF_Dictionary*)pObj; |
| 877 } | 857 } |
| 878 CPDF_Array* pDomains = pDict->GetArray(FX_BSTRC("Domain")); | 858 CPDF_Array* pDomains = pDict->GetArray(FX_BSTRC("Domain")); |
| 879 if (pDomains == NULL) { | 859 if (pDomains == NULL) { |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 929 for (int i = 0; i < m_nOutputs; i++) { | 909 for (int i = 0; i < m_nOutputs; i++) { |
| 930 if (results[i] < m_pRanges[i * 2]) { | 910 if (results[i] < m_pRanges[i * 2]) { |
| 931 results[i] = m_pRanges[i * 2]; | 911 results[i] = m_pRanges[i * 2]; |
| 932 } else if (results[i] > m_pRanges[i * 2 + 1]) { | 912 } else if (results[i] > m_pRanges[i * 2 + 1]) { |
| 933 results[i] = m_pRanges[i * 2 + 1]; | 913 results[i] = m_pRanges[i * 2 + 1]; |
| 934 } | 914 } |
| 935 } | 915 } |
| 936 } | 916 } |
| 937 return TRUE; | 917 return TRUE; |
| 938 } | 918 } |
| OLD | NEW |