aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Document.h
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2018-04-21 08:43:03 +1000
committerNeil <nyamatongwe@gmail.com>2018-04-21 08:43:03 +1000
commit2a1338ce2d7c813db6f650154e2e3b6fdde06ff5 (patch)
treed076bc0442e8f06531bbaf04c13fc2e53a35b483 /src/Document.h
parent15789ad27ff66c8928d7dc90683af11d6c045009 (diff)
downloadscintilla-mirror-2a1338ce2d7c813db6f650154e2e3b6fdde06ff5.tar.gz
Backport: Tighten definition of regular expression iterators so they are noexcept and
define all the standard member functions. This cascades to all methods called by the iterators, affecting Document, CellBuffer, Partitioning, SplitVector and UTF-8 and DBCS functions. Other trivial functions declared noexcept. Backport of changeset 6724:f2dfdc0dddd3.
Diffstat (limited to 'src/Document.h')
-rw-r--r--src/Document.h19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/Document.h b/src/Document.h
index 397c7a233..9bfc0983f 100644
--- a/src/Document.h
+++ b/src/Document.h
@@ -240,11 +240,11 @@ public:
struct CharacterExtracted {
unsigned int character;
unsigned int widthBytes;
- CharacterExtracted(unsigned int character_, unsigned int widthBytes_) :
+ CharacterExtracted(unsigned int character_, unsigned int widthBytes_) noexcept :
character(character_), widthBytes(widthBytes_) {
}
// For DBCS characters turn 2 bytes into an int
- static CharacterExtracted DBCS(unsigned char lead, unsigned char trail) {
+ static CharacterExtracted DBCS(unsigned char lead, unsigned char trail) noexcept {
return CharacterExtracted((lead << 8) | trail, 2);
}
};
@@ -266,7 +266,9 @@ public:
Document(int options);
// Deleted so Document objects can not be copied.
Document(const Document &) = delete;
+ Document(Document &&) = delete;
void operator=(const Document &) = delete;
+ Document &operator=(Document &&) = delete;
~Document() override;
int AddRef();
@@ -290,15 +292,15 @@ public:
void SCI_METHOD SetErrorStatus(int status) override;
Sci_Position SCI_METHOD LineFromPosition(Sci_Position pos) const override;
- Sci::Line SciLineFromPosition(Sci::Position pos) const; // Avoids casting LineFromPosition
+ Sci::Line SciLineFromPosition(Sci::Position pos) const noexcept; // Avoids casting LineFromPosition
Sci::Position ClampPositionIntoDocument(Sci::Position pos) const;
bool ContainsLineEnd(const char *s, Sci::Position length) const { return cb.ContainsLineEnd(s, length); }
bool IsCrLf(Sci::Position pos) const;
int LenChar(Sci::Position pos);
- bool InGoodUTF8(Sci::Position pos, Sci::Position &start, Sci::Position &end) const;
+ bool InGoodUTF8(Sci::Position pos, Sci::Position &start, Sci::Position &end) const noexcept;
Sci::Position MovePositionOutsideChar(Sci::Position pos, Sci::Position moveDir, bool checkLineEnd=true) const;
- Sci::Position NextPosition(Sci::Position pos, int moveDir) const;
- bool NextCharacter(Sci::Position &pos, int moveDir) const; // Returns true if pos changed
+ Sci::Position NextPosition(Sci::Position pos, int moveDir) const noexcept;
+ bool NextCharacter(Sci::Position &pos, int moveDir) const noexcept; // Returns true if pos changed
Document::CharacterExtracted CharacterAfter(Sci::Position position) const;
Document::CharacterExtracted CharacterBefore(Sci::Position position) const;
Sci_Position SCI_METHOD GetRelativePosition(Sci_Position positionStart, Sci_Position characterOffset) const override;
@@ -306,6 +308,7 @@ public:
int SCI_METHOD GetCharacterAndWidth(Sci_Position position, Sci_Position *pWidth) const override;
int SCI_METHOD CodePage() const override;
bool SCI_METHOD IsDBCSLeadByte(char ch) const override;
+ bool IsDBCSLeadByteNoExcept(char ch) const noexcept;
int SafeSegment(const char *text, int length, int lengthSegment) const;
EncodingFamily CodePageFamily() const;
@@ -359,7 +362,7 @@ public:
void DelChar(Sci::Position pos);
void DelCharBack(Sci::Position pos);
- char CharAt(Sci::Position position) const { return cb.CharAt(position); }
+ char CharAt(Sci::Position position) const noexcept { return cb.CharAt(position); }
void SCI_METHOD GetCharRange(char *buffer, Sci_Position position, Sci_Position lengthRetrieve) const override {
cb.GetCharRange(buffer, position, lengthRetrieve);
}
@@ -397,7 +400,7 @@ public:
Sci_Position SCI_METHOD Length() const override { return cb.Length(); }
void Allocate(Sci::Position newSize) { cb.Allocate(newSize); }
- CharacterExtracted ExtractCharacter(Sci::Position position) const;
+ CharacterExtracted ExtractCharacter(Sci::Position position) const noexcept;
bool IsWordStartAt(Sci::Position pos) const;
bool IsWordEndAt(Sci::Position pos) const;