Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/cycles/render/image.cpp')
-rw-r--r--intern/cycles/render/image.cpp17
1 files changed, 5 insertions, 12 deletions
diff --git a/intern/cycles/render/image.cpp b/intern/cycles/render/image.cpp
index e6ef19cc3be..a8e6f41e57a 100644
--- a/intern/cycles/render/image.cpp
+++ b/intern/cycles/render/image.cpp
@@ -24,6 +24,7 @@
#include "util/util_path.h"
#include "util/util_progress.h"
#include "util/util_texture.h"
+#include "util/util_unique_ptr.h"
#ifdef WITH_OSL
#include <OSL/oslexec.h>
@@ -194,7 +195,7 @@ bool ImageManager::get_image_metadata(const string& filename,
return false;
}
- ImageInput *in = ImageInput::create(filename);
+ unique_ptr<ImageInput> in(ImageInput::create(filename));
if(!in) {
return false;
@@ -202,7 +203,6 @@ bool ImageManager::get_image_metadata(const string& filename,
ImageSpec spec;
if(!in->open(filename, spec)) {
- delete in;
return false;
}
@@ -270,7 +270,6 @@ bool ImageManager::get_image_metadata(const string& filename,
}
in->close();
- delete in;
return true;
}
@@ -455,7 +454,7 @@ void ImageManager::tag_reload_image(const string& filename,
}
bool ImageManager::file_load_image_generic(Image *img,
- ImageInput **in)
+ unique_ptr<ImageInput> *in)
{
if(img->filename == "")
return false;
@@ -467,7 +466,7 @@ bool ImageManager::file_load_image_generic(Image *img,
}
/* load image from file through OIIO */
- *in = ImageInput::create(img->filename);
+ *in = unique_ptr<ImageInput>(ImageInput::create(img->filename));
if(!*in)
return false;
@@ -479,8 +478,6 @@ bool ImageManager::file_load_image_generic(Image *img,
config.attribute("oiio:UnassociatedAlpha", 1);
if(!(*in)->open(img->filename, spec, config)) {
- delete *in;
- *in = NULL;
return false;
}
}
@@ -494,10 +491,7 @@ bool ImageManager::file_load_image_generic(Image *img,
if(!(img->metadata.channels >= 1 && img->metadata.channels <= 4)) {
if(*in) {
(*in)->close();
- delete *in;
- *in = NULL;
}
-
return false;
}
@@ -512,7 +506,7 @@ bool ImageManager::file_load_image(Image *img,
int texture_limit,
device_vector<DeviceType>& tex_img)
{
- ImageInput *in = NULL;
+ unique_ptr<ImageInput> in = NULL;
if(!file_load_image_generic(img, &in)) {
return false;
}
@@ -575,7 +569,6 @@ bool ImageManager::file_load_image(Image *img,
}
cmyk = strcmp(in->format_name(), "jpeg") == 0 && components == 4;
in->close();
- delete in;
}
else {
if(FileFormat == TypeDesc::FLOAT) {