diff options
Diffstat (limited to 'src/ContractionState.cxx')
| -rw-r--r-- | src/ContractionState.cxx | 13 | 
1 files changed, 7 insertions, 6 deletions
diff --git a/src/ContractionState.cxx b/src/ContractionState.cxx index 6fca2ec4e..c56c5647b 100644 --- a/src/ContractionState.cxx +++ b/src/ContractionState.cxx @@ -17,6 +17,7 @@  #include "Platform.h"  #include "Position.h" +#include "UniqueString.h"  #include "SplitVector.h"  #include "Partitioning.h"  #include "RunStyles.h" @@ -39,7 +40,7 @@ void ContractionState::EnsureData() {  		visible.reset(new RunStyles());  		expanded.reset(new RunStyles());  		heights.reset(new RunStyles()); -		foldDisplayTexts.reset(new SparseVector<const char *>()); +		foldDisplayTexts.reset(new SparseVector<UniqueString>());  		displayLines.reset(new Partitioning(4));  		InsertLines(0, linesInDocument);  	} @@ -111,7 +112,7 @@ void ContractionState::InsertLine(Sci::Line lineDoc) {  		heights->InsertSpace(lineDoc, 1);  		heights->SetValueAt(lineDoc, 1);  		foldDisplayTexts->InsertSpace(lineDoc, 1); -		foldDisplayTexts->SetValueAt(lineDoc, NULL); +		foldDisplayTexts->SetValueAt(lineDoc, nullptr);  		Sci::Line lineDisplay = DisplayFromDoc(lineDoc);  		displayLines->InsertPartition(lineDoc, lineDisplay);  		displayLines->InsertText(lineDoc, 1); @@ -191,14 +192,14 @@ bool ContractionState::HiddenLines() const {  const char *ContractionState::GetFoldDisplayText(Sci::Line lineDoc) const {  	Check(); -	return foldDisplayTexts->ValueAt(lineDoc); +	return foldDisplayTexts->ValueAt(lineDoc).get();  }  bool ContractionState::SetFoldDisplayText(Sci::Line lineDoc, const char *text) {  	EnsureData(); -	const char *foldText = foldDisplayTexts->ValueAt(lineDoc); -	if (!foldText || 0 != strcmp(text, foldText)) { -		foldDisplayTexts->SetValueAt(lineDoc, text); +	const char *foldText = foldDisplayTexts->ValueAt(lineDoc).get(); +	if (!foldText || !text || 0 != strcmp(text, foldText)) { +		foldDisplayTexts->SetValueAt(lineDoc, UniqueStringCopy(text));  		Check();  		return true;  	} else {  | 
