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:
authorAndrea Weikert <elubie@gmx.net>2011-05-18 23:42:30 +0400
committerAndrea Weikert <elubie@gmx.net>2011-05-18 23:42:30 +0400
commitc04f9b779c4384f3cc6961b2ed54456bdab14f43 (patch)
treeef03665fdb965eac3636f89e837344723ed7a2ec /source/blender/blenkernel/intern/icons.c
parent91bd739a093f8bb3613f52b6a0edeacfd8c09d66 (diff)
fix [#27158] Appending crash with preview.
* fixed incorrect reading of PreviewImage struct from .blend * fixed memory leak, PreviewImage data wasn't correctly free'd
Diffstat (limited to 'source/blender/blenkernel/intern/icons.c')
-rw-r--r--source/blender/blenkernel/intern/icons.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/source/blender/blenkernel/intern/icons.c b/source/blender/blenkernel/intern/icons.c
index 18eda831c47..9effd25c142 100644
--- a/source/blender/blenkernel/intern/icons.c
+++ b/source/blender/blenkernel/intern/icons.c
@@ -132,18 +132,26 @@ struct PreviewImage* BKE_previewimg_create(void)
return prv_img;
}
-void BKE_previewimg_free(PreviewImage **prv)
+void BKE_previewimg_freefunc(void *link)
{
- if(prv && (*prv)) {
+ PreviewImage *prv = (PreviewImage *)link;
+ if (prv) {
int i;
-
+
for (i=0; i<NUM_ICON_SIZES;++i) {
- if ((*prv)->rect[i]) {
- MEM_freeN((*prv)->rect[i]);
- (*prv)->rect[i] = NULL;
+ if (prv->rect[i]) {
+ MEM_freeN(prv->rect[i]);
+ prv->rect[i] = NULL;
}
}
- MEM_freeN((*prv));
+ MEM_freeN(prv);
+ }
+}
+
+void BKE_previewimg_free(PreviewImage **prv)
+{
+ if(prv && (*prv)) {
+ BKE_previewimg_freefunc(*prv);
*prv = NULL;
}
}