aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/XPM.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/XPM.cxx')
-rw-r--r--src/XPM.cxx17
1 files changed, 6 insertions, 11 deletions
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();
}