summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-02-22Jumbo fixesDan Sinclair
Change-Id: I5b81a483c57b97598a0d36ceaebc382016e95ae3 Reviewed-on: https://pdfium-review.googlesource.com/27591 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-02-22Add namespaces to duplicated Skia code.Jonathan Feinberg
When pdfium is imported into Google's internal repository, the recently copied Skia decimal formatting code causes only-defined-once violations because many Google internal projects depends on Skia through Google's own copy. This patch puts pdfium's private copy of the needed function into a namespace. Change-Id: Id102b17f6f4652e4a50c4ff75825468fc3d90727 Reviewed-on: https://pdfium-review.googlesource.com/27530 Reviewed-by: Hal Canary <halcanary@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-02-21[formcalc] Cleanup if expression parsing.Dan Sinclair
This CL simplifies the if expression parsing. The elseif construct has been split into its own list of IfExpressions and no longer gets stuffed into the elseExpression. A loop was added into the output methods for the elseif expressions, which also means we can go from having: if () { } else { if () { } else { } } to if () { } else if () { } else { } Which is a bit nicer. Change-Id: I6edf75215500d6a32a8d7218d477b6960f03de51 Reviewed-on: https://pdfium-review.googlesource.com/27571 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-02-21[formcalc] Add elseif expression to parser testDan Sinclair
This extends the test case for slightly more coverage. Change-Id: I97613c2d8df416b37718ff747d218dd61ea02b37 Reviewed-on: https://pdfium-review.googlesource.com/27570 Commit-Queue: dsinclair <dsinclair@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-02-21[formcalc] Minor parser cleanupschromium/3352Dan Sinclair
This CL makes minor clarity cleanups to the formcalc parser and attempts to record the productions each method is processing. Change-Id: Ie12bb55647abf06251d1734fd05d08a964a32ebc Reviewed-on: https://pdfium-review.googlesource.com/27550 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-02-21[formcalc] Use default destructorsDan Sinclair
This CL switches the empty destructors in the FormCalc expressions to use default. Change-Id: I0a2ea520c89a96d29a2e2564572a7cf345f9f31a Reviewed-on: https://pdfium-review.googlesource.com/27510 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-02-21[formcalc] Remove the ParseBlockExpression methodDan Sinclair
In all the places we call ParseBlockExpression we really mean to parse an ExpressionList. Using ParseBlockExpression is confusing because the formcalc grammar has a BlockExpression defined which corresponds to our ParseDoExpression. This CL converts the use of ParseBlockExpression into calls to ParseExpressionList and then builds the BlockExpression class as needed. Change-Id: Iab9b6e783f01d35df905539d4dbc20ba18a7b0f9 Reviewed-on: https://pdfium-review.googlesource.com/27470 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-02-21Roll pdfium/third_party/freetype/src/ 4a03f1744..713d68ee9 (3 commits)Lei Zhang
https://chromium.googlesource.com/chromium/src/third_party/freetype2.git/+log/4a03f17449ae..713d68ee9f47 $ git log 4a03f1744..713d68ee9 --date=short --no-merges --format='%ad %ae %s' 2018-02-17 wl [sfnt] Prefer `CBDT'/`CBLC' over `glyf' table (#53154). 2018-02-17 wl Split off ChangeLog.28. 2018-02-17 wl s/sub-pixel/subpixel/. Created with: roll-dep pdfium/third_party/freetype/src BUG=pdfium:1016 Change-Id: Ib7846b5234cc1cf5a85cf557cc37f74144b592c6 Reviewed-on: https://pdfium-review.googlesource.com/27491 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-02-21Download ciopfs from a hook in win/cross builds.Lei Zhang
This is PDFium's copy of https://crrev.com/533804 Change-Id: I6e0c3e0fbb36fa9da9cb2e4e18c413c92824c46a Reviewed-on: https://pdfium-review.googlesource.com/27490 Reviewed-by: Nico Weber <thakis@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
2018-02-20[formcalc] Remove unused expression typeDan Sinclair
The expression type is no longer used, removed. Change-Id: I4c8b17ed1644560afd7fc87a7fb6c7d893b9de5c Reviewed-on: https://pdfium-review.googlesource.com/27450 Reviewed-by: Lei Zhang <thestig@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-02-20[formcalc] Treat elseif and else the same during outputDan Sinclair
This CL combines the elseif and else output code for formcalc. This causes an extra set of {}'s to be output in the else case but should be syntactically the same. Change-Id: Ie30a51efadae2034d117f4bf280b9f7abc950a23 Reviewed-on: https://pdfium-review.googlesource.com/27431 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-02-20[formcalc] Do not convert if to an identifierDan Sinclair
The if token in formcalc is an internal keyword and can not be used as an identifier. The current if parsing code will turn if into an identifier if it fails to find the 'then' statement after the argument list. This should be a failed parse instead of coverting if to an identifier and resetting the lexer. Change-Id: Ieebf6a1aabc27482fcaeaf7a9bd4be40fc01e9ad Reviewed-on: https://pdfium-review.googlesource.com/27430 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-02-20[formcalc] Remove unused line parameterDan Sinclair
The recorded line number from the formcalc parse is never used. This Cl removes the parameter and removes the need to pass it through all of the constructors. Change-Id: Ice716cc4880dd17dc05bffcdce1dc1e4745108ea Reviewed-on: https://pdfium-review.googlesource.com/27412 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-02-20[formcalc] Split literal parsing to its own methodDan Sinclair
This Cl moves the code to create literals in the AST from ParsePrimaryExpression to ParseLiteral. Change-Id: I41ba20f28f1cb1d76d753c5baec790872acdf1da Reviewed-on: https://pdfium-review.googlesource.com/27411 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-02-20Remove extra static qualifier.Dan Sinclair
Change-Id: I11ede1eb4f984b516275f03798996e6fc34880dc Reviewed-on: https://pdfium-review.googlesource.com/27410 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-02-20Fix typo in method name FillSoildRect().Nico Weber
No behavior change. Bug: none Change-Id: I59a40e5d38d561da1ebf20a40feb3933f7fef14a Reviewed-on: https://pdfium-review.googlesource.com/27390 Commit-Queue: Nico Weber <thakis@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-02-20[formcalc] The if token is a keyword and should not be made an identifierDan Sinclair
This CL removes the code from PrimaryExpression which converts the if token into an indentifier. if() is a reserved keyword and can't be used as an indentifier according to the spec. Change-Id: I5644cdbe57ef62f4089b4704e1b8d196927e68a4 Reviewed-on: https://pdfium-review.googlesource.com/27370 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-02-20Tighten up assignment instructions in formcalc.Dan Sinclair
The assignment operator can not be chained. This Cl removes the while loop for assignments and changes it to an if(). We also can not have an assignment inside ()'s so remove that option. Bug: chromium:779349 Change-Id: I6934e18815f843ae8241023df6c03d8bbcd8168d Reviewed-on: https://pdfium-review.googlesource.com/27350 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-02-19Remove extraneous HasError checksdan sinclair
Duplicate checks, remove. Change-Id: Ic2f49651c50ed66328233817bc8cd24f7c9636c2 Reviewed-on: https://pdfium-review.googlesource.com/27330 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-02-19FormCalc Assignment is not a SimpleExpressiondan sinclair
Currently the parser builds assignment statements as part of the SimpleExpression declaration. This isn't correct according to the grammar where AssignmentExpression and SimpleExpression are siblings. This CL moves the assignment calculation into the ExpExpression declaration to make it a sibling of the SimpleExpression. Change-Id: I6afac2379ab6783b84ee619863c8308ca0db454d Reviewed-on: https://pdfium-review.googlesource.com/27310 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-02-19Cleanup FormCalc inheritancedan sinclair
This CL cleans up the FormCalc inheritance. The binary and unary items all share ToJavaScript methods now. Change-Id: I7bf0978449395fa2eb90b954cf2118d7aa3f71c6 Reviewed-on: https://pdfium-review.googlesource.com/27290 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-02-19Remove base class ToJavaScript methods in FormCalcdan sinclair
This CL removes the Loop base class as it adds no functionality. Other base classes have had their ToJavaScript methods set as pure virtual and their constructors made protected. Change-Id: I5c77b8734d23c576dd52db7f72396ecdf2f7bd22 Reviewed-on: https://pdfium-review.googlesource.com/27270 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-02-19Cleanup JS generation in formcalc.dan sinclair
This CL cleans up some of the JS generation code to make it easier to see what JavaScript is begin created. Change-Id: I4265226cca0e4de400d05cc0fea3f8c76608115e Reviewed-on: https://pdfium-review.googlesource.com/27250 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-02-19Inline FormCalc method namesdan sinclair
This CL inlines the FormCalc method names instead of using a lookup array. Many of the names were only referenced once and this makes the code a lot simpler to read. Change-Id: Ib80f5bfa0097e4f1bad232e7de452f067db2a758 Reviewed-on: https://pdfium-review.googlesource.com/27211 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-02-19Inline some formcalc identifiersdan sinclair
This CL inlines the RUNTIMEFUNCTIONRETURNVALUE and EXCLAMATION_IN_IDENTIFIER defines to make the output code easier to read. Change-Id: I4a86da2aefc75ff137d9a7cff0351515b275f1b1 Reviewed-on: https://pdfium-review.googlesource.com/27230 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-02-19Merge FormCalc to JavaScript methodsdan sinclair
This CL merges the ToJavaScript and the ToImpliedJS methods in the FormCalc expressions. The type of return is passed as a paramter to ToJavaScript. Change-Id: Idff83677bc70b964d95aa6ff6b0e2c1bf8c603ea Reviewed-on: https://pdfium-review.googlesource.com/27210 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-02-19Simplify CXFA_FMToken creationdan sinclair
This CL converts the CXFA_FMToken usages into an object instead of a pointer. A copy constructor has been added. The line number was removed from the token and is retrieved from the lexer where needed. Change-Id: I94c632653e9bf1439d2ddf374a816ae0d10b5b67 Reviewed-on: https://pdfium-review.googlesource.com/27192 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-02-19Skip font loading in formcalc embedder testsdan sinclair
This CL changes XFA to skip font loading for embedder tests. This takes the runtime for the CFXJSE_Formcalc_ECFXJSE_FormCalcContextEmbedderTest run from ~25sec to ~5sec. Change-Id: If9989c5a3474cccd3915ec3f5c178d7af48aae37 Reviewed-on: https://pdfium-review.googlesource.com/27191 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-02-19Simplify formcalc token listdan sinclair
The keyword list in the formcalc lexer is only used to match identifiers. We don't need to store the non-identifier tokens in the list, so they're removed. The hash is removed and the list is compared by string instead. The token names have been moved to DEBUG so they won't be included in Release builds. Change-Id: Ieec00e9944960e559079083a605e3249c4128841 Reviewed-on: https://pdfium-review.googlesource.com/27190 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-02-16Reland "Actually enable -Wimplicit-fallthrough for pdfium."Henrique Nakashima
This reverts commit 2388506a1ba13481463033b414f46c1b8864519e. Reason for revert: Fixed the fallthroughs in XFA and some others. After the following CLs, I'm pretty confident the errors are caught in the PDFium bots rather than on Chromium waterfall: https://pdfium-review.googlesource.com/c/pdfium/+/27010 Roll DEPS for clang to a695c30c. https://pdfium-review.googlesource.com/c/pdfium/+/26950 Fix fallthroughs in XFA code. https://pdfium-review.googlesource.com/c/pdfium/+/27050 Fix more fallthroughs before reenabling -Wimplicit-fallthrough. Original change's description: > Revert "Actually enable -Wimplicit-fallthrough for pdfium." > > This reverts commit 60027a205953e95b230f289118448b55f12f9a94. > > Reason for revert: This will break the fuzzer build in Chromium because the XFA side is still broken. I think we need to roll the build/ directory or clang to get the new flag and then build locally before re-enabling? > > Or, build with pdf_enable_xfa = true in a chrome checkout. > > > Original change's description: > > Actually enable -Wimplicit-fallthrough for pdfium. > > > > I forgot to do this in https://pdfium-review.googlesource.com/c/pdfium/+/26210 > > which made PDFium compile with the warning enabled. > > > > Bug: 807632 > > Change-Id: Id12e3df3073f3b9550d5bc9dfea0068088496f8a > > Reviewed-on: https://pdfium-review.googlesource.com/26910 > > Reviewed-by: dsinclair <dsinclair@chromium.org> > > Reviewed-by: Tom Sepez <tsepez@chromium.org> > > Commit-Queue: Nico Weber <thakis@chromium.org> > > TBR=thakis@chromium.org,tsepez@chromium.org,dsinclair@chromium.org > > Change-Id: I6bcd6c7aadd43aa0a68b9cd7b1d47e10e2c487ae > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: 807632 > Reviewed-on: https://pdfium-review.googlesource.com/26930 > Reviewed-by: dsinclair <dsinclair@chromium.org> > Commit-Queue: dsinclair <dsinclair@chromium.org> TBR=thakis@chromium.org,tsepez@chromium.org,dsinclair@chromium.org Change-Id: Idbac99ba1e42846cbd84e5eb19cdae67fc1b80a8 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 807632 Reviewed-on: https://pdfium-review.googlesource.com/27091 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
2018-02-16Correct mapping text to characters for characters missing from fontRyan Harrison
When parsing text streams there is an internal character list that is generated of all the characters in the stream. Additionally a text string is generated that is exposed via the public API. This string will have all of the printing, i.e. non-control characters, in it. For characters that are not in the font of the stream the unicode, but printable, the character 0xFFFE is used in the text to indicate a missing character. This a non-printing character to indicate non-unicode. The internal character list gets a Unicode value 0x0 when there isn't a glyph in the font for it and the original character code is preserved. This means that when generating the mapping between text string and character list, the code is mistakenly thinking that the unprintable character was not present in the text string. I have changed the check in the mapping generation code to correctly account for this. Additional investigation is needed to determine if inserting 0xFFFE in the text is the correct behaviour. This patch resolves an issue where the find highlights in Chrome for a PDF would be offset when there are unprintable characters in a stream. BUG=pdfium:1010 Change-Id: I7547c46c5645e039a4b5138f2ce1137fa31990a5 Reviewed-on: https://pdfium-review.googlesource.com/27051 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2018-02-16Fix more fallthroughs before reenabling -Wimplicit-fallthrough.Henrique Nakashima
Change-Id: Ic1d5a250fc00d6767cee7eee1b2d74d5e1caa2bb Reviewed-on: https://pdfium-review.googlesource.com/27050 Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2018-02-16Fix mouse pointer in XFA forms.Henrique Nakashima
This CL changes the XFA code in FPDFPage_HasFormFieldAtPoint() to return the actual form field the mouse is over, and not always FormFieldType::kXFA. Bug: chromium:811331 Change-Id: I4157f58d057972dc2f4e79036493e079c611c9ec Reviewed-on: https://pdfium-review.googlesource.com/26970 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2018-02-16Roll DEPS for clang to a695c30c.Lei Zhang
AKA roll Clang 321529:324578 https://chromium.googlesource.com/chromium/src/tools/clang/+log/ac1e5f78..a695c30c Also roll build to c7a79acb to match. https://chromium.googlesource.com/chromium/src/build/+log/b1bf4b84..c7a79acb Which then requires the sysroot hooks to be updated. Change-Id: Ibc6475e62d969ade564f1a063a89d348aca1eb67 Reviewed-on: https://pdfium-review.googlesource.com/27010 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2018-02-16Avoid 100 blank FX_FONTDESCRIPTOR entries.Tom Sepez
Change-Id: Ibaf53ee27eefc692ac4f002c3ab28b7738676b31 Reviewed-on: https://pdfium-review.googlesource.com/26991 Commit-Queue: Tom Sepez <tsepez@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
2018-02-16Add ASSERT to check OOB m_CharCodesNicolas Pena
It seems m_CharCodes is in rare cases being corrupted, this CL adds ASSERTS to catch whether the corruption is due to out-of-bounds element access. Bug: 782215 Change-Id: I555ad1ccc2de3c35b2e06496f7216fba770f0759 Reviewed-on: https://pdfium-review.googlesource.com/27030 Commit-Queue: Nicolás Peña Moreno <npm@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-02-16m_pEnumerator only ever has one value, indirection not needed.Tom Sepez
Change-Id: Ic1d63e8ef54a820b01d67dbf1dd6f6f72a06b77c Reviewed-on: https://pdfium-review.googlesource.com/26990 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
2018-02-16Implement operator<< for CFX_Rect and CFX_RectF.Henrique Nakashima
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>
2018-02-16Fix fallthroughs in XFA code.chromium/3350Henrique Nakashima
Change-Id: I1fd4bf85cd709de1c14ed2895d045018f79bc61f Reviewed-on: https://pdfium-review.googlesource.com/26950 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
2018-02-16Improve performance of writing path floats.Dan Sinclair
This CL copies the SkPDF code to convert floats into strings when writing back to PDF files. Change-Id: I8f8af3924a07aa67f93b9d951af1eef5d2c705db Reviewed-on: https://pdfium-review.googlesource.com/21990 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org> Reviewed-by: Hal Canary <halcanary@chromium.org>
2018-02-15Revert "Actually enable -Wimplicit-fallthrough for pdfium."dsinclair
This reverts commit 60027a205953e95b230f289118448b55f12f9a94. Reason for revert: This will break the fuzzer build in Chromium because the XFA side is still broken. I think we need to roll the build/ directory or clang to get the new flag and then build locally before re-enabling? Or, build with pdf_enable_xfa = true in a chrome checkout. Original change's description: > Actually enable -Wimplicit-fallthrough for pdfium. > > I forgot to do this in https://pdfium-review.googlesource.com/c/pdfium/+/26210 > which made PDFium compile with the warning enabled. > > Bug: 807632 > Change-Id: Id12e3df3073f3b9550d5bc9dfea0068088496f8a > Reviewed-on: https://pdfium-review.googlesource.com/26910 > Reviewed-by: dsinclair <dsinclair@chromium.org> > Reviewed-by: Tom Sepez <tsepez@chromium.org> > Commit-Queue: Nico Weber <thakis@chromium.org> TBR=thakis@chromium.org,tsepez@chromium.org,dsinclair@chromium.org Change-Id: I6bcd6c7aadd43aa0a68b9cd7b1d47e10e2c487ae No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 807632 Reviewed-on: https://pdfium-review.googlesource.com/26930 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-02-15Actually enable -Wimplicit-fallthrough for pdfium.Nico Weber
I forgot to do this in https://pdfium-review.googlesource.com/c/pdfium/+/26210 which made PDFium compile with the warning enabled. Bug: 807632 Change-Id: Id12e3df3073f3b9550d5bc9dfea0068088496f8a Reviewed-on: https://pdfium-review.googlesource.com/26910 Reviewed-by: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org>
2018-02-15Fix roll-freetype scriptNicolas Pena
In c3532457d457e868afb8506e047ab353f2651bc0, a cmp was added to the roller script, but it should be cp instead since we want both files to be the same. Change-Id: I12dc32ab1633196267537e4db3a3522058e44a9d Reviewed-on: https://pdfium-review.googlesource.com/26830 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
2018-02-15Make the CFX_XMLNode a MaybeOwned pointerDan Sinclair
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>
2018-02-15Correctly seek when header size is larger then expectedchromium/3349Ryan Harrison
BUG=chromium:811733 Change-Id: Idce50b8ea4ca06fc77d5b3931557cd1d6fe48bd5 Reviewed-on: https://pdfium-review.googlesource.com/26710 Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: Ryan Harrison <rharrison@chromium.org>
2018-02-15Add limit to number of formcalc expressionsDan Sinclair
Currently it's possible to create a formcalc script which creates a large number of expressions. This will eventually cause stack exhaustion as we try to allocate the needed expression objects. This CL limits the number of parsed expressions in the PostExpression section in order to keep from failing due to stack overflow. Bug: chromium:799721 Change-Id: I69fca35db7f75ef97aec21c22fc06d926dfe2df6 Reviewed-on: https://pdfium-review.googlesource.com/26870 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org>
2018-02-14Fix lifetime probe issue in CJX_Objectchromium/3348Dan Sinclair
This CL removes the UnownedPtr to the CXFA_LayoutItem from CJX_Object. This is because the CJX_Object will be destroyed by the CXFA_Node which is destroyed in the CXFA_Document destructor (due to the vector of unique_ptr being destroyed). The CXFA_LayoutItem will be freed in the LayoutProcessor which also lives in the CXFA_Document. Bug: chromium:807215 Change-Id: I86040e154ee2e5d461fc4d3565a10a9181680207 Reviewed-on: https://pdfium-review.googlesource.com/26851 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
2018-02-14Check that the request was satisfied in ReadDataRyan Harrison
Currently the BMP decompressor doesn't verify the returned data length was the amount requested. This means we may end up with part of our structure uninitialized if we didn't copy in enough data. This CL verifies the length of data copied is the size we require. BUG=chromium:811853 Change-Id: I20e0e9b3ff1176a620fcb38c3c7e585848b7e428 Reviewed-on: https://pdfium-review.googlesource.com/26850 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org>
2018-02-14Roll pdfium/third_party/freetype/src/ 036bdc0c9..4a03f1744 (2 commits)Nicolas Pena
https://chromium.googlesource.com/chromium/src/third_party/freetype2.git/+log/036bdc0c9a4f..4a03f17449ae $ git log 036bdc0c9..4a03f1744 --date=short --no-merges --format='%ad %ae %s' 2018-02-06 wl [truetype] Integer overflow issues. 2018-02-04 apodtele [unix] Use -fvisibility=hidden. Created with: roll-dep pdfium/third_party/freetype/src R=dsinclair@chromium.org,npm@chromium.org,thestig@chromium.org Bug: pdfium:1009 Change-Id: I0dfa484bc680b5afb4ebc8bf62f6269f7df83d51 Reviewed-on: https://pdfium-review.googlesource.com/26810 Reviewed-by: Nicolás Peña Moreno <npm@chromium.org> Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
2018-02-14Set node to owning elementDan Sinclair
When the document creates anew data root element it assigns it into the CXFA_Node but fails to set that node as owing the XML node. The XML node is never inserted into another XML tree so it ends up being leaked. This CL sets the CXFA_Node to own the XML data tree node so it will be cleaned up properly. Bug: chromium:807863 Change-Id: I72a1b8f7b1f1a50bf7139d8bd0ecc8e504ccfc91 Reviewed-on: https://pdfium-review.googlesource.com/26790 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>