diff options
author | Neil <nyamatongwe@gmail.com> | 2023-12-20 09:24:23 +1100 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2023-12-20 09:24:23 +1100 |
commit | 1b153f8d8d4b2f09afc2d039256c958e94bd3b05 (patch) | |
tree | 00cdb1c67b137efb5715e90cc29640a78773b7a3 /src/Editor.cxx | |
parent | ef42bb46c5182037e276ceb251e604b1bcff8f38 (diff) | |
download | scintilla-mirror-1b153f8d8d4b2f09afc2d039256c958e94bd3b05.tar.gz |
Add IDocumentEditable interface for efficient interaction with document objects.
Diffstat (limited to 'src/Editor.cxx')
-rw-r--r-- | src/Editor.cxx | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx index 28d680d7a..8f29d3a8f 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -6079,6 +6079,10 @@ constexpr Selection::SelTypes SelTypeFromMode(SelectionMode mode) { } } +sptr_t SPtrFromPtr(void *ptr) noexcept { + return reinterpret_cast<sptr_t>(ptr); +} + } void Editor::SetSelectionMode(uptr_t wParam, bool setMoveExtends) { @@ -8216,11 +8220,11 @@ sptr_t Editor::WndProc(Message iMessage, uptr_t wParam, sptr_t lParam) { break; case Message::GetDocPointer: - return reinterpret_cast<sptr_t>(pdoc); + return SPtrFromPtr(pdoc->AsDocumentEditable()); case Message::SetDocPointer: CancelModes(); - SetDocPointer(static_cast<Document *>(PtrFromSPtr(lParam))); + SetDocPointer(static_cast<Document *>(static_cast<IDocumentEditable *>(PtrFromSPtr(lParam)))); return 0; case Message::CreateDocument: { @@ -8228,15 +8232,15 @@ sptr_t Editor::WndProc(Message iMessage, uptr_t wParam, sptr_t lParam) { doc->AddRef(); doc->Allocate(PositionFromUPtr(wParam)); pcs = ContractionStateCreate(pdoc->IsLarge()); - return reinterpret_cast<sptr_t>(doc); + return SPtrFromPtr(doc->AsDocumentEditable()); } case Message::AddRefDocument: - (static_cast<Document *>(PtrFromSPtr(lParam)))->AddRef(); + (static_cast<IDocumentEditable *>(PtrFromSPtr(lParam)))->AddRef(); break; case Message::ReleaseDocument: - (static_cast<Document *>(PtrFromSPtr(lParam)))->Release(); + (static_cast<IDocumentEditable *>(PtrFromSPtr(lParam)))->Release(); break; case Message::GetDocumentOptions: |