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

Side by Side Diff: fpdfsdk/fsdk_baseannot.cpp

Issue 1867183002: Use std::vector as internal storage for CPDF_Array (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 8 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
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 <algorithm> 7 #include <algorithm>
8 8
9 #include "core/fpdfapi/fpdf_parser/include/cpdf_array.h" 9 #include "core/fpdfapi/fpdf_parser/include/cpdf_array.h"
10 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h" 10 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h"
(...skipping 721 matching lines...) Expand 10 before | Expand all | Expand 10 after
732 } 732 }
733 733
734 void CPDFSDK_BAAnnot::SetBorderDash(const CFX_IntArray& array) { 734 void CPDFSDK_BAAnnot::SetBorderDash(const CFX_IntArray& array) {
735 CPDF_Dictionary* pBSDict = m_pAnnot->GetAnnotDict()->GetDictBy("BS"); 735 CPDF_Dictionary* pBSDict = m_pAnnot->GetAnnotDict()->GetDictBy("BS");
736 if (!pBSDict) { 736 if (!pBSDict) {
737 pBSDict = new CPDF_Dictionary; 737 pBSDict = new CPDF_Dictionary;
738 m_pAnnot->GetAnnotDict()->SetAt("BS", pBSDict); 738 m_pAnnot->GetAnnotDict()->SetAt("BS", pBSDict);
739 } 739 }
740 740
741 CPDF_Array* pArray = new CPDF_Array; 741 CPDF_Array* pArray = new CPDF_Array;
742 for (int i = 0, sz = array.GetSize(); i < sz; i++) { 742 for (size_t i = 0, sz = array.GetSize(); i < sz; i++)
743 pArray->AddInteger(array[i]); 743 pArray->AddInteger(array[i]);
744 }
745 744
746 pBSDict->SetAt("D", pArray); 745 pBSDict->SetAt("D", pArray);
747 } 746 }
748 747
749 void CPDFSDK_BAAnnot::GetBorderDash(CFX_IntArray& array) const { 748 void CPDFSDK_BAAnnot::GetBorderDash(CFX_IntArray& array) const {
750 CPDF_Array* pDash = NULL; 749 CPDF_Array* pDash = NULL;
751 750
752 CPDF_Array* pBorder = m_pAnnot->GetAnnotDict()->GetArrayBy("Border"); 751 CPDF_Array* pBorder = m_pAnnot->GetAnnotDict()->GetArrayBy("Border");
753 if (pBorder) { 752 if (pBorder) {
754 pDash = pBorder->GetArrayAt(3); 753 pDash = pBorder->GetArrayAt(3);
755 } else { 754 } else {
756 CPDF_Dictionary* pBSDict = m_pAnnot->GetAnnotDict()->GetDictBy("BS"); 755 CPDF_Dictionary* pBSDict = m_pAnnot->GetAnnotDict()->GetDictBy("BS");
757 if (pBSDict) { 756 if (pBSDict) {
758 pDash = pBSDict->GetArrayBy("D"); 757 pDash = pBSDict->GetArrayBy("D");
759 } 758 }
760 } 759 }
761 760
762 if (pDash) { 761 if (pDash) {
763 for (int i = 0, sz = pDash->GetCount(); i < sz; i++) { 762 for (size_t i = 0, sz = pDash->GetCount(); i < sz; i++)
764 array.Add(pDash->GetIntegerAt(i)); 763 array.Add(pDash->GetIntegerAt(i));
765 }
766 } 764 }
767 } 765 }
768 766
769 void CPDFSDK_BAAnnot::SetColor(FX_COLORREF color) { 767 void CPDFSDK_BAAnnot::SetColor(FX_COLORREF color) {
770 CPDF_Array* pArray = new CPDF_Array; 768 CPDF_Array* pArray = new CPDF_Array;
771 pArray->AddNumber((FX_FLOAT)FXSYS_GetRValue(color) / 255.0f); 769 pArray->AddNumber((FX_FLOAT)FXSYS_GetRValue(color) / 255.0f);
772 pArray->AddNumber((FX_FLOAT)FXSYS_GetGValue(color) / 255.0f); 770 pArray->AddNumber((FX_FLOAT)FXSYS_GetGValue(color) / 255.0f);
773 pArray->AddNumber((FX_FLOAT)FXSYS_GetBValue(color) / 255.0f); 771 pArray->AddNumber((FX_FLOAT)FXSYS_GetBValue(color) / 255.0f);
774 m_pAnnot->GetAnnotDict()->SetAt("C", pArray); 772 m_pAnnot->GetAnnotDict()->SetAt("C", pArray);
775 } 773 }
776 774
777 void CPDFSDK_BAAnnot::RemoveColor() { 775 void CPDFSDK_BAAnnot::RemoveColor() {
778 m_pAnnot->GetAnnotDict()->RemoveAt("C"); 776 m_pAnnot->GetAnnotDict()->RemoveAt("C");
779 } 777 }
780 778
781 FX_BOOL CPDFSDK_BAAnnot::GetColor(FX_COLORREF& color) const { 779 FX_BOOL CPDFSDK_BAAnnot::GetColor(FX_COLORREF& color) const {
782 if (CPDF_Array* pEntry = m_pAnnot->GetAnnotDict()->GetArrayBy("C")) { 780 if (CPDF_Array* pEntry = m_pAnnot->GetAnnotDict()->GetArrayBy("C")) {
783 int nCount = pEntry->GetCount(); 781 size_t nCount = pEntry->GetCount();
784 if (nCount == 1) { 782 if (nCount == 1) {
785 FX_FLOAT g = pEntry->GetNumberAt(0) * 255; 783 FX_FLOAT g = pEntry->GetNumberAt(0) * 255;
786 784
787 color = FXSYS_RGB((int)g, (int)g, (int)g); 785 color = FXSYS_RGB((int)g, (int)g, (int)g);
788 786
789 return TRUE; 787 return TRUE;
790 } else if (nCount == 3) { 788 } else if (nCount == 3) {
791 FX_FLOAT r = pEntry->GetNumberAt(0) * 255; 789 FX_FLOAT r = pEntry->GetNumberAt(0) * 255;
792 FX_FLOAT g = pEntry->GetNumberAt(1) * 255; 790 FX_FLOAT g = pEntry->GetNumberAt(1) * 255;
793 FX_FLOAT b = pEntry->GetNumberAt(2) * 255; 791 FX_FLOAT b = pEntry->GetNumberAt(2) * 255;
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
956 954
957 CPDF_Page* CPDFSDK_Annot::GetPDFPage() { 955 CPDF_Page* CPDFSDK_Annot::GetPDFPage() {
958 return m_pPageView ? m_pPageView->GetPDFPage() : nullptr; 956 return m_pPageView ? m_pPageView->GetPDFPage() : nullptr;
959 } 957 }
960 958
961 #ifdef PDF_ENABLE_XFA 959 #ifdef PDF_ENABLE_XFA
962 CPDFXFA_Page* CPDFSDK_Annot::GetPDFXFAPage() { 960 CPDFXFA_Page* CPDFSDK_Annot::GetPDFXFAPage() {
963 return m_pPageView ? m_pPageView->GetPDFXFAPage() : nullptr; 961 return m_pPageView ? m_pPageView->GetPDFXFAPage() : nullptr;
964 } 962 }
965 #endif // PDF_ENABLE_XFA 963 #endif // PDF_ENABLE_XFA
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698