Age | Commit message (Collapse) | Author |
|
BUG=648059
Review-Url: https://codereview.chromium.org/2350013003
|
|
This reverts commit c8544d634a1993e2592e41458be215fcd0956031.
TBR=dsinclair@chromium.org
Review URL: https://codereview.chromium.org/2355683002 .
|
|
The objects it is given are owned by it and are simply
deleted without regard to Release() used by others.
Review-Url: https://codereview.chromium.org/2350263002
|
|
We can delete this just fine on our own.
Review-Url: https://codereview.chromium.org/2355593002
|
|
BUG=647612
Review-Url: https://codereview.chromium.org/2350193003
|
|
Replace the CPDF_Stream(nullptr, 0, nullptr) pattern with
a default ctor.
Remove unused parameters from CPDF_Stream::SetData(). Both
are always passed as FALSE.
CPDF_Stream declared its own m_GenNum, which shadowed the one
in CPDF_Object. It was used only to distinguish file/memory
streams, so add a bool explicitly for this purpose.
Remove the union, it would be sad if we confused user data
with a C++ object with virtual function calls.
Use unique_ptrs with appropriate deleters to manage memory.
Review-Url: https://codereview.chromium.org/2347993002
|
|
https://codereview.chromium.org/2158023002/ )
Reason for revert:
Causes heap-use-after-free. See crbug.com/647612.
Original issue's description:
> Fix memory leaking on ClosePage.
> CFX_FontCache refactoring:
> after this CL: Only one global CFX_FontCache used. Any cached items from it, are released, when its are not used.
>
> BUG=79367,48791
>
> The fonts was not cleared after unloading pages.
>
> Test pdf:
>
> http://www.nasa.gov/pdf/750614main_NASA_FY_2014_Budget_Estimates-508.pdf
>
> For this file, we have ~5 fonts per page, which equal ~1 Mb per page.
> In this PDF we have 670 pages, as result after slow scrolling(reading) full document we have ~600 Mb fonts data in memory.
>
> memory usage of PDF Plugin:
> before this CL: ~660 Mb
> after this CL: ~100 Mb
>
> Committed: https://pdfium.googlesource.com/pdfium/+/cde5101eb15b24519e89fa500fe37038bc8e2201
TBR=tsepez@chromium.org,brucedawson@chromium.org,npm@chromium.org,art-snake@yandex-team.ru
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=79367,48791
Review-Url: https://codereview.chromium.org/2350763002
|
|
PWL_FontMap does not need its own charset definitions. fx_edit.h does
not need to define DEFAULT_CHARSET. XFA have their own definitions.
They look different in that most are MAC or MSWin charset definitions.
So they are left untouched. public/fpdf_sysfontinfo.h duplicate ones
were left untouched due to being in public folder.
Review-Url: https://codereview.chromium.org/2347313002
|
|
CPDF_ImageRenderer::StartDIBSource.
Correct the compare logic in CPDF_ImageRenderer::StartDIBSource() by using size_t instead of int.
BUG=chromium:645036
R=ochang@chromium.org
Review-Url: https://codereview.chromium.org/2323663002
|
|
ProcessbCJK and CalculateFontDesc methods are used to reduce the code
duplication between AddFont and AddWindowsFont methods.
Review-Url: https://codereview.chromium.org/2341373003
|
|
CFX_FontCache refactoring:
after this CL: Only one global CFX_FontCache used. Any cached items from it, are released, when its are not used.
BUG=79367,48791
The fonts was not cleared after unloading pages.
Test pdf:
http://www.nasa.gov/pdf/750614main_NASA_FY_2014_Budget_Estimates-508.pdf
For this file, we have ~5 fonts per page, which equal ~1 Mb per page.
In this PDF we have 670 pages, as result after slow scrolling(reading) full document we have ~600 Mb fonts data in memory.
memory usage of PDF Plugin:
before this CL: ~660 Mb
after this CL: ~100 Mb
Review-Url: https://codereview.chromium.org/2158023002
|
|
This Cl makes the Get and Set methods consistenly use {G|S}et<Type>For.
BUG=pdfium:596
Review-Url: https://codereview.chromium.org/2334323005
|
|
This CL updates all of the includes to be correctly sorted. A PRESUBMIT warning
is added (from chromium) that will warn if the includes are in the wrong order on upload.
Review-Url: https://codereview.chromium.org/2337293002
|
|
Review-Url: https://codereview.chromium.org/2340513002
|
|
- Methods GetPagesDict, ProcessNonbCJK, CalculateFlags, and
CalculateEncodingDict created to reduce duplicated code.
- Code nits
Review-Url: https://codereview.chromium.org/2323793003
|
|
Previously, PDFium only supported widget annotations to draw forms. As
we've implemented other annotations, the behavior of
FPDF_RenderPageBitmap_Retail and FPDF_FFLDraw changed. So, this CL
clearly defines what needs to be done in FPDF_RenderPageBitmap_Retail
and FPDF_FFLDraw.
This CL first assumes that PDFium users will always call
FPDF_RenderPageBitmap_Retail and FPDF_FFLDraw to render PDF pages,
because otherwise they are not able to support PDF forms.
FPDF_RenderPageBitmap_Retail should only deal with non-widget
annotations, such as highlight, underline, text, etc. If
FPDF_ANNOT flag is passed, non-widget annotations are drawn. Otherwise,
they are hidden.
FPDF_FFLDraw should only deal with annotations that requires
user-interaction, such as widget annotations and popup annotation. Since
popup annotation is associated with non-widget annotation, they should
not be drawn if the associated annotation is hidden. Thus, if FPDF_ANNOT
flag is passed, popup annotations are drawn. Otherwise, they are hidden.
Widget annotations should be always drawn regardless of FPDF_ANNOT flag
since they need to be always displayed for PDF forms.
Also, roll DEPS for testing/corpus to 8485b30.
BUG=pdfium:594
Review-Url: https://codereview.chromium.org/2323203002
|
|
Review-Url: https://codereview.chromium.org/2323933002
|
|
We know the values are always valid at this point, so use ValueOrDie instead
of ValueOrDefault.
BUG=chromium:637984
Review-Url: https://codereview.chromium.org/2319343003
|
|
Verify the provided image size is within bounds before loading.
BUG=chromium:639160
Review-Url: https://codereview.chromium.org/2323473002
|
|
When calculating the starting x and y for a pattern it is possible to overflow
the int value. Use checked math to make sure we don't overflow.
BUG=chromium:637984
Review-Url: https://codereview.chromium.org/2317283002
|
|
Use the shared copy-on-write version instead of the underlying
CFX_GraphStateData since it may not always get modified.
Review-Url: https://codereview.chromium.org/2316823002
|
|
Review-Url: https://codereview.chromium.org/2313083002
|
|
The FX layer is spying on its private data, so make the job
of ref-counting it live in FX as well, instead of up a layer
at pdfapi.
Pre-cursor to making this private and passing the graph
state itself everywhere.
Review-Url: https://codereview.chromium.org/2314223002
|
|
Review-Url: https://codereview.chromium.org/2312743005
|
|
Review-Url: https://codereview.chromium.org/2311313002
|
|
Review-Url: https://codereview.chromium.org/2310693002
|
|
Make Data private to the ClipPath class which manages it
transparently for its callers. This prevents the callers
from having to remember to make a copy before dirtying the
shared data, since the operations that modify state will do
this under the covers for us.
Review-Url: https://codereview.chromium.org/2301263003
|
|
The default assignment operator will suffice and allows
us to write matrix1 = matrix2;
Review-Url: https://codereview.chromium.org/2307953003
|
|
All interaction goes through the CPDF_GeneralState, which
manages the underlying storage transparently to the callers.
Make StateData use a real string and a real matrix rather
than C-style arrays.
Review-Url: https://codereview.chromium.org/2302683002
|
|
Review-Url: https://codereview.chromium.org/2305103002
|
|
Remove a const cast along the way and propagate to callers.
Review-Url: https://codereview.chromium.org/2303553002
|
|
Fix up callers from CPDF_DataAvail.
Review-Url: https://codereview.chromium.org/2294383003
|
|
Review-Url: https://codereview.chromium.org/2298163004
|
|
UnicodeFromCharCode should be tried even if the font is flagged as
PDFFONT_SYMBOLIC. The result should be checked in case it's empty. This
fixes some corpus tests that were being incorrectly rendered, as well as
the bug below.
A deps change will be required before landing this CL.
BUG=chromium:591303
Review-Url: https://codereview.chromium.org/2300893003
|
|
Return false instead of crashing.
BUG=641882
Review-Url: https://codereview.chromium.org/2300903002
|
|
BUG=637119
Review-Url: https://codereview.chromium.org/2305443003
|
|
This one doesn't require an explict Emplace(), as the object
seems to get constructed only as a side-effect of making a
private copy.
Review-Url: https://codereview.chromium.org/2298953002
|
|
BUG=642655
Review-Url: https://codereview.chromium.org/2298753003
|
|
Review-Url: https://codereview.chromium.org/2294133002
|
|
Get callers out of the copy-before-write business, and let the
class manage it instead.
Review-Url: https://codereview.chromium.org/2292363002
|
|
- Removed unused methods
- Friendship with CPDF_PathManager is not needed
- Protected may be changed to private
Review-Url: https://codereview.chromium.org/2292023003
|
|
Review-Url: https://codereview.chromium.org/2287313004
|
|
This CL uses the safe math libraries when calculating the font weight from
the StemV value as very large values for StemV can cause the signed int to
overflow.
BUG=chromium:641418
Review-Url: https://codereview.chromium.org/2293633002
|
|
There are a couple of places where code is calling GetObject()
that should be calling GetPrivateCopy(), but works because the
value may not be shared at the time. This just makes it safer.
Review-Url: https://codereview.chromium.org/2290863002
|
|
This reverts commit c10c23a2b1999b1cb0354fd4db9837dc63a3d833.
TBR=dsinclair@chromium.org
Review-Url: https://codereview.chromium.org/2285283003
|
|
This reverts commit d09a09751f724ecdb1a0bc307447a3d0c212ebff.
TBR=dsinclair@chromium.org
Review-Url: https://codereview.chromium.org/2291833002
|
|
This reverts commit 91ddd3f7501429222f648b986a99f3959a398889.
Reason for revert: may introduce sublte bugs, more thought required.
TBR=dsinclair@chromium.org
Review-Url: https://codereview.chromium.org/2294553002
|
|
Currently when the parser utility classes are outputting to a text buffer we do
not verify that an element from an array exists before accessing. We can have
null items in arrays (and dictionaries but the dictionary case is already
handled).
This Cl updates the code to check the element exists before attempting to use
the element.
BUG=chromium:641076
Review-Url: https://codereview.chromium.org/2292473004
|
|
Move methods to CPDF_ColorStateData.
Move MakePrivateCopy() methods to call sites.
Remove now-empty cpdf_colorstate.cpp file.
Review-Url: https://codereview.chromium.org/2291763002
|
|
This CL is a speculative fix for the associated BUG. Make sure the CPDF_Document
is initialized in the constructor.
BUG=chromium:640998
Review-Url: https://codereview.chromium.org/2291743002
|