summaryrefslogtreecommitdiff
path: root/core/fpdfapi/parser/cpdf_array.cpp
diff options
context:
space:
mode:
authorLei Zhang <thestig@chromium.org>2017-06-09 11:04:41 -0700
committerChromium commit bot <commit-bot@chromium.org>2017-06-09 18:33:56 +0000
commit59c1ac070d1c8ca70e96805b697c5635ccd70cdf (patch)
tree52ea762d0c694e241ed05f071e4295a47eb29007 /core/fpdfapi/parser/cpdf_array.cpp
parent7e2d1f4cb2af916e0d5eb01bb6b9cb3ffa0736c3 (diff)
downloadpdfium-59c1ac070d1c8ca70e96805b697c5635ccd70cdf.tar.xz
Simplify CPDF_Array::RemoveAt(index, size).
Instead of one general RemoveAt() method, split it into: - RemoveAt(index) - Truncate(nNewSize) - Clear() Update callers, which are now easier to understand. Update existing unit tests and add new tests. Change-Id: I38fe40146ce8f2479677b2caadd20a1756678768 Reviewed-on: https://pdfium-review.googlesource.com/6417 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Nicolás Peña <npm@chromium.org>
Diffstat (limited to 'core/fpdfapi/parser/cpdf_array.cpp')
-rw-r--r--core/fpdfapi/parser/cpdf_array.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/core/fpdfapi/parser/cpdf_array.cpp b/core/fpdfapi/parser/cpdf_array.cpp
index 4caad10631..ea4ca7eaeb 100644
--- a/core/fpdfapi/parser/cpdf_array.cpp
+++ b/core/fpdfapi/parser/cpdf_array.cpp
@@ -136,14 +136,20 @@ CPDF_Array* CPDF_Array::GetArrayAt(size_t i) const {
return ToArray(GetDirectObjectAt(i));
}
-void CPDF_Array::RemoveAt(size_t i, size_t nCount) {
- if (i >= m_Objects.size())
- return;
+void CPDF_Array::RemoveAt(size_t i) {
+ if (i < m_Objects.size())
+ m_Objects.erase(m_Objects.begin() + i);
+}
+
+void CPDF_Array::Clear() {
+ m_Objects.clear();
+}
- if (nCount <= 0 || nCount > m_Objects.size() - i)
+void CPDF_Array::Truncate(size_t nNewSize) {
+ if (nNewSize >= m_Objects.size())
return;
- m_Objects.erase(m_Objects.begin() + i, m_Objects.begin() + i + nCount);
+ m_Objects.resize(nNewSize);
}
void CPDF_Array::ConvertToIndirectObjectAt(size_t i,