diff options
author | Lei Zhang <thestig@chromium.org> | 2018-05-17 17:21:22 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-05-17 17:21:22 +0000 |
commit | 3689975377feb92a84488cd51b1cb30c818e3d55 (patch) | |
tree | f1a031c1c3162fc782cdd01ed916541a967fab1a /core | |
parent | 4b220c600e570b79d6dead2009fae47cf4c9340d (diff) | |
download | pdfium-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>
Diffstat (limited to 'core')
-rw-r--r-- | core/fxcodec/jbig2/JBig2_HtrdProc.cpp | 2 | ||||
-rw-r--r-- | core/fxcodec/jbig2/JBig2_Image.h | 3 | ||||
-rw-r--r-- | core/fxcodec/jbig2/JBig2_TrdProc.cpp | 4 |
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; |