diff options
author | Neil <nyamatongwe@gmail.com> | 2021-05-15 17:18:59 +1000 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2021-05-15 17:18:59 +1000 |
commit | 98e6b6ff51e05ae08e31c81954ff10dfb7191be5 (patch) | |
tree | e64b38e41d43bdfc37f69daeb600f7e7b0371e91 | |
parent | ad7f10a29853beb17663e72e6fd18e8977ebec42 (diff) | |
download | scintilla-mirror-98e6b6ff51e05ae08e31c81954ff10dfb7191be5.tar.gz |
Protect against out-of-bounds layout cache level and remove unnecessary code.
Make documentation more accurate.
-rw-r--r-- | doc/ScintillaDoc.html | 2 | ||||
-rw-r--r-- | src/Editor.cxx | 4 | ||||
-rw-r--r-- | src/PositionCache.cxx | 3 |
3 files changed, 5 insertions, 4 deletions
diff --git a/doc/ScintillaDoc.html b/doc/ScintillaDoc.html index d28b8f859..e24a7a9ad 100644 --- a/doc/ScintillaDoc.html +++ b/doc/ScintillaDoc.html @@ -7450,7 +7450,7 @@ sptr_t CallScintilla(unsigned int iMessage, uptr_t wParam, sptr_t lParam){ <td align="center">1</td> - <td>The line containing the text caret. This is the default.</td> + <td>One line is cached. This is the default.</td> </tr> <tr> diff --git a/src/Editor.cxx b/src/Editor.cxx index a2a2377ef..234e40700 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -6763,7 +6763,9 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { return vs.wrap.indentMode; case SCI_SETLAYOUTCACHE: - view.llc.SetLevel(static_cast<LineLayoutCache::Cache>(wParam)); + if (wParam <= SC_CACHE_DOCUMENT) { + view.llc.SetLevel(static_cast<LineLayoutCache::Cache>(wParam)); + } break; case SCI_GETLAYOUTCACHE: diff --git a/src/PositionCache.cxx b/src/PositionCache.cxx index c1e0a77bd..1839f2072 100644 --- a/src/PositionCache.cxx +++ b/src/PositionCache.cxx @@ -463,8 +463,7 @@ void LineLayoutCache::Invalidate(LineLayout::ValidLevel validity_) noexcept { } void LineLayoutCache::SetLevel(Cache level_) noexcept { - allInvalidated = false; - if ((static_cast<int>(level_) != -1) && (level != level_)) { + if (level != level_) { level = level_; allInvalidated = false; cache.clear(); |