From 5ae8b1da02ecafe049822521374ab435e7f41282 Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Mon, 11 Mar 2019 23:36:32 +0100 Subject: Fix wrong memory handling in own rB93633efe69ca. `BLO_library_read_struct()` actually takes care for us of nearly everything, makes things much simpler... --- source/blender/blenloader/intern/readblenentry.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) (limited to 'source/blender/blenloader/intern/readblenentry.c') 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, -- cgit v1.2.3