Age | Commit message (Collapse) | Author |
|
There are places where an object "child" has a raw pointer
back to object "owner" with the understanding that owner will
always outlive child.
Violating this constraint can lead to use after free, but this
requires finding two paths: one that frees the objects in the
wrong order, and one that uses the object after the free. The
purpose of this patch is to detect the constraint violation
even when the second path is not hit.
We create a template that is used in place of TYPE*. It's dtor,
when a memory tool is present, goes out and probes the first
byte of the object to which it points. Used in "child", this
allows the memory tool to prove that the "owner" is still alive
at the time the child is destroyed, and hence the constraint is
never violated.
Change-Id: I2a6d696d51dda4a79ee2f00a6752965e058a6417
Reviewed-on: https://pdfium-review.googlesource.com/5475
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
|
|
Layering prevents the (newly-moved) CFX_Char from knowing about
this class, so some casting is still required.
Change-Id: I5b7556fdfa80d09e5116b171b01ab5e707763bf0
Reviewed-on: https://pdfium-review.googlesource.com/5172
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
Many of these are already unique_ptrs.
Change-Id: I3695d4ff5a8f7483ad994ac7657897fd55069cd5
Reviewed-on: https://pdfium-review.googlesource.com/4690
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
Change-Id: Id58c313aa446ecfa223e5c8edc095586b62a61fa
Reviewed-on: https://pdfium-review.googlesource.com/4455
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
Replace other one-off implementations as well.
Change-Id: I2878f3fae479c12b7de5234ee3a26477d602d14d
Reviewed-on: https://pdfium-review.googlesource.com/4398
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
The CFX_MemoryStream is the only implementation of IFX_MemoryStream.
This CL removes the interfaces and uses CFX_MemoryStream directly.
Change-Id: I2f43fa39e82dafa7673517d214ae15fd2d0df331
Reviewed-on: https://pdfium-review.googlesource.com/4391
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This CL cleans up the fx_extension file. The stream code was moved to
fx_stream. IFX_FileAccess was removed and CFX_CRTFileAccess split to its
own file. Code shuffled from header to cpp file.
Change-Id: I700fdfcc9797cf4e8050cd9ba010ad8854feefbf
Reviewed-on: https://pdfium-review.googlesource.com/4371
Reviewed-by: Nicolás Peña <npm@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This Cl cleans up the unused defines in fx_codepage.h. The
FXFONT_CHARSET_ defines are replaced with fx_codepage defines, this
moves fx_codepage into core instead of xfa only. Static asserts are
added to verify the public/ charsets match the fx_codepage charsets.
Change-Id: Ie2f749e093de60a9a6743128a1fb087912e4cc96
Reviewed-on: https://pdfium-review.googlesource.com/4316
Commit-Queue: dsinclair <dsinclair@chromium.org>
Commit-Queue: Nicolás Peña <npm@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
|
|
This CL renames the language defines to be country and language code
instead of names. The XFA_LANG copies have been removed in favour
of the FX_LANG variants.
Change-Id: I7307c4128baa29b9c71b37278e018e95b5527e33
Reviewed-on: https://pdfium-review.googlesource.com/4317
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
|
|
This CL moves the FGAS stream code into core/fxcrt and renames to
CFX_SeekableStreamProxy.
Change-Id: I6641fe0cca45a128ef3ec281b0b40f8d60296387
Reviewed-on: https://pdfium-review.googlesource.com/4311
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
|
|
This CL replaces IFGAS_Stream with the only implementation CFGAS_Stream.
The CreateReadStream and CreateWriteStream methods are removed in favour
of calling MakeRetain directly.
Change-Id: I882a89258f642e24fc3d631587db05652bd53ded
Reviewed-on: https://pdfium-review.googlesource.com/4210
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
This Cl removes the wide string read stream and passes through a
memory stream as needed. The callers were updated to pass the
correct types.
Change-Id: I8e2660859a85e38ed1c3f4c596ef7c8242762084
Reviewed-on: https://pdfium-review.googlesource.com/4172
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
|
|
This CL moves ReadData and WriteData into CFGAS_Stream and predicates
their usage on m_isWriteStream. This then removes the two subclasses of
CFGAS_Stream and just passes the correct flag through the constructor.
Change-Id: I72ea88f333c8bdaf5b323b2832479231cfd2c0b8
Reviewed-on: https://pdfium-review.googlesource.com/4154
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
|
|
This CL moves the FX_GetCodePageFromCharset method into cfgas_fontmgr
anonymouse namespace.
Change-Id: I1232341b8639328035f12aebfb7a65a4fc0ba08f
Reviewed-on: https://pdfium-review.googlesource.com/4291
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
Rename CFGAS_TextStream to CFGAS_Stream. CFGAS_Stream is converted
to a base class instead of accepting an IFGAS_StreamImp. Things
which inherted from IFGAS_StreamImp now inherit from CFGAS_Stream.
The stream type inputs are changed to IFX_SeekableStream so that
they can accept the same type (IFX_SeekableStream is an
IFX_SeekableWriteStream and an IFX_SeekableReadStream). This way
the storage can be shared in the base class.
Change-Id: I06645071e68e2a4d4120c0e336529f2c18c2b705
Reviewed-on: https://pdfium-review.googlesource.com/4152
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
|
|
This CL renames several fgas/layout files to match the class names
contained in the files.
Change-Id: Ib4feaa902618e577261e51dbac743cb4cb500ea1
Reviewed-on: https://pdfium-review.googlesource.com/4290
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
|
|
This Cl updates the WriteString method to accept a CFX_WideString.
Change-Id: I9f480abf32f4132f8ca33799e673a9e8540285f6
Reviewed-on: https://pdfium-review.googlesource.com/4151
Reviewed-by: Nicolás Peña <npm@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
Change-Id: I85c8423c177fd7ecd5da90ef89419efc0f9cf44b
Reviewed-on: https://pdfium-review.googlesource.com/4262
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
|
|
The load file methods are always called right after creating the class.
This Cl moves their code up into the constructor and then changes the
other code to assume that the m_pFile{Read|Write} always exists.
Change-Id: I015abf71ea4804d02d4f6f94b97eb1e7855e1fc4
Reviewed-on: https://pdfium-review.googlesource.com/4110
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
Every CFGAS_Stream is wrapped inside a CFGAS_TextStream. This CL folds
the two classes together and merges the methods where needed.
Change-Id: Ic56449b36baa51254d8d600ce631f285ba2cbb80
Reviewed-on: https://pdfium-review.googlesource.com/4057
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
|
|
This Cl removes members from CFGAS_Stream which just mirror values that
are stored in the stream impl or values which aren't used.
Change-Id: Ia2da5a645f4dd3399b3452fd56d833fed341390c
Reviewed-on: https://pdfium-review.googlesource.com/4056
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
The ::ReadString method appears to only be called in the
CFDE_XMLSyntaxParser. The reads happen with a buffer size of 32k which
seems like we won't have to call this too many times.
Change-Id: I3ff522cdb081777b0b0433926392fb1a03455df3
Reviewed-on: https://pdfium-review.googlesource.com/4054
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
The m_iStart flag in CFGAS_Stream is always set to 0. This CL removes
the variable and cleans up the supporting code.
Change-Id: I6f8fa5e97cbcc49802f28f8e1de3eb4792f18183
Reviewed-on: https://pdfium-review.googlesource.com/4053
Reviewed-by: Nicolás Peña <npm@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This Cl moves CXFA_WideTextRead to be in the anonymous namespace of
IFGAS_Stream and adds a IFGAS_Stream::CreateWideStringReadStream()
method.
This is done so we have all the implementations of IFGAS_Stream
centralized.
Change-Id: I9fbbf0a493fc2dd05fcd544e344268214a75d8a1
Reviewed-on: https://pdfium-review.googlesource.com/4052
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
This Cl removes the MakeSeekableReadStream call and, at the one place
it's used, creates an IFX_MemoryStream which is a seekable read stream.
Change-Id: I6b0b23636eff47f8caca5432313ba99703e21e4d
Reviewed-on: https://pdfium-review.googlesource.com/4037
Reviewed-by: Nicolás Peña <npm@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This CL removes the FGAS buffered stream. The only user was unittests
which have been converted to use a ReadStream.
Change-Id: I5af9d3bdf570a307502ea01eef6029db1c8fecef
Reviewed-on: https://pdfium-review.googlesource.com/4036
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
|
|
There are only two types of streams created _File and _Buffer. This CL
simplifes the code by removing other stream types and removes code which
is for those types.
The CFGAS_Stream creation was also inverted to pass in the impl instead
of accepting and setting the stream type.
Change-Id: I73f207d0f458818ab59db915b256c6fdd633a336
Reviewed-on: https://pdfium-review.googlesource.com/4035
Reviewed-by: Nicolás Peña <npm@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This Cl removes all of the steam access flags other then write. Flags
which were always set were removed.
Change-Id: I96df4fa0c95d89f4f454db050f3f032bc163e498
Reviewed-on: https://pdfium-review.googlesource.com/4034
Reviewed-by: Nicolás Peña <npm@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
Remove unused loading methods, fold Create method back into caller.
Change-Id: If3b7b3d1cdaf3d58fc7c07c3e96cf9ac89b61bd4
Reviewed-on: https://pdfium-review.googlesource.com/4033
Reviewed-by: Nicolás Peña <npm@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This CL creates a CreateReadStream and CreateWriteStream method instead
of having a single overloaded method. This removes the need for the cast
at the call sites. The access parameter has been rolled into the method
as it was always passed the same way to each Create*Stream method.
Change-Id: I845951c3fe386b8051daf4f6b2ee5ba29b5c7d54
Reviewed-on: https://pdfium-review.googlesource.com/4032
Reviewed-by: Nicolás Peña <npm@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This CL removes the CreateTextStream method as it is not called.
Change-Id: I628aec2e8f488ad549b3497344ac08c5bb24de51
Reviewed-on: https://pdfium-review.googlesource.com/4014
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
|
|
The CreateShreadStream code is not called, remove.
Change-Id: I62871ce190e50598b7c82ab3b43355dbde6b8b4b
Reviewed-on: https://pdfium-review.googlesource.com/4013
Reviewed-by: Nicolás Peña <npm@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This Cl drops the FXSYS_ from mem methods which are the same on all
platforms.
Bug: pdfium:694
Change-Id: I9d5ae905997dbaaec5aa0b2ae4c07358ed9c6236
Reviewed-on: https://pdfium-review.googlesource.com/3613
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This Cl drops the FXSYS_ from wide string methods which are the same on
all platforms.
Bug: pdfium:694
Change-Id: I46a7af5913e7897f7c4ba712a76540c12105818f
Reviewed-on: https://pdfium-review.googlesource.com/3611
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This Cl drops the FXSYS_ from file methods which are the same on all
platforms.
Bug: pdfium:694
Change-Id: I095c64fed69bf70e00a2594fa94a1fdc71a7060e
Reviewed-on: https://pdfium-review.googlesource.com/3610
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This Cl drops the FXSYS_ from math methods which are the same on all
platforms.
Bug: pdfium:694
Change-Id: I85c9ff841fd9095b1434f67319847ba0cd9df7ac
Reviewed-on: https://pdfium-review.googlesource.com/3598
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
BUG=pdfium:688
Change-Id: I7787b29d0fedc48f1360ab041d43829d0e805462
Change-Id: I7787b29d0fedc48f1360ab041d43829d0e805462
Reviewed-on: https://pdfium-review.googlesource.com/3331
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
|
|
This CL replaces some new's with pdfium::MakeUnique.
Change-Id: I50faf3ed55e7730b094c14a7989a9dd51cf33cbb
Reviewed-on: https://pdfium-review.googlesource.com/3430
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
This CL moves the other XML files contained in core/fxcrt into the
core/fxcrt/xml directory to contain all the fxcrt XML files in one place.
Change-Id: I9faefb1f311bf167b75dfbb7b9b52f25515e3c31
Reviewed-on: https://pdfium-review.googlesource.com/3378
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
BUG=706824
Change-Id: I7f2138689d8e0d93fcb100c0215c8cf6bde427de
Reviewed-on: https://pdfium-review.googlesource.com/3392
Commit-Queue: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Nicolás Peña <npm@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
|
|
Remove unnecessary FreeType include.
BUG=chromium:706824
Change-Id: If3006a047e9431d6bf4111da867a998994034f56
Reviewed-on: https://pdfium-review.googlesource.com/3391
Reviewed-by: Nicolás Peña <npm@chromium.org>
Commit-Queue: Nicolás Peña <npm@chromium.org>
|
|
This Cl renames the the fgas_stream files to match the internal
ifgas_stream class. The majority of the code in ifgas_stream.cpp is
moved into the anonymouse namespace.
Change-Id: I0518103d61df077782d9ab26d0ac87485417f379
Reviewed-on: https://pdfium-review.googlesource.com/3370
Reviewed-by: Nicolás Peña <npm@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This Cl moves the CFX_DateTime, CFX_Decimal and IFX_Locale files into
core/fxcrt and builds only for XFA. The CFX_FormatString code is moved
info fgas/crt and renamed CFGAS_FormatString to match the fgas naming.
Change-Id: I8d9061195d2225da0389cbc9d018fcbd2e9a3c0c
Reviewed-on: https://pdfium-review.googlesource.com/3257
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
|
|
This Cl renames the files to match their contents and splits out headers
where needed.
Change-Id: Ibe2e90ca969a9d05ee73bb956ffa59a63c7ab076
Reviewed-on: https://pdfium-review.googlesource.com/3256
Reviewed-by: Nicolás Peña <npm@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
The name Unitime did not give any indication of what the class
contained. This Cl renames to DateTime to more accurately refect the
class holds a date and time.
Change-Id: I95f96224822f46a7da46ae39c71d2e23fc16f7d5
Reviewed-on: https://pdfium-review.googlesource.com/3255
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
|
|
This CL updates the IFX_Locale code and subclasses to return
CFX_WideStrings instead of taking out params.
Change-Id: Id03499c68161e809607e73b9d8ec778e24631845
Reviewed-on: https://pdfium-review.googlesource.com/3252
Reviewed-by: Nicolás Peña <npm@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This Cl renames several of the files in xfa/fxfa/parser to match the
name of the contained classes. Files with multiple clasess are split
apart when renamed.
Change-Id: Ice8a1279072ee13c2f62a81946be7f42f9ba6007
Reviewed-on: https://pdfium-review.googlesource.com/3250
Commit-Queue: Nicolás Peña <npm@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
This CL moves the .h files to have names corresponding to the contained
classes. The .cpp files are moved alongside the .h files. Any extra
classes in the .h files have been split into their own files.
Change-Id: I14b4efc02417f0df946500e87b6c502e77020db8
Reviewed-on: https://pdfium-review.googlesource.com/3160
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This Cl conbines several more methods from RTFBreak and TXTBreak into
the common Break baseclass.
Change-Id: Ibe2236eb4fd30faab239e7c9c8b578164014eb39
Reviewed-on: https://pdfium-review.googlesource.com/3108
Reviewed-by: Nicolás Peña <npm@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This CL removes the CFX_DateTime class and moves the one used method
into the CFX_Unitime class.
Change-Id: I89f6d099b2c436d8f12b9dc2c5f10ac236ad56ef
Reviewed-on: https://pdfium-review.googlesource.com/3104
Reviewed-by: Nicolás Peña <npm@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|