Age | Commit message (Collapse) | Author |
|
Allows indexing with better bounds-checking to occur. Some small
modifications are required to deal with PDFium being intentionally
held at C++11 compliance, not C++14.
Use in one place as check on correctness.
Change-Id: Id2875cf0a93980112bc536a93c4f9ec5306c0dac
Reviewed-on: https://pdfium-review.googlesource.com/29671
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Chris Palmer <palmer@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
This CL decreases the m_iXMLPlaneSize in the CFX_XMLSyntaxParser from
32*1024 to 1024 bytes. This plane size is the size of the chunks we read
the XML file in. The issue with having a large plane size is inside the
CFX_SeekableStreamProxy::ReadString we allocate a vector of the
min(planeSize, remaining_bytes). This means, we could potentially be
allocating 32*1024 bytes to read in a single character.
For the test in the attached bug the runtime went from 12s to 25ms.
Bug: chromium:813195
Change-Id: Id57e619b7a118d45e3fed491ad81e86a4b1cacb8
Reviewed-on: https://pdfium-review.googlesource.com/29750
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This might make the memory tools more effective in finding OOBs.
Change-Id: Id093bb0a88c37954c80d612ac00b5a168e75bdbf
Reviewed-on: https://pdfium-review.googlesource.com/29550
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
|
|
Found by ClangTidy.
BUG=pdfium:1040
Change-Id: I6d7cb26ae2d12f5650f73596d0b991234b076f57
Reviewed-on: https://pdfium-review.googlesource.com/28712
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
|
|
Change-Id: I07f4363046be920816e8d0dae766c7af833284db
Reviewed-on: https://pdfium-review.googlesource.com/28582
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
When comparing L"a" vs L"ab", the return value should be -1 or 1, not 0
or 1. Add a regression test for this case.
BUG=chromium:821454
Change-Id: I38e2d7ca62319b7a62f8d8afeb231b8ed3bd9e86
Reviewed-on: https://pdfium-review.googlesource.com/28570
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
|
|
This replaces them with equivalent FXSYS_*wlower/upper methods, which
uses ICU to perform the correct Unicode operations.
BUG=pdfium:1035
Change-Id: I432db5bef9eda71762016b619d93155949d054db
Reviewed-on: https://pdfium-review.googlesource.com/28530
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
|
|
This replaces it with FXSYS_iswspace, which uses ICU to perform
correct Unicode space checking.
BUG=pdfium:1035
Change-Id: I7a4ed01a6b50f56a6f9d1434a7f0b01596fe42db
Reviewed-on: https://pdfium-review.googlesource.com/28510
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
|
|
Instances are either replaced with FXSYS_iswalpha, which calls out to
the ICU library to do the proper Unicode operations, or have been
converted to a isascii && isalpha pair, if ASCII alpha is actually
what was wanted.
BUG=pdfium:1035
Change-Id: I971ff639ee1ff818ad08793a1900a8bcbb0a3e04
Reviewed-on: https://pdfium-review.googlesource.com/28450
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
|
|
Instances are either replaced with FXSYS_iswalnum, which calls out to
the ICU library to do the proper Unicode operations, or have been
converted to a isascii && isalnum pair, if ASCII alnum is actually
what was wanted.
BUG=pdfium:1035
Change-Id: I959ec8739a4d020e61562180393ab8113a81577c
Reviewed-on: https://pdfium-review.googlesource.com/28430
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
|
|
A number of our character helper methods take in wide character types,
but only do tests/operations on the ASCII range of characters. As a
very quick first pass I am renaming all of the foot-gun methods to
explictly call out this behaviour, while I do a bigger
cleanup/refactor.
BUG=pdfium:1035
Change-Id: Ia035dfa1cb6812fa6d45155c4565475032c4c165
Reviewed-on: https://pdfium-review.googlesource.com/28330
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
This CL renames the 3 IFX files in core/fxcrt to Iface instead.
Change-Id: I7cee6836650b71bc5c5729a8147fda62f0910fe3
Reviewed-on: https://pdfium-review.googlesource.com/27970
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
Get things out of the .data section.
Change-Id: I375cf00186a3d5d8d10f5d147bd4b692f5db3683
Reviewed-on: https://pdfium-review.googlesource.com/27130
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
This is for debugging, so gated by #ifndef NDEBUG.
Also make label the printed values to make them clear and
differentiate top>bottom and bottom>top rect systems.
Change-Id: I2d816b6b8b1be5fb5464630e771d200f2534917e
Reviewed-on: https://pdfium-review.googlesource.com/26911
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
|
|
Change-Id: I1fd4bf85cd709de1c14ed2895d045018f79bc61f
Reviewed-on: https://pdfium-review.googlesource.com/26950
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
|
|
This CL removes the HasOwnXML flag from the CXFA_Node objects and
instead uses a MaybeOwned pointer to keep track of the XML nodes.
Change-Id: Ie678258247ec21ecb15c639647b189e140586d25
Reviewed-on: https://pdfium-review.googlesource.com/26811
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This CL adds the list_child_ member into CFX_XMLNode to keep it
consistent with other tree's in the system.
Change-Id: I2e64f11fb9c7df40dd3467edcce177fc492d2cd2
Reviewed-on: https://pdfium-review.googlesource.com/26670
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This CL removes the switch from SaveXMLNode and moves the required code
into override methods in the child classes. The method is renamed from
SaveXMLNode to just Save.
Change-Id: I2011b80525e99635c573b4e0cf977e94f6b7cea6
Reviewed-on: https://pdfium-review.googlesource.com/26590
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This CL cleans up hte CFX_XMLNode pointers. Each pointer has been
renamed to make the usage clearer, the NodeItems method has been removed
in favour of distinct accessors and the node pointers have been made
private.
Change-Id: I5459a77a0ae93b08741a0cd59266ef9c81ddad75
Reviewed-on: https://pdfium-review.googlesource.com/26550
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
The CFX_XMLDoc::SaveXMLNode method is almost an exact copy of the
CFX_XMLNode::SaveXMLNode. This CL removes the XMLDoc variant and calls
the XMLNode method directly.
This Removes the need to pass the CXFA_DocumentParser into CXFA_Document
and we can instead pass in the CXFA_FFNotify object directly.
Change-Id: Ic3c8c66375483fe73b44dd84064a1b71b039d61c
Reviewed-on: https://pdfium-review.googlesource.com/26530
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
This CL removes unused methods from CFX_XMLNode, adds an AppendChild to
handle the case of a -1 index to InsertChildNode, removes the
InsertChildNode return value which is unused and cleans up various other
things.
Change-Id: I3a022e4dc2afffa6893ad11014034dd7ed301f13
Reviewed-on: https://pdfium-review.googlesource.com/26510
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
This also adds a Seek method to CFX_MemoryStream
BUG=pdfium:1007
Change-Id: I2c7e1d3b6d8aff36e302014cb2e8ffc0f23ef7c4
Reviewed-on: https://pdfium-review.googlesource.com/26230
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
|
|
FX_AllocOrDie, FX_AllocOrDie2D and FX_ReallocOrDie contained
unreachable code which in jumbo builds with some Visual Studio
versions/configurations resulted in a compiler warning.
By reordering the code, the unreachable code can be removed.
Bug: pdfium:964
Change-Id: I8c040a31ea6af0ca896d8f68297e263719d6bdfa
Reviewed-on: https://pdfium-review.googlesource.com/26190
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
Didn't find any bugs, but also doesn't require much boilerplate.
Bug: TODO
Change-Id: I5f30183c55216f1333c79fcb46476d281720873e
Reviewed-on: https://pdfium-review.googlesource.com/26210
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
|
|
Bug: chromium:804907
Change-Id: Id9b496f14134631d3308c073b8780bf18c2305c8
Reviewed-on: https://pdfium-review.googlesource.com/25270
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
|
|
This converts the existing class naming and references. The ::Entry
struct is converted to ::Property. The GetBy* methods are renamed to
GetPropertyBy*.
Free functions from other parts of the CSS code base are merged into
the class. GetCSSPropertyValueByName becomes ::GetPropertyValueByName
with a return value of ::PropertyValue*. GetCSSLengthUnitByName
becomes ::GetLengthUnitByName with a return value of
::LengthUnit*. GetCSSColorByName becomes ::GetColorByName with a
return value of ::Color*.
BUG=pdfium:998
Change-Id: I5b78c69d0fe53ad714ac3545cfdda8c26b95e4d5
Reviewed-on: https://pdfium-review.googlesource.com/25010
Reviewed-by: dsinclair <dsinclair@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
|
|
BUG=pdfium:798
Change-Id: I9f0cc6fa095f111d6c43034b55f5e12e2bcab059
Reviewed-on: https://pdfium-review.googlesource.com/24716
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
|
|
BUG=pdfium:798
Change-Id: I97d0dc566f95736ef12eda90ee0bf336cba42098
Reviewed-on: https://pdfium-review.googlesource.com/24715
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
|
|
BUG=pdfium:798
Change-Id: I1e50aeffa439063bc9eb2640af457e33c4e3c46c
Reviewed-on: https://pdfium-review.googlesource.com/24713
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
Reorganizes the free functions to be static methods on a
class. Converts the Table struct to be an Entry struct defined in the
class.
Change-Id: I9eca0dfb15187af10cbe2dc4b4c2756d55d957be
Reviewed-on: https://pdfium-review.googlesource.com/24712
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
This cleans up the entries in the table to no longer have a marker for
size, and also removes a hand rolled search. This prevents an out of
bounds issue that had been reported and addresses another potential
out of bounds issue.
BUG=chromium:807214
Change-Id: I3d3ab5a3a174dd4dcec56fa7ee7a0e6c2805bfaa
Reviewed-on: https://pdfium-review.googlesource.com/24690
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
|
|
This reverts commit 77d8ed02c7e97471ceccee5abbabeb2fdea413c7.
Reason for revert: <INSERT REASONING HERE>
Original change's description:
> Revert "Use UnownedPtr instead of T* in MaybeOwned."
>
> This reverts commit e563e8352139e4852a955e319023b09f2844aee9.
>
> Reason for revert: <INSERT REASONING HERE>
>
> Original change's description:
> > Use UnownedPtr instead of T* in MaybeOwned.
> >
> > Always check the liftime in the unowned case. Doing so unearthed
> > the following issues:
> >
> > Transient lifetime issue in jbig2_image when doing realloc().
> > Stale (but unused) dictionary pointer in CPDF_Image.
> > Destruction order in error branch in cpdf_dibsource.cpp
> >
> > Change-Id: I12b758aafeefedc7abe1e8b21a18db959929e95f
> > Reviewed-on: https://pdfium-review.googlesource.com/24552
> > Commit-Queue: Tom Sepez <tsepez@chromium.org>
> > Reviewed-by: dsinclair <dsinclair@chromium.org>
>
> TBR=thestig@chromium.org,tsepez@chromium.org,dsinclair@chromium.org
>
> Change-Id: I3c56ee6ab502da90e3adb7507dbc8cc92f090140
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://pdfium-review.googlesource.com/24670
> Reviewed-by: Tom Sepez <tsepez@chromium.org>
> Commit-Queue: Tom Sepez <tsepez@chromium.org>
TBR=thestig@chromium.org,tsepez@chromium.org,dsinclair@chromium.org
Change-Id: I0ccbbeab8be6cadc9b3a5bfefe2aca733654342f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://pdfium-review.googlesource.com/24671
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
|
|
This reverts commit e563e8352139e4852a955e319023b09f2844aee9.
Reason for revert: <INSERT REASONING HERE>
Original change's description:
> Use UnownedPtr instead of T* in MaybeOwned.
>
> Always check the liftime in the unowned case. Doing so unearthed
> the following issues:
>
> Transient lifetime issue in jbig2_image when doing realloc().
> Stale (but unused) dictionary pointer in CPDF_Image.
> Destruction order in error branch in cpdf_dibsource.cpp
>
> Change-Id: I12b758aafeefedc7abe1e8b21a18db959929e95f
> Reviewed-on: https://pdfium-review.googlesource.com/24552
> Commit-Queue: Tom Sepez <tsepez@chromium.org>
> Reviewed-by: dsinclair <dsinclair@chromium.org>
TBR=thestig@chromium.org,tsepez@chromium.org,dsinclair@chromium.org
Change-Id: I3c56ee6ab502da90e3adb7507dbc8cc92f090140
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://pdfium-review.googlesource.com/24670
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
|
|
Always check the liftime in the unowned case. Doing so unearthed
the following issues:
Transient lifetime issue in jbig2_image when doing realloc().
Stale (but unused) dictionary pointer in CPDF_Image.
Destruction order in error branch in cpdf_dibsource.cpp
Change-Id: I12b758aafeefedc7abe1e8b21a18db959929e95f
Reviewed-on: https://pdfium-review.googlesource.com/24552
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
Bug: pdfium:987
Change-Id: Ieee2850ceec12d6fff3ba6e0fb5a775e62c5c76e
Reviewed-on: https://pdfium-review.googlesource.com/23230
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Reviewed-by: Nicolás Peña Moreno <npm@chromium.org>
|
|
The translations were in the opposite order they should be.
First the specified (x, y) coord needs to be translated to the
origin, then rotation should be applied, then the translation should
be reversed. To translate (x, y) to the origin, the initial
translation should be Tx = -x, Ty = -y.
Bug: pdfium:987
Change-Id: I7f873c6a20858bf7fd03e5fdb49020b196b44a1d
Reviewed-on: https://pdfium-review.googlesource.com/23210
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Reviewed-by: Nicolás Peña Moreno <npm@chromium.org>
Reviewed-by: Shirleen Lou <xlou@chromium.org>
|
|
Change-Id: I46eb5789b303040f4e62d39882f32537f637e01a
Reviewed-on: https://pdfium-review.googlesource.com/22970
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
|
|
TBR=hnakashima@chromium.org
Change-Id: I50877f5a2ff3fb6f48630019d2481aa451945118
Reviewed-on: https://pdfium-review.googlesource.com/22774
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
|
|
This helps debugging.
Change-Id: I4d14dd5975d8d8f4566009ed4a4127f9c56d36dd
Reviewed-on: https://pdfium-review.googlesource.com/22790
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
|
|
BUG=pdfium:964
Change-Id: Ifde885861aeafac803948bd537de826e2a3fddca
Reviewed-on: https://pdfium-review.googlesource.com/22732
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
They should only expect death in ASAN builds.
BUG=pdfium:958
Change-Id: I62bd51151238bc57abb5fe700985c33d7fde3e28
Reviewed-on: https://pdfium-review.googlesource.com/21930
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
This CL removes the CountedObject from SharedCopyOnWrite and instead
converts the items being shared into Retainable subclasses.
BUG: chromium:792372
Change-Id: I9570a521f2fc2434013c3ccb103273bdd2440bb8
Reviewed-on: https://pdfium-review.googlesource.com/22010
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
Change-Id: I92420cb9333ad79246a855b0af9a27348b27ceb0
Reviewed-on: https://pdfium-review.googlesource.com/22312
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
|
|
Change-Id: I29769f78eaad10c6a8b79e27524336c4f330377e
Reviewed-on: https://pdfium-review.googlesource.com/22258
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
|
|
Fix or optimize some ByteString::Compare() callers.
Change-Id: I0fde91afc3d17fe160b46d00a441ad05e56377e7
Reviewed-on: https://pdfium-review.googlesource.com/20851
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
|
|
Change-Id: I8edb14c024860c66b5e6c014136393e71e38387d
Reviewed-on: https://pdfium-review.googlesource.com/21570
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
|
|
BUG=pdfium:541
Change-Id: Id401af00e4cffebb49e187bf3a445439ce8c1082
Reviewed-on: https://pdfium-review.googlesource.com/21074
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
Move FX_XML_SplitQualifiedName() out of CXML_Parser, and add
CXML_Element::MatchesElement().
Change-Id: I34adc6f3b19e745ae33db0edf65184346cc1c13f
Reviewed-on: https://pdfium-review.googlesource.com/21073
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
Change-Id: I9ebacd18252a837f1f5f13ccaec19b196bacc3ae
Reviewed-on: https://pdfium-review.googlesource.com/21072
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
It has an unused parameter.
Change-Id: Iae92b8f84bc560055cb0cd730a0fe52c8bd9dd79
Reviewed-on: https://pdfium-review.googlesource.com/21071
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|