Age | Commit message (Collapse) | Author |
|
The previous implementation, FindPDFPage, was already doing this since
the recursive call was always with return. Currently, we were trying to
keep going even after reaching max level. The problem is that if the
page tree is not a tree, we might loop forever. This could also be
solved by keeping track of the dictionaries that have been visited, but
this solution takes much less space.
BUG=672172
Change-Id: Ia37aea58e92b6068de69f26736c612aa6a0ff4b3
Reviewed-on: https://pdfium-review.googlesource.com/2138
Commit-Queue: Nicolás Peña <npm@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
Also be sure that a loop terminates without relying on
specific behaviour of the callers.
Review-Url: https://codereview.chromium.org/2598473002
|
|
Fix some naming to make things clearer.
Review-Url: https://codereview.chromium.org/2587233002
|
|
TBR=dsinclair@chromium.org
BUG=675752
Review-Url: https://codereview.chromium.org/2585113004
|
|
BUG=pdfium:644
Review-Url: https://codereview.chromium.org/2581873002
|
|
Delete some dead code in the process.
Review-Url: https://codereview.chromium.org/2585873002
|
|
- Add unit tests for sha256 implementation.
- Remove void* types from API in favor of correct actual types.
Review-Url: https://codereview.chromium.org/2577223002
|
|
In turn, make CPDF_Stream() take an unique_ptr.
Review-Url: https://codereview.chromium.org/2584683002
|
|
In turn, this makes CFX_BinaryBuf::AttachData() unused.
Review-Url: https://codereview.chromium.org/2578793002
|
|
Review-Url: https://codereview.chromium.org/2572293002
|
|
Rename GetAlphaMask => CloneAlphaMask since it does more than get.
Rename CopyAlphaMask => SetAlphaMask, as it copies IN, not OUT.
ditto for CopyPalette => SetPalette.
BUG=
Review-Url: https://codereview.chromium.org/2572243002
|
|
Review-Url: https://codereview.chromium.org/2571313002
|
|
Allows JPEG data to be copied into the file rather than left in a
separate file. This is needed to allow rasterized PDFs to avoid saving
image files for each page. See Chromium issue 2524143003 for chromium
changes.
BUG=534945, 550205, 480628
Review-Url: https://codereview.chromium.org/2529543003
|
|
Review-Url: https://codereview.chromium.org/2578663002
|
|
Be suspicious of |new|. This removes some of the
easy cases.
Review-Url: https://codereview.chromium.org/2571913002
|
|
Review-Url: https://codereview.chromium.org/2572843002
|
|
Review-Url: https://codereview.chromium.org/2567503002
|
|
Avoid another unique_ptr release and a separate flag.
Review-Url: https://codereview.chromium.org/2570913002
|
|
Found when adding pdf_use_skia_paths canary
to skia status
R=dsinclair@chromium.org, borenet@google.com
BUG=skia:5849
Review-Url: https://codereview.chromium.org/2569003002
|
|
While decoding among instances, variable "FIRSTS" should hold its
value, not be reset. This was accidently changed by earlier
refactoring.
BUG=chromium:625848,pdfium:636
Review-Url: https://codereview.chromium.org/2569023002
|
|
The canvas clip op changed to a
enum class to safeguard against a
regular enum used as a bool in an
overloaded interface.
R=reed@google.com, dsinclair@chromium.org
Review-Url: https://codereview.chromium.org/2568193002
|
|
When GDI device driver draws a dotted line, it also clip the line
into the device context's bound before drawing. This CL includes
a couple fixes:
-- When this driver is used for EMF drawing, the drawing is not
bound to the device context so clipping is not needed;
-- Transformation needs to be applied before clipping since the
transformation may move the line into the bound;
-- While checking for out-of-bound flags, bit operations are needed
to make sure the discarded line is completely out of bound, not
partially inside the bound;
BUG=chromium:539533
Review-Url: https://codereview.chromium.org/2562533002
|
|
Skia has changed its clipping API
from one enum to another.
Fix PDFium to match.
R=dsinclair@chromium.org,reed@google.com,herb@google.com
Review-Url: https://codereview.chromium.org/2559123004
|
|
Review-Url: https://codereview.chromium.org/2562833002
|
|
Review-Url: https://codereview.chromium.org/2558373002
|
|
Minimalist changes with the tidying of the code to
use better loop iterators as a follow-up.
Review-Url: https://codereview.chromium.org/2556963004
|
|
Also convernt one nearby array to vector as well.
Review-Url: https://codereview.chromium.org/2559903002
|
|
Review-Url: https://codereview.chromium.org/2562563002
|
|
The previous CLs made the code clean, so now we can mark more things
private, and add friends as appropriate.
Review-Url: https://codereview.chromium.org/2560783003
|
|
Originally the key "T" was checked which was not correct since that
key is optional. Now change to check "FT" as well as its parent's
key since this key is also inheritable.
BUG=chromium:440132
Review-Url: https://codereview.chromium.org/2554223002
|
|
We can remove a lot of "bOwnsStream" logic in the process.
Always pass these by const reference, in case the called method
wants to hang on to the stream (one exception is where we stick
a raw pointer into a void* slot in a context from another layer).
Review-Url: https://codereview.chromium.org/2451493002
|
|
This permits consecutive path drawing or text drawing to combine
if their graphics state matches. This speeds up rendering considerably
when PDFium draws in many small parts. It also allows discarding
changes to the clip state that have no effect from draw to draw.
All corpus tests draw equivalently with caching enabled or disabled.
Change the member order in CPDF_PageRenderContext so the device is
flushed before the referencing annotation is deleted.
Add more printf style debugging for test draws.
R=dsinclair@chromium.org
Review-Url: https://codereview.chromium.org/2546803003
|
|
Because that's what clone does. Perform immediate release
in some spots to avoid disrupting too much at once.
Review-Url: https://codereview.chromium.org/2534953004
|
|
Allow shading to use Skia for some gradients;
linear, radial, and coons patch.
The corpus uncovered a few gradient-related bugs
in the Skia driver which are fixed as well.
Fix corpus 11.pdf by ignoring zero area
filled paths. PDFium uses CFX_PathData::GetZeroAreaPath()
to determine if a path that doesn't enclosing anything
should be drawn anyway, and CFX_AggDeviceDriver::GetDriverType()
returns 1 so that the empty path is tweaked so that
it doesn't draw too often.
There are no tests in the corpus that show
the utility of this approach; 11.pdf draws correctly
if the zero area paths are ignored.
Standardize debugging output so that
a separate tool can visualize it.
R=dsinclair@chromium.org, thestig@chromium.org
Review-Url: https://codereview.chromium.org/2530343004
|
|
Review-Url: https://codereview.chromium.org/2551593002
|
|
It's a separate hierarchy unrelated to the IFX_*Stream classes.
Also rename CFX_Stream to CFGAS_Stream, and so forth.
Review-Url: https://codereview.chromium.org/2535723010
|
|
Group related IFX_ classes.
Move #defines to .cpp file that uses them.
Replace loose function with static method.
Review-Url: https://codereview.chromium.org/2548583004
|
|
Review-Url: https://codereview.chromium.org/2550543002
|
|
Fix naming to say "Stream"
Review-Url: https://codereview.chromium.org/2543043002
|
|
Review-Url: https://codereview.chromium.org/2545653003
|
|
Review-Url: https://codereview.chromium.org/2546813002
|
|
Split the remaining code into files per class.
Change-Id: Idb959dbf807223a509e16c76f9626e61856a886b
Reviewed-on: https://pdfium-review.googlesource.com/2094
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Nicolás Peña <npm@chromium.org>
|
|
Review-Url: https://codereview.chromium.org/2541373002
|
|
|code_size_cur| could be larger than |code_size|, so |code| could be
larger than |code_end|. If this happens, early return, since the Decode
has failed.
BUG=659417
Review-Url: https://codereview.chromium.org/2542673004
|
|
Probably won't fix bug 669797 on its own, but nice to have.
Remove unimplemented static method.
Review-Url: https://codereview.chromium.org/2543833002
|
|
Reasoning: the pTextAdvanceX in CPDF_TextObject::CalcPositionData is
being multiplied by horz_scale in CPDF_TextObject::CalcPositionData.
Then, m_pCurStates->m_TextX is updated by this amount. So multiply by
the scale also when updating with initial and final kerning and when
nsegs = 0.
BUG=528103
Review-Url: https://codereview.chromium.org/2542743002
|
|
Also remove a bool that is always false.
Review-Url: https://codereview.chromium.org/2539203002
|
|
Removed unused methods, and GetCharSize no longer overrides.
Change-Id: I29384afb4d79cfd8e8b4ede4a0b52272020bfcd9
Reviewed-on: https://pdfium-review.googlesource.com/2031
Reviewed-by: ooo 11-24 -- 12-05 (dsinclair) <dsinclair@chromium.org>
|
|
Part of the work to get rid of |new|s. Stripped from a forthcoming CL.
Review-Url: https://codereview.chromium.org/2536973003
|
|
Review-Url: https://codereview.chromium.org/2536903004
|