aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2017-05-01 14:03:31 +1000
committerNeil <nyamatongwe@gmail.com>2017-05-01 14:03:31 +1000
commit782ada0bab34bb56c4023c070e6eb355ca32cdf2 (patch)
tree934d93284fdf214b2761097308252838bb9a9f6f /src
parent102a874a3a8ca376e08d1319b36833297bea39ae (diff)
downloadscintilla-mirror-782ada0bab34bb56c4023c070e6eb355ca32cdf2.tar.gz
Use std::unique_ptr to simplify ContractionState.
Diffstat (limited to 'src')
-rw-r--r--src/ContractionState.cxx28
-rw-r--r--src/ContractionState.h12
2 files changed, 17 insertions, 23 deletions
diff --git a/src/ContractionState.cxx b/src/ContractionState.cxx
index 616f6bb87..60042bf88 100644
--- a/src/ContractionState.cxx
+++ b/src/ContractionState.cxx
@@ -26,8 +26,7 @@
using namespace Scintilla;
#endif
-ContractionState::ContractionState() : visible(0), expanded(0), heights(0), foldDisplayTexts(0), displayLines(0), linesInDocument(1) {
- //InsertLine(0);
+ContractionState::ContractionState() : linesInDocument(1) {
}
ContractionState::~ContractionState() {
@@ -36,26 +35,21 @@ ContractionState::~ContractionState() {
void ContractionState::EnsureData() {
if (OneToOne()) {
- visible = new RunStyles();
- expanded = new RunStyles();
- heights = new RunStyles();
- foldDisplayTexts = new SparseVector<const char *>();
- displayLines = new Partitioning(4);
+ visible.reset(new RunStyles());
+ expanded.reset(new RunStyles());
+ heights.reset(new RunStyles());
+ foldDisplayTexts.reset(new SparseVector<const char *>());
+ displayLines.reset(new Partitioning(4));
InsertLines(0, linesInDocument);
}
}
void ContractionState::Clear() {
- delete visible;
- visible = 0;
- delete expanded;
- expanded = 0;
- delete heights;
- heights = 0;
- delete foldDisplayTexts;
- foldDisplayTexts = 0;
- delete displayLines;
- displayLines = 0;
+ visible.reset();
+ expanded.reset();
+ heights.reset();
+ foldDisplayTexts.reset();
+ displayLines.reset();
linesInDocument = 1;
}
diff --git a/src/ContractionState.h b/src/ContractionState.h
index 5df68a0de..1e4c3f58f 100644
--- a/src/ContractionState.h
+++ b/src/ContractionState.h
@@ -19,11 +19,11 @@ class SparseVector;
*/
class ContractionState {
// These contain 1 element for every document line.
- RunStyles *visible;
- RunStyles *expanded;
- RunStyles *heights;
- SparseVector<const char *> *foldDisplayTexts;
- Partitioning *displayLines;
+ std::unique_ptr<RunStyles> visible;
+ std::unique_ptr<RunStyles> expanded;
+ std::unique_ptr<RunStyles> heights;
+ std::unique_ptr<SparseVector<const char *>> foldDisplayTexts;
+ std::unique_ptr<Partitioning> displayLines;
Sci::Line linesInDocument;
void EnsureData();
@@ -31,7 +31,7 @@ class ContractionState {
bool OneToOne() const {
// True when each document line is exactly one display line so need for
// complex data structures.
- return visible == 0;
+ return visible == nullptr;
}
public: