aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Document.cxx
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2023-12-20 09:24:23 +1100
committerNeil <nyamatongwe@gmail.com>2023-12-20 09:24:23 +1100
commit1b153f8d8d4b2f09afc2d039256c958e94bd3b05 (patch)
tree00cdb1c67b137efb5715e90cc29640a78773b7a3 /src/Document.cxx
parentef42bb46c5182037e276ceb251e604b1bcff8f38 (diff)
downloadscintilla-mirror-1b153f8d8d4b2f09afc2d039256c958e94bd3b05.tar.gz
Add IDocumentEditable interface for efficient interaction with document objects.
Diffstat (limited to 'src/Document.cxx')
-rw-r--r--src/Document.cxx12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/Document.cxx b/src/Document.cxx
index dcb087930..d67cac25e 100644
--- a/src/Document.cxx
+++ b/src/Document.cxx
@@ -184,7 +184,7 @@ Document::~Document() {
}
// Increase reference count and return its previous value.
-int Document::AddRef() {
+int SCI_METHOD Document::AddRef() noexcept {
return refCount++;
}
@@ -461,6 +461,10 @@ Sci_Position SCI_METHOD Document::LineEnd(Sci_Position line) const {
return cb.LineEnd(line);
}
+int SCI_METHOD Document::DEVersion() const noexcept {
+ return deRelease0;
+}
+
void SCI_METHOD Document::SetErrorStatus(int status) {
// Tell the watchers an error has occurred.
for (const WatcherWithUserData &watcher : watchers) {
@@ -1341,8 +1345,12 @@ int SCI_METHOD Document::AddData(const char *data, Sci_Position length) {
return static_cast<int>(Status::Ok);
}
+IDocumentEditable *Document::AsDocumentEditable() noexcept {
+ return static_cast<IDocumentEditable *>(this);
+}
+
void * SCI_METHOD Document::ConvertToDocument() {
- return this;
+ return AsDocumentEditable();
}
Sci::Position Document::Undo() {