summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLei Zhang <thestig@chromium.org>2018-05-17 17:21:22 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-05-17 17:21:22 +0000
commit3689975377feb92a84488cd51b1cb30c818e3d55 (patch)
treef1a031c1c3162fc782cdd01ed916541a967fab1a
parent4b220c600e570b79d6dead2009fae47cf4c9340d (diff)
downloadpdfium-3689975377feb92a84488cd51b1cb30c818e3d55.tar.xz
Expose CJBig2_Image::ComposeTo() as a public method.
CJBig2_Image::ComposeFrom() wraps a call to ComposeTo() and does an extra validity check. In tight loops where the validity check will always succeed, this is wasteful. Change existing callers of ComposeFrom() to ComposeTo() when the validity check has already been done. BUG=chromium:840728 Change-Id: I39fb42eea49b92b7804cbd42c3d8a0329edeb58d Reviewed-on: https://pdfium-review.googlesource.com/32637 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
-rw-r--r--core/fxcodec/jbig2/JBig2_HtrdProc.cpp2
-rw-r--r--core/fxcodec/jbig2/JBig2_Image.h3
-rw-r--r--core/fxcodec/jbig2/JBig2_TrdProc.cpp4
3 files changed, 5 insertions, 4 deletions
diff --git a/core/fxcodec/jbig2/JBig2_HtrdProc.cpp b/core/fxcodec/jbig2/JBig2_HtrdProc.cpp
index 29c8118883..4fce8a48a1 100644
--- a/core/fxcodec/jbig2/JBig2_HtrdProc.cpp
+++ b/core/fxcodec/jbig2/JBig2_HtrdProc.cpp
@@ -129,7 +129,7 @@ std::unique_ptr<CJBig2_Image> CJBig2_HTRDProc::DecodeImage(
uint32_t pat_index = std::min(gsval, HNUMPATS - 1);
int32_t out_x = (HGX + y * HRY + x * HRX) >> 8;
int32_t out_y = (HGY + y * HRX - x * HRY) >> 8;
- HTREG->ComposeFrom(out_x, out_y, (*HPATS)[pat_index].get(), HCOMBOP);
+ (*HPATS)[pat_index]->ComposeTo(HTREG.get(), out_x, out_y, HCOMBOP);
}
}
return HTREG;
diff --git a/core/fxcodec/jbig2/JBig2_Image.h b/core/fxcodec/jbig2/JBig2_Image.h
index 0d0a7f0794..d8a3e9cdc1 100644
--- a/core/fxcodec/jbig2/JBig2_Image.h
+++ b/core/fxcodec/jbig2/JBig2_Image.h
@@ -56,13 +56,14 @@ class CJBig2_Image {
void expand(int32_t h, bool v);
- private:
bool ComposeTo(CJBig2_Image* pDst, int32_t x, int32_t y, JBig2ComposeOp op);
bool ComposeToWithRect(CJBig2_Image* pDst,
int32_t x,
int32_t y,
const FX_RECT& rtSrc,
JBig2ComposeOp op);
+
+ private:
bool ComposeToOpt2(CJBig2_Image* pDst,
int32_t x,
int32_t y,
diff --git a/core/fxcodec/jbig2/JBig2_TrdProc.cpp b/core/fxcodec/jbig2/JBig2_TrdProc.cpp
index 474b3ccdf2..796bd4cb23 100644
--- a/core/fxcodec/jbig2/JBig2_TrdProc.cpp
+++ b/core/fxcodec/jbig2/JBig2_TrdProc.cpp
@@ -180,7 +180,7 @@ std::unique_ptr<CJBig2_Image> CJBig2_TRDProc::DecodeHuffman(
int32_t SI = CURS.ValueOrDie();
ComposeData compose = GetComposeData(SI, TI, WI, HI);
- SBREG->ComposeFrom(compose.x, compose.y, IBI.Get(), SBCOMBOP);
+ IBI.Get()->ComposeTo(SBREG.get(), compose.x, compose.y, SBCOMBOP);
if (compose.increment)
CURS += compose.increment;
++NINSTANCES;
@@ -346,7 +346,7 @@ std::unique_ptr<CJBig2_Image> CJBig2_TRDProc::DecodeArith(
int32_t SI = CURS.ValueOrDie();
ComposeData compose = GetComposeData(SI, TI, WI, HI);
- SBREG->ComposeFrom(compose.x, compose.y, pIBI.Get(), SBCOMBOP);
+ pIBI.Get()->ComposeTo(SBREG.get(), compose.x, compose.y, SBCOMBOP);
if (compose.increment)
CURS += compose.increment;
++NINSTANCES;