Age | Commit message (Collapse) | Author |
|
This CL rebuilds the text edit engine in a simpler fashion. Instead of
depending on multiple pages, paragraphs and buffer fields there is a
single text edit engine which contains a gap buffer.
This makes the code easier to understand and follow.
Change-Id: I10fe85603fa9ed15a647eaac2d931f113cd0c7b0
Reviewed-on: https://pdfium-review.googlesource.com/11990
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
|
|
This CL updates the text edit engine to load and unload the page
directly instead of calling through the edit widget.
Change-Id: I636c8e8b0e635968222430098d3d268c75224b42
Reviewed-on: https://pdfium-review.googlesource.com/11590
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This CL cleans up the GetPre* methods in CFDE_TextEdtEngine. In
particular:
* GetPreDeleteText was inlined as it was very simple
* GetPreReplaceText was removed as unused
* GetPreInsertText was renamed to InsertIntoTextCopy to make clear
that this was doing the insert into a copy of the text.
Change-Id: Icde0126b6ddb0ec9d4956238ebff53c9fe51c051
Reviewed-on: https://pdfium-review.googlesource.com/11531
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
Previously text break was a unique_ptr inside the CFDE_TxtEdtEngine.
This CL converts it to be a member instead of a unique_ptr. We never
replace the pointer after it's created.
Change-Id: I89ab73e81c63c24abfacd38a1141db6473d77640
Reviewed-on: https://pdfium-review.googlesource.com/11530
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This CL converts the return value to be an enum class and updates the
usages to use the names instead of values.
Change-Id: I8b6927551679ac4103775a04187daad2e0d6c569
Reviewed-on: https://pdfium-review.googlesource.com/11512
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This CL converts the enum to an enum class and updates the usage as
needed.
Change-Id: I7ba883e7d1debee00d3d9baafe941620109df8b8
Reviewed-on: https://pdfium-review.googlesource.com/11511
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This CL cleans up nits in CFDE_TxtEdtBuf and simplifies some of the
methods.
Change-Id: I2092da8e27281a577752fc331fec0612a349dfd6
Reviewed-on: https://pdfium-review.googlesource.com/11335
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
|
|
Converted CFDE_TxtEdtBuf::Insert(), CFDE_TxtEdtEngine::Insert(), and
CFDE_TxtEdtEngine::Inner_Insert() to take in CFX_WideString instead of
a wchar_t* and length.
Bug=pdfium:757
Change-Id: I6097e9b0d4e584b920b2117b4c5489eedef37767
Reviewed-on: https://pdfium-review.googlesource.com/11411
Commit-Queue: Jane Liu <janeliulwq@google.com>
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
This CL cleans up formatting and simplifies logic in CFDE_TextOut.
Change-Id: Ib675a35da79df77854f51e86bf24e5dc90b33b06
Reviewed-on: https://pdfium-review.googlesource.com/11334
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
Bug: pdfium:872
Change-Id: Ib7f0e3708cea2d16d7536ae26777ddc48d7e2c1d
Reviewed-on: https://pdfium-review.googlesource.com/11370
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
|
|
This CL removes a bunch of redundant members from the text edit engine.
The change information tracking was removed as most of it was unused or
was used inconsistently.
Change-Id: I92460594e46accff0b78e1183c8574fc83ce728a
Reviewed-on: https://pdfium-review.googlesource.com/11275
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This CL changes caret movement into an enum class and removes the
MoveNone flag.
Change-Id: I8a01b057942d45ceae9a6c3b95cfe3b8dc9ce9a5
Reviewed-on: https://pdfium-review.googlesource.com/11274
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This CL cleans up CFDE_TxtEdtEngine::{Insert|Delete} to cleanup return
values, input params and other unused bits.
Change-Id: I53c4475ce3dc6518058bc130e9710842df841032
Reviewed-on: https://pdfium-review.googlesource.com/11273
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
The GetTextLength method just proxies to GetTextBufLength. This CL
removes GetTextBufLength and puts the functionality into GetTextLength.
Change-Id: If324fbeddd05cd63570b6942dc613e273a1fbce7
Reviewed-on: https://pdfium-review.googlesource.com/11272
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This CL fixes the visibility of some methods in xfa/fde along with
removing unused methods. Unused params are also removed.
Change-Id: Ic6e6d2ac8d07dc4bdabb3e0121831e4bf3fbb8ec
Reviewed-on: https://pdfium-review.googlesource.com/11271
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This CL moves several methods from the CFDE_TxtEdt* classes from the
.cpp to .h files. As well, the GetCaretRect method is updated to return
the rect instead of using an out param.
Change-Id: I1288701f47d9ac1c413fbf06627f20b295b18b86
Reviewed-on: https://pdfium-review.googlesource.com/11270
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
|
|
The three CFDE_TxtEdtEngine layout methods are always called in
sequence. Update to only have a single Layout() method. Simplify the
layout code to use existing helpers.
Change-Id: I0f4d9714f231ca3cebf43579d215d97bd2fe525a
Reviewed-on: https://pdfium-review.googlesource.com/11231
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
|
|
This CL removes the remaining friendship in CFDE_TxtEdtEngine but adding
public methods for CFDE_TxtEdtPage to access.
Change-Id: I9e6420921bc4567a499c8e688c6db51029659ae8
Reviewed-on: https://pdfium-review.googlesource.com/11230
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This CL moves the implementation of the records which handle undo/redo
in the text edit engine into an anonymous namespace in the engine.
Change-Id: I299b9738b72e3eccbbec972fd3ea956c491859fa
Reviewed-on: https://pdfium-review.googlesource.com/11010
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This CL removes the default params from methods in xfa/fde.
Change-Id: Ide93a51430c62753656b9e9c0bcd842d8179aa3c
Reviewed-on: https://pdfium-review.googlesource.com/10952
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This CL cleans up more defines and shuffles some fde code around to
better locations.
Change-Id: I6af0e991d9fa489ca45d1d0f9d041657beef3b7e
Reviewed-on: https://pdfium-review.googlesource.com/10613
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
This CL replaceds FDE_TTOSTYLE defines with a FDE_TextStyle struct which
is used to set the needed flags. The FDE_TTOALIGNMENT defines are
replaced with an enum class and unused members have been removed.
Change-Id: Ib0e2818a82e7f1961de57f8d15703477f8235a03
Reviewed-on: https://pdfium-review.googlesource.com/10530
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This Cl cleans up more IFX_Pause parameters which are always null.
Change-Id: Ia48600f06216db64a2db8e6e97222a91bd4ba149
Reviewed-on: https://pdfium-review.googlesource.com/4890
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
|
|
Change-Id: I2525684dd5662ef9cb95f63a68443faa97f4e25b
Reviewed-on: https://pdfium-review.googlesource.com/4812
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: dsinclair <dsinclair@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 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>
|
|
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 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 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>
|
|
This CL renames the textout file to cfde_textout to match the classname
and moves up one directory to xfa/fde.
Change-Id: I0b405961b8406818a2eb3cbb30f87620afa6ab7a
Reviewed-on: https://pdfium-review.googlesource.com/3373
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
This Cl moves more of the CFX classes defined in the xfa/ directory to
the core/fxcrt directory and conditionally builds them.
Change-Id: I811e6c6acd31dfbe75b49880be43661f78334013
Reviewed-on: https://pdfium-review.googlesource.com/3372
Reviewed-by: Nicolás Peña <npm@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
Change-Id: I87521aa9bdc796895f1db144fda22b1cb44d2089
Reviewed-on: https://pdfium-review.googlesource.com/3215
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
Change-Id: I651782e6eb6b14580a89d9d613404e7984a76cf0
Reviewed-on: https://pdfium-review.googlesource.com/3141
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
|
|
This CL starts extracting common members between the two break classes
into a common base class. This also normalizes some of the member names
to be the same across classes.
Change-Id: I7f4e5065f2dac79eb4ebba397458236cc0609d38
Reviewed-on: https://pdfium-review.googlesource.com/3058
Reviewed-by: Nicolás Peña <npm@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
|
|
Change-Id: I158b7d80b0ec28b742a9f2d5a96f3dde7fb3ab56
Reviewed-on: https://pdfium-review.googlesource.com/3031
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
|
|
Change-Id: I96e0a20d66b9184d22f64d8e4ce0dadd5a78c1e8
Reviewed-on: https://pdfium-review.googlesource.com/2967
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
Remove interfaces which are only implemented once.
Change-Id: I73ceaa7bfd7ef2a630479c7eebed5e32ecb99940
Reviewed-on: https://pdfium-review.googlesource.com/2944
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
The rotation value is always 0 so we end up doing nothing for the
rotation.
Change-Id: Ib12a269d4f3c16961b1b934bf9dfc04d1c368e51
Reviewed-on: https://pdfium-review.googlesource.com/2943
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 unused TXTLAYOUTSTYLE and TXTCHARTYLE defines from
fgas_textbreak. This also ripples and removes some of the defined
styles from fde_textout as well.
Change-Id: Ic647e97694366685bbad367e0a7ba61a00416598
Reviewed-on: https://pdfium-review.googlesource.com/2942
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
|
|
This Cl replaces the FX_TXTLINEALIGNMENT_ defines with an enum and
cleans up various usages.
Change-Id: I5ff20f046322e5cd39a7d2abbd8735eac81e8c69
Reviewed-on: https://pdfium-review.googlesource.com/2941
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
|
|
These are unset in the code, remove support.
Change-Id: I76ef73929a1f74f59ccdd7bbd054d04dc9c5c6e7
Reviewed-on: https://pdfium-review.googlesource.com/2938
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
|
|
This Cl updates the code to use the constructors instead of creating an
empty object and calling Set(). It also removes the various memsets of
the CFX_Rect{F} classes.
Change-Id: I6e20cec00866a38372858dcba5a30d31103172e4
Reviewed-on: https://pdfium-review.googlesource.com/2550
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
It's a ref-counted class, so if we're in the destructor, the ref
count has hit zero. We can't make a new ref pointer to itself here,
as it will re-invoke the destructor when it goes out of scope. This
should have been an obvious anti-pattern in hindsight.
The object in question can't be in the m_pFontManager, since the font
manager retains a reference, and we wouldn't get to this destructor
while that is present. So the cleanup isn't required.
Fixing this revealed a free-delete mismatch in cxfa_textlayout.cpp.
I also converted to use unique_ptrs in a few places near this issue.
Fixing this revealed a UAF in CFGAS_GEFont, memcpy'ing a RetainPtr
is not a good idea as it doesn't bump the ref count.
Also protect and friend the CFGAS_GEFont destructor, to make sure
random deletes don't happen.
Also kill off a const cast, and remove unnecessary conversion to
retain_ptr when we already have one.
TEST=look for absence of -11 in XFA corpus test logs, bots not
currently noticing the segv. Argh.
Review-Url: https://codereview.chromium.org/2631703003
|
|
This CL removes the custom allocator from CFDE_TxtEdtBuf and uses
std::vector<std::unique_ptr>> instead.
The Iterator code has been made an inner class of the buffer and rename to
CFDE_TxtEdtBuf::Iterator instead of CFDE_TxtEdtBufIter.
Change-Id: Ied8e844dea700e0ef37087f0d3fad4882d9eada1
Reviewed-on: https://pdfium-review.googlesource.com/2159
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
|
|
This CL adds a set of unit tests for the text edit buffer. It fixes up a few
bugs found adding the tests and removes the unused ::Optimize method.
Review-Url: https://codereview.chromium.org/2614383003
|
|
We worry about cyclical references, but no leaks found.
Review-Url: https://codereview.chromium.org/2609423003
|
|
This CL removes the flags from CFWL_Edit which are never set. In turn, the
coresponding text edit engine flags are removed.
Review-Url: https://codereview.chromium.org/2570033003
|
|
Be suspicious of |new|. This removes some of the
easy cases.
Review-Url: https://codereview.chromium.org/2571913002
|