From 3689975377feb92a84488cd51b1cb30c818e3d55 Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Thu, 17 May 2018 17:21:22 +0000 Subject: 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 Reviewed-by: Ryan Harrison --- core/fxcodec/jbig2/JBig2_HtrdProc.cpp | 2 +- core/fxcodec/jbig2/JBig2_Image.h | 3 ++- core/fxcodec/jbig2/JBig2_TrdProc.cpp | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) (limited to 'core/fxcodec/jbig2') 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_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_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_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; -- cgit v1.2.3