diff options
author | Henrique Nakashima <hnakashima@chromium.org> | 2018-02-07 20:18:15 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-02-07 20:18:15 +0000 |
commit | 2496f8e3f3cb1cbfffd664c9b5d7983dc192887b (patch) | |
tree | 8d9bae9a959837dc09bdb54d19a301263fbc4bca /xfa/fwl | |
parent | 6c67da092ce8bb384f60e2eae32e18b7283ae76e (diff) | |
download | pdfium-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.cpp | 13 |
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; |