summaryrefslogtreecommitdiff
path: root/xfa/fwl
diff options
context:
space:
mode:
authorHenrique Nakashima <hnakashima@chromium.org>2018-02-07 20:18:15 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-02-07 20:18:15 +0000
commit2496f8e3f3cb1cbfffd664c9b5d7983dc192887b (patch)
tree8d9bae9a959837dc09bdb54d19a301263fbc4bca /xfa/fwl
parent6c67da092ce8bb384f60e2eae32e18b7283ae76e (diff)
downloadpdfium-2496f8e3f3cb1cbfffd664c9b5d7983dc192887b.tar.xz
Restore assert when GetCharacterInfo is called on an empty edit.
CFWL_Edit::UpdateCursorRect now checks if the edit is empty before getting the caret position. Bug: chromium:592750 Change-Id: I792e90537741a78141fa084a646380bfe7ce4637 Reviewed-on: https://pdfium-review.googlesource.com/25910 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Diffstat (limited to 'xfa/fwl')
-rw-r--r--xfa/fwl/cfwl_edit.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/xfa/fwl/cfwl_edit.cpp b/xfa/fwl/cfwl_edit.cpp
index 051c39f74e..b98278c622 100644
--- a/xfa/fwl/cfwl_edit.cpp
+++ b/xfa/fwl/cfwl_edit.cpp
@@ -1075,10 +1075,15 @@ void CFWL_Edit::InitCaret() {
}
void CFWL_Edit::UpdateCursorRect() {
- int32_t bidi_level = 0;
- m_rtCaret = CFX_RectF();
- std::tie(bidi_level, m_rtCaret) =
- m_EdtEngine.GetCharacterInfo(m_CursorPosition);
+ int32_t bidi_level;
+ if (m_EdtEngine.GetLength() > 0) {
+ std::tie(bidi_level, m_rtCaret) =
+ m_EdtEngine.GetCharacterInfo(m_CursorPosition);
+ } else {
+ bidi_level = 0;
+ m_rtCaret = CFX_RectF();
+ }
+
// TODO(dsinclair): This should handle bidi level ...
m_rtCaret.width = 1.0f;