summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-07-03Avoid duplicate data buffering in CPDF_SyntaxParser::ReadStream().Artem Strygin
Allow sub-streams created from an IFX_SeekableReadStream to provide stream data without copying memory. The data will only reside in the top-level stream. For example: For file http://www.major-landrover.ru/upload/attachments/f/9/f96aab07dab04ae89c8a509ec1ef2b31.pdf (18 Mb) The memory usage is reduced by ~13 Mb. Change-Id: I2595c014d0fbe1fdd181cc04965cfd7d901c2d88 Reviewed-on: https://pdfium-review.googlesource.com/35930 Commit-Queue: Art Snake <art-snake@yandex-team.ru> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-07-03Use more UnowendPtr<> in cfgas_formatstring.h and cfx_break.hTom Sepez
Move initializers to .h file (proves none missing). Change-Id: Iff8fe76e46634aa32a32ecd592476594a9d1bafa Reviewed-on: https://pdfium-review.googlesource.com/36950 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-07-03Use UnownedPtr<> in cfwl_notedriver.hTom Sepez
Re-order owned/unowned references to obey lifetime constraint. Change-Id: I589746b3c2e7d8c45d26d63d09eef977b095226d Reviewed-on: https://pdfium-review.googlesource.com/36970 Commit-Queue: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-07-03Test {Byte,Wide}String works with std::begin().Tom Sepez
Test-only CL. Building another container from the string in the manner in the test is desirable. Change-Id: I8f41aecfd82fd27f8b9af159b887b66b566f9ac7 Reviewed-on: https://pdfium-review.googlesource.com/36910 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
2018-07-03Do data request for CPDF_Stream more smoothly.Artem Strygin
For DocumentLoader we should do reconnect to skip non-requested blocks on each requested offset jump. To reduce reconnections, read stream data first, then do all checks. Thereby the DocumentLoader will continue loading data without reconnections. Change-Id: I344d045e59c5de9e1a4aed0002ea122caa92f240 Reviewed-on: https://pdfium-review.googlesource.com/13450 Commit-Queue: Art Snake <art-snake@yandex-team.ru> Reviewed-by: Lei Zhang <thestig@chromium.org>
2018-07-03Roll DEPS for catapult to c61a0380Lei Zhang
https://chromium.googlesource.com/external/github.com/catapult-project/catapult.git/+log/8fbdf9f1..c61a0380 TBR=dsinclair@chromium.org Change-Id: Iba97d430fe2f03e37d3cc533f7509fa8ee92ccb3 Reviewed-on: https://pdfium-review.googlesource.com/36898 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2018-07-03Use unowned ptr in cpdf_stream_accTom Sepez
Change-Id: Ide081e462c83a5a209a2e6462dd12b298993f36f Reviewed-on: https://pdfium-review.googlesource.com/36850 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-07-03Roll third_party/depot_tools/ 869a2857a..5484b866d (244 commits; 34 trivial ↵Lei Zhang
rolls) https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/869a2857a4f3..5484b866dc93 Created with: roll-dep third_party/depot_tools TBR=dsinclair@chromium.org Change-Id: Ia377bf005acafa11357665fc3ee589a3bd166887 Reviewed-on: https://pdfium-review.googlesource.com/36897 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2018-07-03Roll third_party/googletest/src/ 4bd8c4638..ce468a17c (52 commits)Lei Zhang
https://chromium.googlesource.com/external/github.com/google/googletest.git/+log/4bd8c4638ada..ce468a17c434 Created with: roll-dep third_party/googletest/src TBR=dsinclair@chromium.org Change-Id: I35ec51d8184044ce6778b5346901f52b53418360 Reviewed-on: https://pdfium-review.googlesource.com/36896 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2018-07-03Roll tools/memory/ 427f10475..f7b00daf4 (2 commits)Lei Zhang
https://chromium.googlesource.com/chromium/src/tools/memory/+log/427f10475e1a..f7b00daf4df7 Created with: roll-dep tools/memory TBR=dsinclair@chromium.org Change-Id: Ie75566d6c34ecabd9ef423504ef2257e724e5760 Reviewed-on: https://pdfium-review.googlesource.com/36895 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2018-07-03Roll third_party/jinja2/ d34383206..45571de47 (2 commits)Lei Zhang
https://chromium.googlesource.com/chromium/src/third_party/jinja2.git/+log/d34383206fa4..45571de47328 Created with: roll-dep third_party/jinja2 TBR=dsinclair@chromium.org Change-Id: I55bfac63b3166015350230341a2ee53f12e2ccb6 Reviewed-on: https://pdfium-review.googlesource.com/36894 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2018-07-03Roll base/trace_event/common/ 0e9a47d74..211b3ed9d (3 commits)Lei Zhang
https://chromium.googlesource.com/chromium/src/base/trace_event/common.git/+log/0e9a47d74970..211b3ed9d048 Created with: roll-dep base/trace_event/common TBR=dsinclair@chromium.org Change-Id: I38ac2555bbdbc159f81f198596e244806abbe3c7 Reviewed-on: https://pdfium-review.googlesource.com/36893 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2018-07-03Roll third_party/zlib/ 8c371ad77..39b4a6260 (5 commits)Lei Zhang
https://chromium.googlesource.com/chromium/src/third_party/zlib.git/+log/8c371ad77b83..39b4a6260702 Created with: roll-dep third_party/zlib TBR=dsinclair@chromium.org Change-Id: Id5352f7d921e8d752a7f70ee18b11026661f2165 Reviewed-on: https://pdfium-review.googlesource.com/36892 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2018-07-03Forward declare CPDF_SyntaxParser when possible.Lei Zhang
Change-Id: Ib9b30f7f4e1c41b0e2e2c1757252736599055c96 Reviewed-on: https://pdfium-review.googlesource.com/36870 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2018-07-03Use UnownedPtr<> in cfwl_messagekillfocus.hTom Sepez
Also make private member along the way. Change-Id: I08a006a1bcca4e8ca21834dfda695a2d77d0a431 Reviewed-on: https://pdfium-review.googlesource.com/36930 Commit-Queue: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-07-03Use UnownedPtr<> in cfwl_scrollbar.h and cfwl_themebackground.hTom Sepez
Change-Id: Ib65197a9cd9de173de8e77db168dcfbb43669022 Reviewed-on: https://pdfium-review.googlesource.com/36911 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-07-03Use UnownedPtr<> in cxfa_{ffwidgethandler,imagrenderer,loadercontext}.hTom Sepez
Change-Id: I25496c9792a99ca27d2ab84c267770ff941cf921 Reviewed-on: https://pdfium-review.googlesource.com/36912 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-07-03Avoid explicit allocs in fxbarcode matrix classes.Tom Sepez
Other cleanups: Remove unused method. Fold Init() into constructor. Return span<> where possible. Change-Id: Ie38d32efb6e63d86ae24e93684903a6dd900810f Reviewed-on: https://pdfium-review.googlesource.com/36810 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2018-07-03Use more UnownedPtr<> in cfxa_ffpageviewTom Sepez
Change-Id: Ifdb9fb23d61082b7c1b9b93c057e0881959cea2a Reviewed-on: https://pdfium-review.googlesource.com/36530 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-07-03Remove XFA_LAYOUT_INVALIDNODETom Sepez
XFA_LAYOUT_INVALIDNODE is used in place of nullptr, but does not appear to represent a sentinel value distinct from it. Using a non-nullptr value prevents using any kind of smart pointer type in the future. Change-Id: Iab6418b3dc9c3d45780730795496ac07b67de696 Reviewed-on: https://pdfium-review.googlesource.com/36651 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-07-03Add FPDFText_GetTextRenderMode() APIMiklos Vajna
This allows deciding if FPDFPageObj_GetFillColor() or FPDFPageObj_GetStrokeColor() should be used to get the effective color of a text object. Change-Id: Ic6e99a9eb8512b164756da8b5fcd8cd7771271ae Reviewed-on: https://pdfium-review.googlesource.com/36750 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-07-03Use GetPos() and SetPos() in CPDF_SyntaxParser::ReadStream().Lei Zhang
Change-Id: I711508cdffd9756837657390d73b88c2d8c62db5 Reviewed-on: https://pdfium-review.googlesource.com/36891 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Art Snake <art-snake@yandex-team.ru> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-07-03Fix indentation in CPDF_SyntaxParser.Lei Zhang
Change-Id: I293730ea5981ba8e2dca7a522b9036fa62d7cd35 Reviewed-on: https://pdfium-review.googlesource.com/36890 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Art Snake <art-snake@yandex-team.ru> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-07-02Roll DEPS for build to 7ac2934.chromium/3480Lei Zhang
https://chromium.googlesource.com/chromium/src/build/+log/10a93c2c..7ac2934 TBR=dsinclair@chromium.org Change-Id: Ib19b77165fd2cbafbaac73e79ebb1ac4c0a3af70 Reviewed-on: https://pdfium-review.googlesource.com/36832 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2018-07-02Roll Clang to dec27d72.Lei Zhang
AKA roll Clang 332838:335864. https://chromium.googlesource.com/chromium/src/tools/clang/+log/c893c7ee..dec27d72 TBR=dsinclair@chromium.org Change-Id: I41b4cb633b5aa82d2fd9e1e5a7d6b313bba88917 Reviewed-on: https://pdfium-review.googlesource.com/36831 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2018-07-02Kill a malloc/memcpy in cjs_document.cppTom Sepez
Change-Id: Icdbdd1c0e5052490c251009b5b2b31b2c46fb580 Reviewed-on: https://pdfium-review.googlesource.com/36833 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2018-07-02Virtualize Observable<T>::ObservedPtr::OnDestroy() for CPDF_Avail cleanupTom Sepez
This enables more complicated cleanup when an observed object is destroyed. Use it to make documents observable and to allow the CPDF_Avail to cleanup without the need for intermediate class. Change-Id: I3a8e758b7ff542e0a58710eff1ac8017205cbd45 Reviewed-on: https://pdfium-review.googlesource.com/36373 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
2018-07-02Use std::vector<float> in cpdf_expintfunc.cppTom Sepez
Fix some {} along the way. Change-Id: I5277c03328b63e0cead058fc07dc65311d7b97b0 Reviewed-on: https://pdfium-review.googlesource.com/36791 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2018-07-02Access a span properly in DetectSRGB().Lei Zhang
Change-Id: Ifeaac7141bd377daa9cf657149937be22b2aa48a Reviewed-on: https://pdfium-review.googlesource.com/36730 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2018-07-02Check for more integer overflows in CJBig2_TRDProc.Lei Zhang
BUG=chromium:859284 Change-Id: I41ce5de4cca0a863dc6e60b64fd69d36c2672a64 Reviewed-on: https://pdfium-review.googlesource.com/36790 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2018-07-02Use std::vector in one more place in cpdf_colorspace.cppTom Sepez
Change-Id: Ifbce02a65b68b0526866d5a08a9edf58bd89e434 Reviewed-on: https://pdfium-review.googlesource.com/36792 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
2018-07-02Comment some raw pointers that cant become UnownedPtr<>.Tom Sepez
These appear in compile-time const data. Adding the comment makes it easier to see what work remains when using grep. Change-Id: Ibb5fe920dc9fc99dd4c866f9ddf800a58f6a67a8 Reviewed-on: https://pdfium-review.googlesource.com/36690 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
2018-07-02Add pdfium::Vector2D<>()Tom Sepez
Many of the FX_Alloc's that have not been converted to std::vector are using FX_Alloc2D and the safe math it performs under the covers. Make an equivalent function for returning a vector to avoid burdening callers with the safe math equivalents. Use it in one place. Change-Id: Ie4a280351b7370b755f2a1928f8b2d84fe007c03 Reviewed-on: https://pdfium-review.googlesource.com/36770 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2018-07-02Use UnownedPtr<> in cfwl_event.h and cfwl_message.hTom Sepez
Change-Id: I1981eb23006db203e845e954a7847cfa992d5e03 Reviewed-on: https://pdfium-review.googlesource.com/36710 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
2018-06-29Use UnownedPtr<CXFA_Node> or comment raw pointers as tree nodes.chromium/3479chromium/3478Tom Sepez
Part 2. Change-Id: I26fe434dac3c3f5186414440acc2a495a5f14091 Reviewed-on: https://pdfium-review.googlesource.com/36670 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2018-06-29Use UnownedPtr to CXFA_Node from outside the treechromium/3477Tom Sepez
Comment raw pointers subject to nondeterministic tree destruction order as such to avoid re-attempting to convert to the unowned mechanism. Change-Id: Ia9fe3c8a2729dc1e2b1de4a8c62ae3d2c3d7ec0a Reviewed-on: https://pdfium-review.googlesource.com/36635 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2018-06-29Use pdfium::span with CPDF_IccProfile and friends.Lei Zhang
Change-Id: I88d3e86a1dad75ef9c6bfb3401af6606479031a7 Reviewed-on: https://pdfium-review.googlesource.com/36634 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
2018-06-29Remove out param from CCodec_IccModule::CreateTransform_sRGB().Lei Zhang
Its return value contains the same data. Change-Id: I2bf4e72faf978e5d491bec573babc8099cda4e5a Reviewed-on: https://pdfium-review.googlesource.com/36633 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
2018-06-29Add ScopedCmsProfile.Lei Zhang
Using this unique_ptr avoids the need for explicit cmsCloseProfile() calls in CCodec_IccModule::CreateTransform_sRGB(). Change-Id: I5b2d5d9800ea344aceb0ed5c6b745a2925bab9c9 Reviewed-on: https://pdfium-review.googlesource.com/36632 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
2018-06-29Clean up CLcmsCmm.Lei Zhang
Make members const and private. Fix nits. Change-Id: I945bc26438f8fbd6904dc1b15513ab9e51170dc7 Reviewed-on: https://pdfium-review.googlesource.com/36631 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
2018-06-29Delete dead code in CCodec_IccModule.Lei Zhang
Change-Id: I711654cfb1ab43a5d17afbe6f877c1860dd1b7f0 Reviewed-on: https://pdfium-review.googlesource.com/36630 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
2018-06-29Better determine if ICC colorspaces can be used for blending.Lei Zhang
Implement CPDF_ColorSpace::IsNormal() and check it when rendering. While IsNormal() is trivial for most colorspaces, it needs to be implemented separately for ICC colorspaces. This fixes a rendering regression from commit 1c0de38c. BUG=chromium:847346 Change-Id: Iaafed3f8ee40b26ac2cbfbdf2251407f7935311b Reviewed-on: https://pdfium-review.googlesource.com/36571 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2018-06-29Use more UnownedPtr<> in cxfa_ffwidgetTom Sepez
Change-Id: Iae962711f522ad52e77f19201d00d9ab86096ca4 Reviewed-on: https://pdfium-review.googlesource.com/36510 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2018-06-29Limit image size in CJBig2_PDDProc.Lei Zhang
CJBig2_PDDProc internally creates a CJBig2_GRDProc to create an image. If the image is too big, then processing it can use up too much memory. BUG=chromium:857106 Change-Id: I06a9eaed6941be1cbb7481d21048e6a1681696b7 Reviewed-on: https://pdfium-review.googlesource.com/36490 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-06-29Clean up CJBig2_PDDProc.Lei Zhang
Change-Id: Ia83ac5dae0dedf55f1b0f0cf2a728c64474f72db Reviewed-on: https://pdfium-review.googlesource.com/36450 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-06-29Implement CPDF_HintsTable::PageInfo.Artem Strygin
Merge page info data from Hints Table into CPDF_HintsTable::PageInfo class. Change-Id: I468996346ee153e3fa8ada6a83770614362d1b92 Reviewed-on: https://pdfium-review.googlesource.com/15813 Commit-Queue: Art Snake <art-snake@yandex-team.ru> Reviewed-by: Lei Zhang <thestig@chromium.org>
2018-06-29Revert "Simplify CPDF_PageOrganizer::UpdateReference method."Lei Zhang
This reverts commit 35ab1bd0328a244cc2f6dcde2822c8117738b01d. Reason for revert: Causing crashes and bad flattening. BUG=chromium:858921,chromium:858952 Original change's description: > Simplify CPDF_PageOrganizer::UpdateReference method. > > Change-Id: I52fe66472bdc2a61d7074f77627a3ee1d5646255 > Reviewed-on: https://pdfium-review.googlesource.com/35611 > Reviewed-by: dsinclair <dsinclair@chromium.org> > Commit-Queue: Art Snake <art-snake@yandex-team.ru> TBR=dsinclair@chromium.org,art-snake@yandex-team.ru Change-Id: I9a3635140867793e7109c15b64d66ec1d1a8b1f9 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://pdfium-review.googlesource.com/36550 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2018-06-28Fix logic error in CJX_InstanceManager::count()chromium/3476Tom Sepez
Calling the Setter when the Getter was intended results in a segv when accessing the empty return value. Bug: 353450 Change-Id: If3d35de1c5e2a24d11690fd323253f1103ee9ab5 Reviewed-on: https://pdfium-review.googlesource.com/36431 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
2018-06-28Remove redundant FPDF_PAGEOBJECT null-ness checks.Lei Zhang
CPDFTextObjectFromFPDFPageObject() will take the FPDF_PAGEOBJECT and performs the same check anyway. Change-Id: I6535ab749d5a3222c6f2e6fba648f7ee515d3ddc Reviewed-on: https://pdfium-review.googlesource.com/36372 Reviewed-by: Nicolás Peña Moreno <npm@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2018-06-28Simplify CPDF_PageOrganizer::UpdateReference method.Artem Strygin
Change-Id: I52fe66472bdc2a61d7074f77627a3ee1d5646255 Reviewed-on: https://pdfium-review.googlesource.com/35611 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Art Snake <art-snake@yandex-team.ru>