summaryrefslogtreecommitdiff
path: root/core/fpdfapi/page/cpdf_color.cpp
diff options
context:
space:
mode:
authorLei Zhang <thestig@chromium.org>2018-04-12 20:58:56 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-04-12 20:58:56 +0000
commit2772a2d944c8573aa187339b0b5ea059d1293c36 (patch)
tree6093cb350e78c64ce32fe2c7a433258f70c1ad58 /core/fpdfapi/page/cpdf_color.cpp
parent9e625db795ca7e112d692bda7200b69a873d75f7 (diff)
downloadpdfium-2772a2d944c8573aa187339b0b5ea059d1293c36.tar.xz
More CPDF_Color improvements.
Make Copy() take a const-ref parameter. As is, the parameter is a pointer and it is dereferenced without any checks, and there are no crash reports as a result of that. Also mention GetPattern() should only be called when IsPattern() returns true. Change-Id: Ice3b7c941532d5a312fdd8f0c032e08d1ee1c6b5 Reviewed-on: https://pdfium-review.googlesource.com/30430 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
Diffstat (limited to 'core/fpdfapi/page/cpdf_color.cpp')
-rw-r--r--core/fpdfapi/page/cpdf_color.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/core/fpdfapi/page/cpdf_color.cpp b/core/fpdfapi/page/cpdf_color.cpp
index 73e3d36ec4..080df2fa28 100644
--- a/core/fpdfapi/page/cpdf_color.cpp
+++ b/core/fpdfapi/page/cpdf_color.cpp
@@ -119,10 +119,10 @@ void CPDF_Color::SetValue(CPDF_Pattern* pPattern,
}
}
-void CPDF_Color::Copy(const CPDF_Color* pSrc) {
+void CPDF_Color::Copy(const CPDF_Color& src) {
ReleaseBuffer();
ReleaseColorSpace();
- m_pCS = pSrc->m_pCS;
+ m_pCS = src.m_pCS;
if (!m_pCS)
return;
@@ -134,7 +134,7 @@ void CPDF_Color::Copy(const CPDF_Color* pSrc) {
return;
}
m_pBuffer = m_pCS->CreateBuf();
- memcpy(m_pBuffer, pSrc->m_pBuffer, m_pCS->GetBufSize());
+ memcpy(m_pBuffer, src.m_pBuffer, m_pCS->GetBufSize());
if (!IsPatternInternal())
return;
@@ -164,7 +164,9 @@ bool CPDF_Color::GetRGB(int* R, int* G, int* B) const {
}
CPDF_Pattern* CPDF_Color::GetPattern() const {
- if (!m_pBuffer || !IsPatternInternal())
+ ASSERT(IsPattern());
+
+ if (!m_pBuffer)
return nullptr;
PatternValue* pvalue = reinterpret_cast<PatternValue*>(m_pBuffer);