aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/AutoComplete.cxx5
-rw-r--r--src/AutoComplete.h2
-rw-r--r--src/Document.cxx12
-rw-r--r--src/Document.h2
-rw-r--r--src/Editor.cxx2
-rw-r--r--src/LineMarker.cxx11
-rw-r--r--src/LineMarker.h28
-rw-r--r--src/XPM.cxx17
-rw-r--r--src/XPM.h2
9 files changed, 29 insertions, 52 deletions
diff --git a/src/AutoComplete.cxx b/src/AutoComplete.cxx
index cc4b46dfa..1c847ce0f 100644
--- a/src/AutoComplete.cxx
+++ b/src/AutoComplete.cxx
@@ -33,7 +33,6 @@ AutoComplete::AutoComplete() :
typesep('?'),
ignoreCase(false),
chooseSingle(false),
- lb(0),
posStart(0),
startLen(0),
cancelAtStartPos(true),
@@ -43,14 +42,12 @@ AutoComplete::AutoComplete() :
widthLBDefault(100),
heightLBDefault(100),
autoSort(SC_ORDER_PRESORTED) {
- lb = ListBox::Allocate();
+ lb.reset(ListBox::Allocate());
}
AutoComplete::~AutoComplete() {
if (lb) {
lb->Destroy();
- delete lb;
- lb = 0;
}
}
diff --git a/src/AutoComplete.h b/src/AutoComplete.h
index 205d4e095..17998657b 100644
--- a/src/AutoComplete.h
+++ b/src/AutoComplete.h
@@ -27,7 +27,7 @@ public:
bool ignoreCase;
bool chooseSingle;
- ListBox *lb;
+ std::unique_ptr<ListBox> lb;
Sci::Position posStart;
int startLen;
/// Should autocompletion be canceled if editor's currentPos <= startPos?
diff --git a/src/Document.cxx b/src/Document.cxx
index b4ab37244..581358e52 100644
--- a/src/Document.cxx
+++ b/src/Document.cxx
@@ -95,7 +95,6 @@ int LexInterface::LineEndTypesSupported() {
Document::Document() {
refCount = 0;
- pcf = NULL;
#ifdef _WIN32
eolMode = SC_EOL_CRLF;
#else
@@ -118,7 +117,6 @@ Document::Document() {
durationStyleOneLine = 0.00001;
matchesValid = false;
- regex = 0;
UTF8BytesOfLeadInitialise();
@@ -139,9 +137,6 @@ Document::~Document() {
delete pl;
pl = nullptr;
}
- regex.release();
- delete pcf;
- pcf = 0;
}
void Document::Init() {
@@ -161,7 +156,7 @@ int Document::LineEndTypesSupported() const {
bool Document::SetDBCSCodePage(int dbcsCodePage_) {
if (dbcsCodePage != dbcsCodePage_) {
dbcsCodePage = dbcsCodePage_;
- SetCaseFolder(NULL);
+ SetCaseFolder(nullptr);
cb.SetLineEndTypes(lineEndBitSet & LineEndTypesSupported());
return true;
} else {
@@ -1802,12 +1797,11 @@ bool Document::MatchesWordOptions(bool word, bool wordStart, Sci::Position pos,
}
bool Document::HasCaseFolder() const {
- return pcf != 0;
+ return pcf != nullptr;
}
void Document::SetCaseFolder(CaseFolder *pcf_) {
- delete pcf;
- pcf = pcf_;
+ pcf.reset(pcf_);
}
Document::CharacterExtracted Document::ExtractCharacter(Sci::Position position) const {
diff --git a/src/Document.h b/src/Document.h
index 788f9bd33..62e26c6fc 100644
--- a/src/Document.h
+++ b/src/Document.h
@@ -210,7 +210,7 @@ private:
int refCount;
CellBuffer cb;
CharClassify charClass;
- CaseFolder *pcf;
+ std::unique_ptr<CaseFolder> pcf;
Sci::Position endStyled;
int styleClock;
int enteredModification;
diff --git a/src/Editor.cxx b/src/Editor.cxx
index 81f3c1893..35c8a8d6b 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -5673,7 +5673,7 @@ void Editor::StyleSetMessage(unsigned int iMessage, uptr_t wParam, sptr_t lParam
break;
case SCI_STYLESETCHARACTERSET:
vs.styles[wParam].characterSet = static_cast<int>(lParam);
- pdoc->SetCaseFolder(NULL);
+ pdoc->SetCaseFolder(nullptr);
break;
case SCI_STYLESETVISIBLE:
vs.styles[wParam].visible = lParam != 0;
diff --git a/src/LineMarker.cxx b/src/LineMarker.cxx
index 6bb9f4e9a..d80a3c78c 100644
--- a/src/LineMarker.cxx
+++ b/src/LineMarker.cxx
@@ -26,20 +26,17 @@ using namespace Scintilla;
#endif
void LineMarker::SetXPM(const char *textForm) {
- delete pxpm;
- pxpm = new XPM(textForm);
+ pxpm.reset(new XPM(textForm));
markType = SC_MARK_PIXMAP;
}
void LineMarker::SetXPM(const char *const *linesForm) {
- delete pxpm;
- pxpm = new XPM(linesForm);
+ pxpm.reset(new XPM(linesForm));
markType = SC_MARK_PIXMAP;
}
void LineMarker::SetRGBAImage(Point sizeRGBAImage, float scale, const unsigned char *pixelsRGBAImage) {
- delete image;
- image = new RGBAImage(static_cast<int>(sizeRGBAImage.x), static_cast<int>(sizeRGBAImage.y), scale, pixelsRGBAImage);
+ image.reset(new RGBAImage(static_cast<int>(sizeRGBAImage.x), static_cast<int>(sizeRGBAImage.y), scale, pixelsRGBAImage));
markType = SC_MARK_RGBAIMAGE;
}
@@ -74,7 +71,7 @@ static void DrawMinus(Surface *surface, int centreX, int centreY, int armSize, C
}
void LineMarker::Draw(Surface *surface, PRectangle &rcWhole, Font &fontForCharacter, typeOfFold tFold, int marginStyle) const {
- if (customDraw != NULL) {
+ if (customDraw) {
customDraw(surface, rcWhole, fontForCharacter, tFold, marginStyle, this);
return;
}
diff --git a/src/LineMarker.h b/src/LineMarker.h
index fde11da0d..2006fe8fb 100644
--- a/src/LineMarker.h
+++ b/src/LineMarker.h
@@ -25,8 +25,8 @@ public:
ColourDesired back;
ColourDesired backSelected;
int alpha;
- XPM *pxpm;
- RGBAImage *image;
+ std::unique_ptr<XPM> pxpm;
+ std::unique_ptr<RGBAImage> image;
/** Some platforms, notably PLAT_CURSES, do not support Scintilla's native
* Draw function for drawing line markers. Allow those platforms to override
* it instead of creating a new method(s) in the Surface class that existing
@@ -38,38 +38,32 @@ public:
back = ColourDesired(0xff,0xff,0xff);
backSelected = ColourDesired(0xff,0x00,0x00);
alpha = SC_ALPHA_NOALPHA;
- pxpm = NULL;
- image = NULL;
- customDraw = NULL;
+ customDraw = nullptr;
}
LineMarker(const LineMarker &) {
- // Defined to avoid pxpm being blindly copied, not as a complete copy constructor
+ // Defined to avoid pxpm and image being blindly copied, not as a complete copy constructor.
markType = SC_MARK_CIRCLE;
fore = ColourDesired(0,0,0);
back = ColourDesired(0xff,0xff,0xff);
backSelected = ColourDesired(0xff,0x00,0x00);
alpha = SC_ALPHA_NOALPHA;
- pxpm = NULL;
- image = NULL;
- customDraw = NULL;
+ pxpm.reset();
+ image.reset();
+ customDraw = nullptr;
}
~LineMarker() {
- delete pxpm;
- delete image;
}
LineMarker &operator=(const LineMarker &other) {
- // Defined to avoid pxpm being blindly copied, not as a complete assignment operator
+ // Defined to avoid pxpm and image being blindly copied, not as a complete assignment operator.
if (this != &other) {
markType = SC_MARK_CIRCLE;
fore = ColourDesired(0,0,0);
back = ColourDesired(0xff,0xff,0xff);
backSelected = ColourDesired(0xff,0x00,0x00);
alpha = SC_ALPHA_NOALPHA;
- delete pxpm;
- pxpm = NULL;
- delete image;
- image = NULL;
- customDraw = NULL;
+ pxpm.reset();
+ image.reset();
+ customDraw = nullptr;
}
return *this;
}
diff --git a/src/XPM.cxx b/src/XPM.cxx
index 6e328ae97..818a1acdc 100644
--- a/src/XPM.cxx
+++ b/src/XPM.cxx
@@ -249,10 +249,6 @@ RGBAImageSet::~RGBAImageSet() {
/// Remove all images.
void RGBAImageSet::Clear() {
- for (ImageMap::iterator it=images.begin(); it != images.end(); ++it) {
- delete it->second;
- it->second = 0;
- }
images.clear();
height = -1;
width = -1;
@@ -262,10 +258,9 @@ void RGBAImageSet::Clear() {
void RGBAImageSet::Add(int ident, RGBAImage *image) {
ImageMap::iterator it=images.find(ident);
if (it == images.end()) {
- images[ident] = image;
+ images[ident] = std::unique_ptr<RGBAImage>(image);
} else {
- delete it->second;
- it->second = image;
+ it->second.reset(image);
}
height = -1;
width = -1;
@@ -275,15 +270,15 @@ void RGBAImageSet::Add(int ident, RGBAImage *image) {
RGBAImage *RGBAImageSet::Get(int ident) {
ImageMap::iterator it = images.find(ident);
if (it != images.end()) {
- return it->second;
+ return it->second.get();
}
- return NULL;
+ return nullptr;
}
/// Give the largest height of the set.
int RGBAImageSet::GetHeight() const {
if (height < 0) {
- for (const std::pair<int, RGBAImage*> &image : images) {
+ for (const std::pair<const int, std::unique_ptr<RGBAImage>> &image : images) {
if (height < image.second->GetHeight()) {
height = image.second->GetHeight();
}
@@ -295,7 +290,7 @@ int RGBAImageSet::GetHeight() const {
/// Give the largest width of the set.
int RGBAImageSet::GetWidth() const {
if (width < 0) {
- for (const std::pair<int, RGBAImage*> &image : images) {
+ for (const std::pair<const int, std::unique_ptr<RGBAImage>> &image : images) {
if (width < image.second->GetWidth()) {
width = image.second->GetWidth();
}
diff --git a/src/XPM.h b/src/XPM.h
index 789485eb0..cd78b14c0 100644
--- a/src/XPM.h
+++ b/src/XPM.h
@@ -68,7 +68,7 @@ public:
* A collection of RGBAImage pixmaps indexed by integer id.
*/
class RGBAImageSet {
- typedef std::map<int, RGBAImage*> ImageMap;
+ typedef std::map<int, std::unique_ptr<RGBAImage>> ImageMap;
ImageMap images;
mutable int height; ///< Memorize largest height of the set.
mutable int width; ///< Memorize largest width of the set.