aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2020-04-08 14:19:22 +1000
committerNeil <nyamatongwe@gmail.com>2020-04-08 14:19:22 +1000
commit5ec92254c8c55fff77723eaef6afd437ab88d103 (patch)
tree176c6dbc8da0819d711e360ae2fbb65865a71771 /src
parentb8369870e15d4b061ec5d67d0cfbfe04d3a6459f (diff)
downloadscintilla-mirror-5ec92254c8c55fff77723eaef6afd437ab88d103.tar.gz
Simplify PerLine, remove casts, use noexcept, const, & constexpr where possible.
Diffstat (limited to 'src')
-rw-r--r--src/Document.cxx16
-rw-r--r--src/Document.h16
-rw-r--r--src/PerLine.cxx52
-rw-r--r--src/PerLine.h32
4 files changed, 56 insertions, 60 deletions
diff --git a/src/Document.cxx b/src/Document.cxx
index 263e83d7a..2382e1c21 100644
--- a/src/Document.cxx
+++ b/src/Document.cxx
@@ -311,7 +311,7 @@ int Document::GetMark(Sci::Line line) const noexcept {
return Markers()->MarkValue(line);
}
-Sci::Line Document::MarkerNext(Sci::Line lineStart, int mask) const {
+Sci::Line Document::MarkerNext(Sci::Line lineStart, int mask) const noexcept {
return Markers()->MarkerNext(lineStart, mask);
}
@@ -365,15 +365,15 @@ void Document::DeleteAllMarks(int markerNum) {
}
}
-Sci::Line Document::LineFromHandle(int markerHandle) const {
+Sci::Line Document::LineFromHandle(int markerHandle) const noexcept {
return Markers()->LineFromHandle(markerHandle);
}
-int Document::MarkerNumberFromLine(Sci::Line line, int which) const {
+int Document::MarkerNumberFromLine(Sci::Line line, int which) const noexcept {
return Markers()->NumberFromLine(line, which);
}
-int Document::MarkerHandleFromLine(Sci::Line line, int which) const {
+int Document::MarkerHandleFromLine(Sci::Line line, int which) const noexcept {
return Markers()->HandleFromLine(line, which);
}
@@ -2292,7 +2292,7 @@ int SCI_METHOD Document::GetLineState(Sci_Position line) const {
return States()->GetLineState(line);
}
-Sci::Line Document::GetMaxLineState() const {
+Sci::Line Document::GetMaxLineState() const noexcept {
return States()->GetMaxLineState();
}
@@ -2302,7 +2302,7 @@ void SCI_METHOD Document::ChangeLexerState(Sci_Position start, Sci_Position end)
NotifyModified(mh);
}
-StyledText Document::MarginStyledText(Sci::Line line) const {
+StyledText Document::MarginStyledText(Sci::Line line) const noexcept {
const LineAnnotation *pla = Margins();
return StyledText(pla->Length(line), pla->Text(line),
pla->MultipleStyles(line), pla->Style(line), pla->Styles(line));
@@ -2335,7 +2335,7 @@ void Document::MarginClearAll() {
Margins()->ClearAll();
}
-StyledText Document::AnnotationStyledText(Sci::Line line) const {
+StyledText Document::AnnotationStyledText(Sci::Line line) const noexcept {
const LineAnnotation *pla = Annotations();
return StyledText(pla->Length(line), pla->Text(line),
pla->MultipleStyles(line), pla->Style(line), pla->Styles(line));
@@ -2366,7 +2366,7 @@ void Document::AnnotationSetStyles(Sci::Line line, const unsigned char *styles)
}
}
-int Document::AnnotationLines(Sci::Line line) const {
+int Document::AnnotationLines(Sci::Line line) const noexcept {
return Annotations()->Lines(line);
}
diff --git a/src/Document.h b/src/Document.h
index 1f03dda1d..a1d9ff7c2 100644
--- a/src/Document.h
+++ b/src/Document.h
@@ -396,15 +396,15 @@ public:
cb.GetStyleRange(buffer, position, lengthRetrieve);
}
int GetMark(Sci::Line line) const noexcept;
- Sci::Line MarkerNext(Sci::Line lineStart, int mask) const;
+ Sci::Line MarkerNext(Sci::Line lineStart, int mask) const noexcept;
int AddMark(Sci::Line line, int markerNum);
void AddMarkSet(Sci::Line line, int valueSet);
void DeleteMark(Sci::Line line, int markerNum);
void DeleteMarkFromHandle(int markerHandle);
void DeleteAllMarks(int markerNum);
- Sci::Line LineFromHandle(int markerHandle) const;
- int MarkerNumberFromLine(Sci::Line line, int which) const;
- int MarkerHandleFromLine(Sci::Line line, int which) const;
+ Sci::Line LineFromHandle(int markerHandle) const noexcept;
+ int MarkerNumberFromLine(Sci::Line line, int which) const noexcept;
+ int MarkerHandleFromLine(Sci::Line line, int which) const noexcept;
Sci_Position SCI_METHOD LineStart(Sci_Position line) const override;
bool IsLineStartPosition(Sci::Position position) const;
Sci_Position SCI_METHOD LineEnd(Sci_Position line) const override;
@@ -466,20 +466,20 @@ public:
int SCI_METHOD SetLineState(Sci_Position line, int state) override;
int SCI_METHOD GetLineState(Sci_Position line) const override;
- Sci::Line GetMaxLineState() const;
+ Sci::Line GetMaxLineState() const noexcept;
void SCI_METHOD ChangeLexerState(Sci_Position start, Sci_Position end) override;
- StyledText MarginStyledText(Sci::Line line) const;
+ StyledText MarginStyledText(Sci::Line line) const noexcept;
void MarginSetStyle(Sci::Line line, int style);
void MarginSetStyles(Sci::Line line, const unsigned char *styles);
void MarginSetText(Sci::Line line, const char *text);
void MarginClearAll();
- StyledText AnnotationStyledText(Sci::Line line) const;
+ StyledText AnnotationStyledText(Sci::Line line) const noexcept;
void AnnotationSetText(Sci::Line line, const char *text);
void AnnotationSetStyle(Sci::Line line, int style);
void AnnotationSetStyles(Sci::Line line, const unsigned char *styles);
- int AnnotationLines(Sci::Line line) const;
+ int AnnotationLines(Sci::Line line) const noexcept;
void AnnotationClearAll();
bool AddWatcher(DocWatcher *watcher, void *userData);
diff --git a/src/PerLine.cxx b/src/PerLine.cxx
index 31da695ad..aa85faa28 100644
--- a/src/PerLine.cxx
+++ b/src/PerLine.cxx
@@ -85,7 +85,7 @@ bool MarkerHandleSet::RemoveNumber(int markerNum, bool all) {
return performedDeletion;
}
-void MarkerHandleSet::CombineWith(MarkerHandleSet *other) {
+void MarkerHandleSet::CombineWith(MarkerHandleSet *other) noexcept {
mhList.splice_after(mhList.before_begin(), other->mhList);
}
@@ -112,20 +112,16 @@ void LineMarkers::RemoveLine(Sci::Line line) {
}
}
-Sci::Line LineMarkers::LineFromHandle(int markerHandle) {
- if (markers.Length()) {
- for (Sci::Line line = 0; line < markers.Length(); line++) {
- if (markers[line]) {
- if (markers[line]->Contains(markerHandle)) {
- return line;
- }
- }
+Sci::Line LineMarkers::LineFromHandle(int markerHandle) const noexcept {
+ for (Sci::Line line = 0; line < markers.Length(); line++) {
+ if (markers[line] && markers[line]->Contains(markerHandle)) {
+ return line;
}
}
return -1;
}
-int LineMarkers::HandleFromLine(Sci::Line line, int which) const {
+int LineMarkers::HandleFromLine(Sci::Line line, int which) const noexcept {
if (markers.Length() && (line >= 0) && (line < markers.Length()) && markers[line]) {
MarkerHandleNumber const *pnmh = markers[line]->GetMarkerHandleNumber(which);
return pnmh ? pnmh->handle : -1;
@@ -133,7 +129,7 @@ int LineMarkers::HandleFromLine(Sci::Line line, int which) const {
return -1;
}
-int LineMarkers::NumberFromLine(Sci::Line line, int which) const {
+int LineMarkers::NumberFromLine(Sci::Line line, int which) const noexcept {
if (markers.Length() && (line >= 0) && (line < markers.Length()) && markers[line]) {
MarkerHandleNumber const *pnmh = markers[line]->GetMarkerHandleNumber(which);
return pnmh ? pnmh->number : -1;
@@ -150,17 +146,17 @@ void LineMarkers::MergeMarkers(Sci::Line line) {
}
}
-int LineMarkers::MarkValue(Sci::Line line) noexcept {
+int LineMarkers::MarkValue(Sci::Line line) const noexcept {
if (markers.Length() && (line >= 0) && (line < markers.Length()) && markers[line])
return markers[line]->MarkValue();
else
return 0;
}
-Sci::Line LineMarkers::MarkerNext(Sci::Line lineStart, int mask) const {
+Sci::Line LineMarkers::MarkerNext(Sci::Line lineStart, int mask) const noexcept {
if (lineStart < 0)
lineStart = 0;
- const Sci::Line length = static_cast<Sci::Line>(markers.Length());
+ const Sci::Line length = markers.Length();
for (Sci::Line iLine = lineStart; iLine < length; iLine++) {
const MarkerHandleSet *onLine = markers[iLine].get();
if (onLine && ((onLine->MarkValue() & mask) != 0))
@@ -262,7 +258,7 @@ int LineLevels::SetLevel(Sci::Line line, int level, Sci::Line lines) {
return prev;
}
-int LineLevels::GetLevel(Sci::Line line) const {
+int LineLevels::GetLevel(Sci::Line line) const noexcept {
if (levels.Length() && (line >= 0) && (line < levels.Length())) {
return levels[line];
} else {
@@ -305,8 +301,8 @@ int LineState::GetLineState(Sci::Line line) {
return lineStates[line];
}
-Sci::Line LineState::GetMaxLineState() const {
- return static_cast<Sci::Line>(lineStates.Length());
+Sci::Line LineState::GetMaxLineState() const noexcept {
+ return lineStates.Length();
}
static int NumberLines(const char *text) noexcept {
@@ -326,7 +322,7 @@ static int NumberLines(const char *text) noexcept {
// Each allocated LineAnnotation is a char array which starts with an AnnotationHeader
// and then has text and optional styles.
-static const int IndividualStyles = 0x100;
+static constexpr int IndividualStyles = 0x100;
struct AnnotationHeader {
short style; // Style IndividualStyles implies array of styles
@@ -355,35 +351,35 @@ void LineAnnotation::RemoveLine(Sci::Line line) {
}
}
-bool LineAnnotation::MultipleStyles(Sci::Line line) const {
+bool LineAnnotation::MultipleStyles(Sci::Line line) const noexcept {
if (annotations.Length() && (line >= 0) && (line < annotations.Length()) && annotations[line])
return reinterpret_cast<AnnotationHeader *>(annotations[line].get())->style == IndividualStyles;
else
return false;
}
-int LineAnnotation::Style(Sci::Line line) const {
+int LineAnnotation::Style(Sci::Line line) const noexcept {
if (annotations.Length() && (line >= 0) && (line < annotations.Length()) && annotations[line])
return reinterpret_cast<AnnotationHeader *>(annotations[line].get())->style;
else
return 0;
}
-const char *LineAnnotation::Text(Sci::Line line) const {
+const char *LineAnnotation::Text(Sci::Line line) const noexcept {
if (annotations.Length() && (line >= 0) && (line < annotations.Length()) && annotations[line])
return annotations[line].get()+sizeof(AnnotationHeader);
else
return nullptr;
}
-const unsigned char *LineAnnotation::Styles(Sci::Line line) const {
+const unsigned char *LineAnnotation::Styles(Sci::Line line) const noexcept {
if (annotations.Length() && (line >= 0) && (line < annotations.Length()) && annotations[line] && MultipleStyles(line))
return reinterpret_cast<unsigned char *>(annotations[line].get() + sizeof(AnnotationHeader) + Length(line));
else
return nullptr;
}
-static std::unique_ptr<char[]>AllocateAnnotation(int length, int style) {
+static std::unique_ptr<char[]>AllocateAnnotation(size_t length, int style) {
const size_t len = sizeof(AnnotationHeader) + length + ((style == IndividualStyles) ? length : 0);
return std::make_unique<char[]>(len);
}
@@ -392,7 +388,7 @@ void LineAnnotation::SetText(Sci::Line line, const char *text) {
if (text && (line >= 0)) {
annotations.EnsureLength(line+1);
const int style = Style(line);
- annotations[line] = AllocateAnnotation(static_cast<int>(strlen(text)), style);
+ annotations[line] = AllocateAnnotation(strlen(text), style);
char *pa = annotations[line].get();
assert(pa);
AnnotationHeader *pah = reinterpret_cast<AnnotationHeader *>(pa);
@@ -441,14 +437,14 @@ void LineAnnotation::SetStyles(Sci::Line line, const unsigned char *styles) {
}
}
-int LineAnnotation::Length(Sci::Line line) const {
+int LineAnnotation::Length(Sci::Line line) const noexcept {
if (annotations.Length() && (line >= 0) && (line < annotations.Length()) && annotations[line])
return reinterpret_cast<AnnotationHeader *>(annotations[line].get())->length;
else
return 0;
}
-int LineAnnotation::Lines(Sci::Line line) const {
+int LineAnnotation::Lines(Sci::Line line) const noexcept {
if (annotations.Length() && (line >= 0) && (line < annotations.Length()) && annotations[line])
return reinterpret_cast<AnnotationHeader *>(annotations[line].get())->lines;
else
@@ -476,7 +472,7 @@ void LineTabstops::RemoveLine(Sci::Line line) {
}
}
-bool LineTabstops::ClearTabstops(Sci::Line line) {
+bool LineTabstops::ClearTabstops(Sci::Line line) noexcept {
if (line < tabstops.Length()) {
TabstopList *tl = tabstops[line].get();
if (tl) {
@@ -506,7 +502,7 @@ bool LineTabstops::AddTabstop(Sci::Line line, int x) {
return false;
}
-int LineTabstops::GetNextTabstop(Sci::Line line, int x) const {
+int LineTabstops::GetNextTabstop(Sci::Line line, int x) const noexcept {
if (line < tabstops.Length()) {
TabstopList *tl = tabstops[line].get();
if (tl) {
diff --git a/src/PerLine.h b/src/PerLine.h
index 3da02b5e5..b6565fcc1 100644
--- a/src/PerLine.h
+++ b/src/PerLine.h
@@ -40,7 +40,7 @@ public:
bool InsertHandle(int handle, int markerNum);
void RemoveHandle(int handle);
bool RemoveNumber(int markerNum, bool all);
- void CombineWith(MarkerHandleSet *other);
+ void CombineWith(MarkerHandleSet *other) noexcept;
MarkerHandleNumber const *GetMarkerHandleNumber(int which) const noexcept;
};
@@ -61,15 +61,15 @@ public:
void InsertLine(Sci::Line line) override;
void RemoveLine(Sci::Line line) override;
- int MarkValue(Sci::Line line) noexcept;
- Sci::Line MarkerNext(Sci::Line lineStart, int mask) const;
+ int MarkValue(Sci::Line line) const noexcept;
+ Sci::Line MarkerNext(Sci::Line lineStart, int mask) const noexcept;
int AddMark(Sci::Line line, int markerNum, Sci::Line lines);
void MergeMarkers(Sci::Line line);
bool DeleteMark(Sci::Line line, int markerNum, bool all);
void DeleteMarkFromHandle(int markerHandle);
- Sci::Line LineFromHandle(int markerHandle);
- int HandleFromLine(Sci::Line line, int which) const;
- int NumberFromLine(Sci::Line line, int which) const;
+ Sci::Line LineFromHandle(int markerHandle) const noexcept;
+ int HandleFromLine(Sci::Line line, int which) const noexcept;
+ int NumberFromLine(Sci::Line line, int which) const noexcept;
};
class LineLevels : public PerLine {
@@ -90,7 +90,7 @@ public:
void ExpandLevels(Sci::Line sizeNew=-1);
void ClearLevels();
int SetLevel(Sci::Line line, int level, Sci::Line lines);
- int GetLevel(Sci::Line line) const;
+ int GetLevel(Sci::Line line) const noexcept;
};
class LineState : public PerLine {
@@ -110,7 +110,7 @@ public:
int SetLineState(Sci::Line line, int state);
int GetLineState(Sci::Line line);
- Sci::Line GetMaxLineState() const;
+ Sci::Line GetMaxLineState() const noexcept;
};
class LineAnnotation : public PerLine {
@@ -128,16 +128,16 @@ public:
void InsertLine(Sci::Line line) override;
void RemoveLine(Sci::Line line) override;
- bool MultipleStyles(Sci::Line line) const;
- int Style(Sci::Line line) const;
- const char *Text(Sci::Line line) const;
- const unsigned char *Styles(Sci::Line line) const;
+ bool MultipleStyles(Sci::Line line) const noexcept;
+ int Style(Sci::Line line) const noexcept;
+ const char *Text(Sci::Line line) const noexcept;
+ const unsigned char *Styles(Sci::Line line) const noexcept;
void SetText(Sci::Line line, const char *text);
void ClearAll();
void SetStyle(Sci::Line line, int style);
void SetStyles(Sci::Line line, const unsigned char *styles);
- int Length(Sci::Line line) const;
- int Lines(Sci::Line line) const;
+ int Length(Sci::Line line) const noexcept;
+ int Lines(Sci::Line line) const noexcept;
};
typedef std::vector<int> TabstopList;
@@ -157,9 +157,9 @@ public:
void InsertLine(Sci::Line line) override;
void RemoveLine(Sci::Line line) override;
- bool ClearTabstops(Sci::Line line);
+ bool ClearTabstops(Sci::Line line) noexcept;
bool AddTabstop(Sci::Line line, int x);
- int GetNextTabstop(Sci::Line line, int x) const;
+ int GetNextTabstop(Sci::Line line, int x) const noexcept;
};
}