summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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>
2018-06-28Use unique_ptr in ccodec_tiffmodule.cppTom Sepez
Change-Id: I9c829a09a1c5ecdf011b1a9804a65e77b0e199b7 Reviewed-on: https://pdfium-review.googlesource.com/36371 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-06-28Use spans and std::unique_ptrs in fx_codec_flate.cppTom Sepez
Also avoid needless use of void* in place of actual type. Also free context with free function corresponding to its allocator, in case the m_ functions change down the road. Change-Id: I384f6b309c2522eb0faafbe73b94cc3bf582dbb8 Reviewed-on: https://pdfium-review.googlesource.com/36370 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-06-28Replace DCHECKs with ASSERTs.Lei Zhang
Change-Id: I0f2bf1cb44b4cba872a719f0a75d8776f413812c Reviewed-on: https://pdfium-review.googlesource.com/36250 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-06-28Use UnownedPtr for document within CPDF_XXXAvail.Artem Strygin
Change-Id: I9ded1664564c330132f43047293e18696d77fc7d Reviewed-on: https://pdfium-review.googlesource.com/36310 Commit-Queue: Art Snake <art-snake@yandex-team.ru> Reviewed-by: Tom Sepez <tsepez@chromium.org>
2018-06-27Remove useless code.Artem Strygin
No longer needed after commit 20eca1e3 Change-Id: Ica4f67d2a2df760ebf9fd507283791271ad407cd Reviewed-on: https://pdfium-review.googlesource.com/36351 Commit-Queue: Art Snake <art-snake@yandex-team.ru> Reviewed-by: Lei Zhang <thestig@chromium.org>
2018-06-27Remove CPDF_Parser::ParseIndirectObjectAtByStrict().Lei Zhang
Commit 0145b89a removed the only caller. Change-Id: Ib3b7eaa0bc8be986f7d290f1efaea519d68daf6b Reviewed-on: https://pdfium-review.googlesource.com/36251 Reviewed-by: Art Snake <art-snake@yandex-team.ru> Commit-Queue: Lei Zhang <thestig@chromium.org>
2018-06-27Add fxcrt::AutoRestorer<T>::AbandonRestoration().chromium/3475Tom Sepez
Kinda like reaching a commit point, makes going forward more useful. Change-Id: I7695b6e627d4cd8ed2bccb667d0cabd7f42c7b1c Reviewed-on: https://pdfium-review.googlesource.com/35970 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
2018-06-27Update third_party/base/template_util.h.Lei Zhang
Copy over Chromium's base/template_util.h from r538740. Change-Id: I7553570ef14dd5c803edbcd544b08c72b4f7123b Reviewed-on: https://pdfium-review.googlesource.com/34670 Reviewed-by: dsinclair <dsinclair@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2018-06-27Remove unused m_bGif* fields from CFX_DIBAttributeTom Sepez
Two are completely unused, and two are set but never referenced. Change-Id: I0173123e33a4240aef9ed24aaee9e1df6cf9aa0a Reviewed-on: https://pdfium-review.googlesource.com/36290 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
2018-06-27Rework of loading of CPDF_Document.Artem Strygin
Improve CPDF_Document interface. Fix relationship between CPDF_Document and CPDF_Parser. This CL changes CPDF_Document to internally create the CPDF_Parser and removes the need for the CPDF_Parser to know about the CPDF_Document. Change-Id: Iec7aef19575c90f30b9a6c919dfd4f4417e4caf2 Reviewed-on: https://pdfium-review.googlesource.com/35630 Commit-Queue: Art Snake <art-snake@yandex-team.ru> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-06-27Use spans and UnownedPtrs in cjpx_decoder.hTom Sepez
Change-Id: I1c9f8221ce7a0e42407e93deec481be2e941cfde Reviewed-on: https://pdfium-review.googlesource.com/36210 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-06-27Remove CXFA_FField::UnloadWidget().Tom Sepez
It is only called during the destructor, and does things that the destructor would automatically do, like calling into the superclass. So just use destructors. Change-Id: I1196817798eeca99914b44ddee1f75781e682211 Reviewed-on: https://pdfium-review.googlesource.com/36231 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-06-27Implement CPDF_CrossRefTableArtem Strygin
Change-Id: I5ac61ab323adb5eec2de8660064fff95ee877b5e Reviewed-on: https://pdfium-review.googlesource.com/35432 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Art Snake <art-snake@yandex-team.ru>
2018-06-27Use unowned ptr for IFWL_ delegatesTom Sepez
Change-Id: I1e9059242dad254394b73c6fddb010b182e969f0 Reviewed-on: https://pdfium-review.googlesource.com/36230 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-06-26Use UnownedPtr<> in cpdf_streamcontentparserchromium/3474Tom Sepez
Change-Id: I558ac625d842d1b3d9dfdaf4d7661d4c02c6244a Reviewed-on: https://pdfium-review.googlesource.com/36133 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
2018-06-26Use UnownedPtr<> in CPDF_FontTom Sepez
Change-Id: I5dc72c48ffd50836dd8c6a21e23568bc8703ee5a Reviewed-on: https://pdfium-review.googlesource.com/36132 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
2018-06-26Use unowned ptr in CPDF_CmapTom Sepez
Change-Id: Id6551957405605cf273d5d100b6db9c27ecc6e7c Reviewed-on: https://pdfium-review.googlesource.com/36131 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
2018-06-26Use pdfium::span<> in cpdf_fontglobals.hTom Sepez
Required moving some sizes to .h file for default construction of spans from c-style arrays. Change-Id: I45c42103f3575bc83e57a085ad4e8f16698468d3 Reviewed-on: https://pdfium-review.googlesource.com/36190 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
2018-06-26Assert that tab width assumption holds in CFX_RTFBreak.Henrique Nakashima
Bug: chromium:844367 Change-Id: I3cbe5d97a913c734c3d54657a2fb47b30cc362fe Reviewed-on: https://pdfium-review.googlesource.com/36191 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-06-26Add some more consts to unowned pointers.Tom Sepez
Ideally, unowned ptrs might well be const, as updating something through an unowned reference is best avoided. Change-Id: Ida8111ffe0ee1e30bbf6b7718b0929dfb5cafdff Reviewed-on: https://pdfium-review.googlesource.com/36050 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
2018-06-26Use pdfium::span in CPDF_CID2UnicodeMap.Tom Sepez
Change-Id: Ie63f622674d9085fa45642c15e7ee8b22ca98555 Reviewed-on: https://pdfium-review.googlesource.com/36130 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-06-26Fix Integer-overflow in CFX_RTFBreak::AppendChar_TabHenrique Nakashima
Bug: chromium:844367 Change-Id: Id8185ea0219c03b4f8683362a3c2a45d481a5cfb Reviewed-on: https://pdfium-review.googlesource.com/36170 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2018-06-26Simplify CPDF_Parser::RebuildCrossRef.Artem Strygin
Use CPDF_SyntaxParser to read data, instead manual cache. Simplify merging trailers logic. Change-Id: Icaa569f1082cde6dc9437a375c5c27e187fd6c79 Reviewed-on: https://pdfium-review.googlesource.com/35431 Commit-Queue: Art Snake <art-snake@yandex-team.ru> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-06-26Unify CPDF_Document loading methods.Artem Strygin
Change-Id: Ibf7aee942027adace7ec0831aefe0fe8c28e41cc Reviewed-on: https://pdfium-review.googlesource.com/35610 Commit-Queue: Art Snake <art-snake@yandex-team.ru> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-06-26Add test which verify, that "Info" from linearized doc is correctly saved.Artem Strygin
Change-Id: Ib0ee1c2b0a2def650711c87b4eb04a9f88470944 Reviewed-on: https://pdfium-review.googlesource.com/35550 Commit-Queue: Art Snake <art-snake@yandex-team.ru> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-06-26Implement CPDF_ObjStream.Artem Strygin
It is allow do not store raw objects streams within CPDF_Document for reduce memory usage. Change-Id: I4377bd5119d87314e76f14255171618cf6ee533d Reviewed-on: https://pdfium-review.googlesource.com/35430 Reviewed-by: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Art Snake <art-snake@yandex-team.ru>
2018-06-26Write pixel .evt test for dynamic_list_box_allow_multiple_selection.Henrique Nakashima
Improve the .evt mechanism to accept mouse clicks with modifiers (such as shift). Bug: pdfium:1105 Change-Id: I6e9c2c1f66b7fde250b55b41ccdf115a311f44f7 Reviewed-on: https://pdfium-review.googlesource.com/36091 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-06-26Make CPDF_Document::m_pRootDict an UnownedPtr<>.Tom Sepez
In turn, this requires making some of the tests use an indirect root dictionary so as to satisfy the lifetime requirements. Change-Id: Ibdbe294a76200d4486134e5848c169a6c2d802bf Reviewed-on: https://pdfium-review.googlesource.com/36110 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-06-26Add FPDFTextObj_GetFontSize() APIMiklos Vajna
In contrast with FPDFText_GetFontSize(), this exposes the font size of the text object according to the text state, rather than the font size of a particular character. Change-Id: Iac88d1aea8fb6bb5522bdaf01363aa6d32025b8f Reviewed-on: https://pdfium-review.googlesource.com/35931 Reviewed-by: Nicolás Peña Moreno <npm@chromium.org> Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
2018-06-26Use ObservedPtr for CJS_Field::m_pJSFieldTom Sepez
Bug: 856354 Change-Id: Ic0ac4d189dff6f4688a6c5feb745fe8c5a5ed4bb Reviewed-on: https://pdfium-review.googlesource.com/36150 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-06-26Fix uninit value in CFX_CSSComputedStyle::InheritedData.Lei Zhang
BUG=chromium:856054 Change-Id: Ieacb7be324f290c91623ed1bd97744150fbfa6e7 Reviewed-on: https://pdfium-review.googlesource.com/36090 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-06-25Clean up CPDF_StreamContentParser::AddTextObject().chromium/3473Lei Zhang
Change-Id: I1794848607f2db3f1ef39dbd221b7219feb9254c Reviewed-on: https://pdfium-review.googlesource.com/35990 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>