aboutsummaryrefslogtreecommitdiffhomepage
path: root/qt/ScintillaEditBase/ScintillaQt.cpp
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2021-06-17 09:28:05 +1000
committerNeil <nyamatongwe@gmail.com>2021-06-17 09:28:05 +1000
commit9e52243831ceffced1e9f0ef27041770fe13a85a (patch)
treea14b3f24127e77c4c28e16e0b81e0a5dac929e2c /qt/ScintillaEditBase/ScintillaQt.cpp
parent37edcd47eed457d80e353bccfe9e601578ccca33 (diff)
downloadscintilla-mirror-9e52243831ceffced1e9f0ef27041770fe13a85a.tar.gz
Add SciFnDirectStatus, a direct access function which also returns status so can
improve performance for client code that called SCI_GETSTATUS after every API to check for failure.
Diffstat (limited to 'qt/ScintillaEditBase/ScintillaQt.cpp')
-rw-r--r--qt/ScintillaEditBase/ScintillaQt.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/qt/ScintillaEditBase/ScintillaQt.cpp b/qt/ScintillaEditBase/ScintillaQt.cpp
index f90313554..383f32c10 100644
--- a/qt/ScintillaEditBase/ScintillaQt.cpp
+++ b/qt/ScintillaEditBase/ScintillaQt.cpp
@@ -748,6 +748,9 @@ sptr_t ScintillaQt::WndProc(Message iMessage, uptr_t wParam, sptr_t lParam)
case Message::GetDirectFunction:
return reinterpret_cast<sptr_t>(DirectFunction);
+ case Message::GetDirectStatusFunction:
+ return reinterpret_cast<sptr_t>(DirectStatusFunction);
+
case Message::GetDirectPointer:
return reinterpret_cast<sptr_t>(this);
@@ -770,7 +773,17 @@ sptr_t ScintillaQt::DefWndProc(Message, uptr_t, sptr_t)
sptr_t ScintillaQt::DirectFunction(
sptr_t ptr, unsigned int iMessage, uptr_t wParam, sptr_t lParam)
{
- return reinterpret_cast<ScintillaQt *>(ptr)->WndProc(static_cast<Message>(iMessage), wParam, lParam);
+ ScintillaQt *sci = reinterpret_cast<ScintillaQt *>(ptr);
+ return sci->WndProc(static_cast<Message>(iMessage), wParam, lParam);
+}
+
+sptr_t ScintillaQt::DirectStatusFunction(
+ sptr_t ptr, unsigned int iMessage, uptr_t wParam, sptr_t lParam, int *pStatus)
+{
+ ScintillaQt *sci = reinterpret_cast<ScintillaQt *>(ptr);
+ const sptr_t returnValue = sci->WndProc(static_cast<Message>(iMessage), wParam, lParam);
+ *pStatus = static_cast<int>(sci->errorStatus);
+ return returnValue;
}
// Additions to merge in Scientific Toolworks widget structure