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
commit8634c0958c532e7d219e649353e1f1a74d52da1b (patch)
tree91352944c8b5c727a385426431d2e62f3301f6ad /src/Document.h
parentf00008fa5a49722171c5b288f988a64443122115 (diff)
downloadscintilla-mirror-8634c0958c532e7d219e649353e1f1a74d52da1b.tar.gz
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.
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 387af74f0..48363d92e 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;