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:
authorBastien Montagne <montagne29@wanadoo.fr>2019-03-12 01:36:32 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2019-03-12 01:37:54 +0300
commit5ae8b1da02ecafe049822521374ab435e7f41282 (patch)
tree70f29d6e24c04be2dd1439e6f6e04a762108c23d /source/blender/blenloader
parentcb14138b5a35970dde7c3c630df147d3d07bcf33 (diff)
Fix wrong memory handling in own rB93633efe69ca.
`BLO_library_read_struct()` actually takes care for us of nearly everything, makes things much simpler...
Diffstat (limited to 'source/blender/blenloader')
-rw-r--r--source/blender/blenloader/intern/readblenentry.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/source/blender/blenloader/intern/readblenentry.c b/source/blender/blenloader/intern/readblenentry.c
index f59ed7eef48..1cd63c4bdfe 100644
--- a/source/blender/blenloader/intern/readblenentry.c
+++ b/source/blender/blenloader/intern/readblenentry.c
@@ -200,13 +200,9 @@ LinkNode *BLO_blendhandle_get_previews(BlendHandle *bh, int ofblocktype, int *to
if (prv) {
memcpy(new_prv, prv, sizeof(PreviewImage));
if (prv->rect[0] && prv->w[0] && prv->h[0]) {
- uint *rect = NULL;
- size_t len = new_prv->w[0] * new_prv->h[0] * sizeof(uint);
- new_prv->rect[0] = MEM_callocN(len, __func__);
bhead = blo_bhead_next(fd, bhead);
- rect = BLO_library_read_struct(fd, bhead, "PreviewImage Icon Rect");
- BLI_assert(len == bhead->len);
- memcpy(new_prv->rect[0], rect, len);
+ BLI_assert((new_prv->w[0] * new_prv->h[0] * sizeof(uint)) == bhead->len);
+ new_prv->rect[0] = BLO_library_read_struct(fd, bhead, "PreviewImage Icon Rect");
}
else {
/* This should not be needed, but can happen in 'broken' .blend files,
@@ -217,13 +213,9 @@ LinkNode *BLO_blendhandle_get_previews(BlendHandle *bh, int ofblocktype, int *to
}
if (prv->rect[1] && prv->w[1] && prv->h[1]) {
- uint *rect = NULL;
- size_t len = new_prv->w[1] * new_prv->h[1] * sizeof(uint);
- new_prv->rect[1] = MEM_callocN(len, __func__);
bhead = blo_bhead_next(fd, bhead);
- rect = BLO_library_read_struct(fd, bhead, "PreviewImage Image Rect");
- BLI_assert(len == bhead->len);
- memcpy(new_prv->rect[1], rect, len);
+ BLI_assert((new_prv->w[1] * new_prv->h[1] * sizeof(uint)) == bhead->len);
+ new_prv->rect[1] = BLO_library_read_struct(fd, bhead, "PreviewImage Image Rect");
}
else {
/* This should not be needed, but can happen in 'broken' .blend files,