From 810edc4827347f3e0c1bc4d835c6f7a58e8bd66c Mon Sep 17 00:00:00 2001 From: Zufu Liu Date: Fri, 24 May 2019 12:23:46 +1000 Subject: Backport: Optimize SCI_GETCURLINE by avoiding per-character calls. Backport of changeset 7504:b46332260eee. --- src/Editor.cxx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/Editor.cxx b/src/Editor.cxx index e024804bd..ffbf4e0ef 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -6434,11 +6434,9 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { } PLATFORM_ASSERT(wParam > 0); char *ptr = CharPtrFromSPtr(lParam); - unsigned int iPlace = 0; - for (Sci::Position iChar = lineStart; iChar < lineEnd && iPlace < wParam - 1; iChar++) { - ptr[iPlace++] = pdoc->CharAt(iChar); - } - ptr[iPlace] = '\0'; + const Sci::Position len = std::min(lineEnd - lineStart, wParam - 1); + pdoc->GetCharRange(ptr, lineStart, len); + ptr[len] = '\0'; return sel.MainCaret() - lineStart; } -- cgit v1.2.3