Age | Commit message (Collapse) | Author |
|
Reland of Fix leaked internal font (patchset #2 id:60001 of
https://codereview.chromium.org/2297303004/ )
In CFGAS_FontMgrImp::LoadFont(), a new internal font is created which
is never released. It needs to be correctly marked as internal font to
be released. Fix this by adding a new method to take the ownership
of the font and mark it as internal font properly.
The previous revert was caused by memory management errors
which were fixed at https://codereview.chromium.org/2322043002/
BUG=pdfium:242
Review-Url: https://codereview.chromium.org/2320213002
|
|
A few issues are fixed:
--Change variable |m_bLogic| in CFX_Font to |m_bShallowCopy| to
reflect its meaning better;
--For a shallow copy of font, we must guarantee that the copied font
will not be deleted until the shallow copy is deleted. So need to
increase the src font's refcount when copying it;
--The stream |m_pOwnedStream| needs to have matched new/delete
These errors need to be fixed before we can properly delete all the
fonts to address the leaks.
BUG=pdfium:242
Review-Url: https://codereview.chromium.org/2322043002
|
|
Two leak cases are addressed here:
--In CFGAS_FontMgrImp::LoadFont(), calling LoadFace() is unnecessary
since the following LoadFile() does the exact same thing. Calling
LoadFace() without releasing the loaded face results in a leak;
--|m_Hash2Fonts| in class CFGAS_FontMgrImp owns all the fonts stored
in it. The fonts need to be deleted along with the container.
BUG=pdfium:242
Review-Url: https://codereview.chromium.org/2322483003
|
|
https://codereview.chromium.org/2297303004/ )
Reason for revert:
asan bot doesn't like it, will investigate
Original issue's description:
> Fix leaked internal font
>
> In CFGAS_FontMgrImp::LoadFont(), a new internal font is created which
> is never released. It needs to be correctly marked as internal font to
> be released. Fix this by adding a boolean parameter and pass it along
> during the creation of the font.
>
> BUG=pdfium:242
>
> Committed: https://pdfium.googlesource.com/pdfium/+/6708106e6a3d54f3370c871ebf6643d1ecf58999
TBR=thestig@chromium.org,dsinclair@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=pdfium:242
Review-Url: https://codereview.chromium.org/2302213002
|
|
In CFGAS_FontMgrImp::LoadFont(), a new internal font is created which
is never released. It needs to be correctly marked as internal font to
be released. Fix this by adding a boolean parameter and pass it along
during the creation of the font.
BUG=pdfium:242
Review-Url: https://codereview.chromium.org/2297303004
|
|
Review-Url: https://codereview.chromium.org/2292503002
|
|
The GEFont points to the font manager which creates it and tries to unregister
itself. Currently the GEFont can be created by the default mapper and then
stored in a different mapper. If the default mapper is destroyed first, when
the second mapper cleans up the font there will be a call to unregister on
the default mapper causing a use-after-free.
The long term fix is to fixup the GEFont so it points to the correct mapper
to unregister from. This CL forces the destruction order in CXFA_FFApp to
cleanup the non-default mapper first.
BUG=chromium:637546
Review-Url: https://codereview.chromium.org/2259823004
|
|
Review-Url: https://codereview.chromium.org/2260533002
|
|
Return unique_ptr for GetLocale(), directly use destructors
instead of Release() functions, use vectors to manage arrays.
Review-Url: https://codereview.chromium.org/2241863002
|
|
The two methods in fgas_system also exist in core/fxcrt/include/fx_ext with the
FXSYS_ prefix instead of FX_. Remove the fgas_system files and use the
fx_ext versions instead.
Review-Url: https://codereview.chromium.org/2233133002
|
|
Use smart pointers instead of raw pointer to make memory management
easier for classes mainly under xfa/fxfa.
Also change the return type of IFGAS_FontMgr::Create() to smart
pointer type.
BUG=pdfium:518
Review-Url: https://codereview.chromium.org/2227883002
|
|
files.
This is the third CL to separate fx_ge into classes, one per file.
All fx_ge.h includes had to be replaced with new includes
The method definitions for CFX_FxgeDevice were not moved to a single file.
These methods are defined in two folders different from fxge/ge, so they were left untouched for now.
Review-Url: https://codereview.chromium.org/2223213002
|
|
This is the first CL in an attempt to split up the classes in fxge/include/fx_ge.h into their own files.
Review-Url: https://codereview.chromium.org/2217663002
|
|
For classes under xfa/fgas, xfa/fwl/basewidget, and xfa/fwl/core,
use smart pointers instead of raw pointer to make memory management
easier.
BUG=pdfium:518
Review-Url: https://codereview.chromium.org/2207093005
|
|
Use smart pointer to replace raw pointer type for class
owned member variables so that memory management will
be easier.
BUG=pdfium:518
Review-Url: https://codereview.chromium.org/2208423002
|
|
Move CFX_FolderFontInfo, CFX_FontMgr, and CFX_FontMapper into their own
classes. There are namespaces in each of the new files, having methods
from the original namespace in fx_ge_fontmap, according to what each
class needs.
Review-Url: https://codereview.chromium.org/2185533006
|
|
For the class owned member variables, use std::unique_ptr or
std::vector for memory management.
BUG=pdfium:518
Review-Url: https://codereview.chromium.org/2169793002
|
|
This CL removes unused methods and default parameters from the fgas/crt code.
Review-Url: https://codereview.chromium.org/2162503003
|
|
This CL uses the FXSYS_isDecimalDigit in place of a few custom IsDigit methods.
It also creates an iswspace and some fractional math helper methods to share
some code.
Review-Url: https://codereview.chromium.org/2094453004
|
|
This CL converts all NULL's to nullptr. All instances of comparison to nullptr
have been removed.
Review-Url: https://codereview.chromium.org/2095653002
|
|
Fix nits along the way.
Review-Url: https://codereview.chromium.org/2083943003
|
|
These changes are specific to Mac and Skia builds. They are
needed for these builds to compile with clang_use_chrome_plugin.
BUG=pdfium:469
Review-Url: https://codereview.chromium.org/2081523002
|
|
- Clean up CFX_GEModule.
- Remove duplicate #defines in fx_ge.h
- Remove IsFontStyleFromCharCode() that always returns true.
- Mark a FXTEXT_CHARPOS field as Mac only.
Review-Url: https://codereview.chromium.org/2075333002
|
|
This change mainly contains files in xfa/ and fxjse/ directories
which were not covered by previous changes.
This is part of the efforts to make PDFium code compilable
by Clang chromium style plugins. After this change, PDFium can be
compiled with "clang_use_chrome_plugin=true" for GN build. Since
clang_use_chrome_plugin is true by default, we no longer need to
set this parameter explicitly.
The changes are mainly the following:
-- move inline constructor/destructor of complex class/struct out-of-line;
-- add constructor/destructor of complex class/struct if not
explicitly defined;
-- add explicit out-of-line copy constructor when needed;
-- move inline virtual functions out-of-line;
-- Properly mark virtual functions with 'override';
-- some minor cleanups;
BUG=pdfium:469
Review-Url: https://codereview.chromium.org/2072803002
|
|
Review-Url: https://codereview.chromium.org/2063463002
|
|
FLW_DATEINFO cast not required.
Review-Url: https://codereview.chromium.org/2053963002
|
|
Remove a few other unused casts, simplify.
Review-Url: https://codereview.chromium.org/2052593003
|
|
And also CFGAS_StdFontMgrImp.
Review-Url: https://codereview.chromium.org/2033673002
|
|
Review-Url: https://codereview.chromium.org/2037563002
|
|
This CL removes the FDE_HVISUALOBJ in favour of the concrete FDE_TEXTEDITPIECE
class. The parameter was removed from any method which didn't use it and the
non-implemented methods were removed.
Review-Url: https://codereview.chromium.org/2047693002
|
|
Then we can remove a bunch of casts.
Review-Url: https://codereview.chromium.org/2033243004
|
|
It implements IFGAS_Font and is unrelated to CFX Fonts,
except as a wrapper.
Review-Url: https://codereview.chromium.org/2037753005
|
|
Avoid confusion with CFX_FontMgr, which does not inherit
from IFX_FontMgr, and lives in a different layer of code.
Do the same CFX_ -> CFGAS_ transformation for the concrete
classes that implement IFGAS_FontMgr.
Review-Url: https://codereview.chromium.org/2039463003
|
|
Avoid confusion with CFX_Font, which is defined in fxcrt,
and does not inherit from nor bear any resemblence to IFX_Font.
Review-Url: https://codereview.chromium.org/2036173003
|
|
When there are duplicate variable declarations, the inner names shadow the
outter ones. This is error prone and harder to read. Remove all the
instances found by /analyze.
BUG=chromium:613623, chromium:427616
Review-Url: https://codereview.chromium.org/2027273002
|
|
So everyone can avoid doing Byte to WideString conversions.
Also remove CFX_GEFont::GetPsName() and deduplicate a couple of
GetPsName() calls.
Review-Url: https://codereview.chromium.org/2019173002
|
|
FX_WCHAR* casts were hiding a number of misuses of narrow strings in
pdfium, which /analyze identified. Now that those are fixed I did a
search for other instances of (FX_WCHAR*) to see if any other bugs
were lurking. No bugs were found but one unnecessary cast and one
that should be a const_cast were identified. This change fixes
those. No behavioral change.
Review-Url: https://codereview.chromium.org/2024463002
|
|
TBR=dsinclair@chromium.org
Review URL: https://codereview.chromium.org/2018563002 .
|
|
Review-Url: https://codereview.chromium.org/2009253003
|
|
There are a few functions which are not completed in
CXFA_Node class. Complete or comment two functions in this change list.
The implementation follows Adobe's XFA 2.1 references here:
http://help.adobe.com/en_US/livecycle/9.0/designerHelp/index.htm?content=001363.html.
Also, remove a data structure no longer needed -- the code which used it
has been removed.
BUG=pdfium:29
Review-Url: https://codereview.chromium.org/2011553004
|
|
This CL replaces the last instance of CFX_DSPATemplate with std::binary_search.
Review-Url: https://codereview.chromium.org/2007443003
|
|
Rename addRef() method to Retain() to match Release().
This CL does not convert to CFX_RetainPtrs, which will happen
in a follow-on.
Review-Url: https://codereview.chromium.org/2005933002
|
|
Use unique_ptrs in several places in xfa_textlayout.h
Review-Url: https://codereview.chromium.org/2003843002
|
|
This is part of efforts to bring XFA to chromium_code standard.
Most of them will have behavior change.
The details of these problems are:
xfa/fgas/layout/fgas_rtfbreak.cpp:
Wrong condition with misused variable
xfa/fgas/localization/fgas_locale.cpp
Unnecessary condition
xfa/fxbarcode/datamatrix/BC_DataMatrixDecodedBitStreamParser.cpp
xfa/fxfa/app/xfa_fffield.cpp
Unreachable code should be the correct code
xfa/fxbarcode/pdf417/BC_PDF417ScanningDecoder.cpp
xfa/fxbarcode/qrcode/BC_QRDetector.cpp
Wrong condition logic
BUG=pdfium:29
Review-Url: https://codereview.chromium.org/2000073003
|
|
The mixed use of enum and uint32_t causes warnings. And it is more
meaningful to use enum for char type variables.
BUG=pdfium:29
Review-Url: https://codereview.chromium.org/2001733002
|
|
This is part of efforts to bring XFA to chromium_code standard.
The warnings are from unreachable code, or using potentially
uninitialized variables, or using assignment within a condition.
This change list only contains easy to fix cases. More cleanups
will follow.
BUG=pdfium:29
Review-Url: https://codereview.chromium.org/1998873002
|
|
Review-Url: https://codereview.chromium.org/2002673002
|
|
This CL moves the fgas Sax parser into the fde/xml directory. This places
the parse with the other XML parser in the system.
Review-Url: https://codereview.chromium.org/1990003002
|
|
This CL shuffles code around in the fgas/ headers, removes unused functions
and adds anonymous namepaces for static methods and data.
Review-Url: https://codereview.chromium.org/1992033002
|
|
Sevearal typedefs are only used once or twice. Expand and remove the typedef.
Review-Url: https://codereview.chromium.org/1995033002
|