[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45598] trunk/blender/source/blender/ editors/render/render_preview.c: Fix #30876, #30932: crash in material preview render after undo or file load,

Brecht Van Lommel brechtvanlommel at pandora.be
Fri Apr 13 14:12:55 CEST 2012


Revision: 45598
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45598
Author:   blendix
Date:     2012-04-13 12:12:54 +0000 (Fri, 13 Apr 2012)
Log Message:
-----------
Fix #30876, #30932: crash in material preview render after undo or file load,
due to old material copies hanging around in the preview database.

This crash happened pretty randomly, but was especially noticeable when using
node groups.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/render/render_preview.c

Modified: trunk/blender/source/blender/editors/render/render_preview.c
===================================================================
--- trunk/blender/source/blender/editors/render/render_preview.c	2012-04-13 11:58:16 UTC (rev 45597)
+++ trunk/blender/source/blender/editors/render/render_preview.c	2012-04-13 12:12:54 UTC (rev 45598)
@@ -987,20 +987,19 @@
 	IconPreviewSize *cur_size = ip->sizes.first;
 
 	while (cur_size) {
-		ShaderPreview sp;
+		ShaderPreview *sp = MEM_callocN(sizeof(ShaderPreview), "Icon ShaderPreview");
 
-		memset(&sp, 0, sizeof(ShaderPreview));
-
 		/* construct shader preview from image size and previewcustomdata */
-		sp.scene = ip->scene;
-		sp.owner = ip->owner;
-		sp.sizex = cur_size->sizex;
-		sp.sizey = cur_size->sizey;
-		sp.pr_method = PR_ICON_RENDER;
-		sp.pr_rect = cur_size->rect;
-		sp.id = ip->id;
+		sp->scene = ip->scene;
+		sp->owner = ip->owner;
+		sp->sizex = cur_size->sizex;
+		sp->sizey = cur_size->sizey;
+		sp->pr_method = PR_ICON_RENDER;
+		sp->pr_rect = cur_size->rect;
+		sp->id = ip->id;
 
-		common_preview_startjob(&sp, stop, do_update, progress);
+		common_preview_startjob(sp, stop, do_update, progress);
+		shader_preview_free(sp);
 
 		cur_size = cur_size->next;
 	}




More information about the Bf-blender-cvs mailing list