summaryrefslogtreecommitdiff
path: root/core/fxge
diff options
context:
space:
mode:
authorNicolas Pena <npm@chromium.org>2018-05-28 20:06:19 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-05-28 20:06:19 +0000
commitac8357b3ec7e1fe4000ebcae5ce65a38bfeb5cb1 (patch)
tree3ba35d4111e491cf6f81eb5fe386d53001d8227e /core/fxge
parentfffdeebfd0ed9806d32eb5609e0fdd015c25c5ac (diff)
downloadpdfium-ac8357b3ec7e1fe4000ebcae5ce65a38bfeb5cb1.tar.xz
Revert 'Remove almost all usages of CFX_FixedBufGrow with std::vector'chromium/3444
This is a manual revert of the CL at: https://pdfium-review.googlesource.com/c/pdfium/+/32159 The only file manually changed was cpdf_renderstatus.cpp Reason for revert: the bug below shows that sometimes the vector size used is larger than the parameter given to CFX_FixedBufGrow. Thus, we will revert, then add vectors using std::max unless it's clear from the code that the code will never access indices outside. Bug: chromium:847247 Change-Id: Iee54af023c8564824418a7d34a6385b0bc418ff0 Reviewed-on: https://pdfium-review.googlesource.com/33050 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
Diffstat (limited to 'core/fxge')
-rw-r--r--core/fxge/apple/fx_apple_platform.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/core/fxge/apple/fx_apple_platform.cpp b/core/fxge/apple/fx_apple_platform.cpp
index 013be8f414..1801814e66 100644
--- a/core/fxge/apple/fx_apple_platform.cpp
+++ b/core/fxge/apple/fx_apple_platform.cpp
@@ -5,8 +5,8 @@
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
#include <memory>
-#include <vector>
+#include "core/fxcrt/cfx_fixedbufgrow.h"
#include "core/fxcrt/fx_system.h"
#ifndef _SKIA_SUPPORT_
@@ -57,12 +57,11 @@ bool CGDrawGlyphRun(CGContextRef pContext,
if (!pFont->GetPlatformFont())
return false;
}
- std::vector<uint16_t> glyph_indices;
- glyph_indices.reserve(nChars);
- std::vector<CGPoint> glyph_positions(nChars);
+ CFX_FixedBufGrow<uint16_t, 32> glyph_indices(nChars);
+ CFX_FixedBufGrow<CGPoint, 32> glyph_positions(nChars);
for (int i = 0; i < nChars; i++) {
- glyph_indices.push_back(pCharPos[i].m_ExtGID ? pCharPos[i].m_ExtGID
- : pCharPos[i].m_GlyphIndex);
+ glyph_indices[i] =
+ pCharPos[i].m_ExtGID ? pCharPos[i].m_ExtGID : pCharPos[i].m_GlyphIndex;
if (bNegSize)
glyph_positions[i].x = -pCharPos[i].m_Origin.x;
else
@@ -77,9 +76,9 @@ bool CGDrawGlyphRun(CGContextRef pContext,
new_matrix.d = -new_matrix.d;
}
quartz2d.setGraphicsTextMatrix(pContext, &new_matrix);
- return quartz2d.drawGraphicsString(
- pContext, pFont->GetPlatformFont(), font_size, glyph_indices.data(),
- glyph_positions.data(), nChars, argb, nullptr);
+ return quartz2d.drawGraphicsString(pContext, pFont->GetPlatformFont(),
+ font_size, glyph_indices, glyph_positions,
+ nChars, argb, nullptr);
}
} // namespace