[Bf-blender-cvs] [5ae8b1da02e] master: Fix wrong memory handling in own rB93633efe69ca.

Bastien Montagne noreply at git.blender.org
Mon Mar 11 23:38:47 CET 2019


Commit: 5ae8b1da02ecafe049822521374ab435e7f41282
Author: Bastien Montagne
Date:   Mon Mar 11 23:36:32 2019 +0100
Branches: master
https://developer.blender.org/rB5ae8b1da02ecafe049822521374ab435e7f41282

Fix wrong memory handling in own rB93633efe69ca.

`BLO_library_read_struct()` actually takes care for us of nearly
everything, makes things much simpler...

===================================================================

M	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,



More information about the Bf-blender-cvs mailing list