[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58203] trunk/blender/source/blender: Fix #35470: crash rendering from the terminal in some cases due to render info
Brecht Van Lommel
brechtvanlommel at pandora.be
Fri Jul 12 22:31:31 CEST 2013
Revision: 58203
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58203
Author: blendix
Date: 2013-07-12 20:31:30 +0000 (Fri, 12 Jul 2013)
Log Message:
-----------
Fix #35470: crash rendering from the terminal in some cases due to render info
text threading issue.
Modified Paths:
--------------
trunk/blender/source/blender/editors/render/render_internal.c
trunk/blender/source/blender/render/extern/include/RE_engine.h
trunk/blender/source/blender/render/intern/source/external_engine.c
Modified: trunk/blender/source/blender/editors/render/render_internal.c
===================================================================
--- trunk/blender/source/blender/editors/render/render_internal.c 2013-07-12 20:15:22 UTC (rev 58202)
+++ trunk/blender/source/blender/editors/render/render_internal.c 2013-07-12 20:31:30 UTC (rev 58203)
@@ -650,7 +650,7 @@
rj->lay = v3d->lay;
rj->v3d_override = true;
}
- else if (camera_override != scene->camera)
+ else if (camera_override && camera_override != scene->camera)
rj->v3d_override = true;
if (v3d->localvd)
@@ -1060,9 +1060,8 @@
rp->bmain = CTX_data_main(C);
copy_m4_m4(rp->viewmat, rp->rv3d->viewmat);
- /* dont alloc in threads */
- if (engine->text == NULL)
- engine->text = MEM_callocN(IMA_MAX_RENDER_TEXT, "rendertext");
+ /* clear info text */
+ engine->text[0] = '\0';
/* setup job */
WM_jobs_customdata_set(wm_job, rp, render_view3d_free);
Modified: trunk/blender/source/blender/render/extern/include/RE_engine.h
===================================================================
--- trunk/blender/source/blender/render/extern/include/RE_engine.h 2013-07-12 20:15:22 UTC (rev 58202)
+++ trunk/blender/source/blender/render/extern/include/RE_engine.h 2013-07-12 20:31:30 UTC (rev 58203)
@@ -107,7 +107,7 @@
struct Render *re;
ListBase fullresult;
- char *text;
+ char text[512]; /* IMA_MAX_RENDER_TEXT */
int resolution_x, resolution_y;
Modified: trunk/blender/source/blender/render/intern/source/external_engine.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/external_engine.c 2013-07-12 20:15:22 UTC (rev 58202)
+++ trunk/blender/source/blender/render/intern/source/external_engine.c 2013-07-12 20:31:30 UTC (rev 58203)
@@ -158,9 +158,6 @@
BLI_end_threaded_malloc();
}
- if (engine->text)
- MEM_freeN(engine->text);
-
MEM_freeN(engine);
}
@@ -307,17 +304,14 @@
}
/* set engine text */
- if (engine->text) {
- MEM_freeN(engine->text);
- engine->text = NULL;
- }
+ engine->text[0] = '\0';
if (stats && stats[0] && info && info[0])
- engine->text = BLI_sprintfN("%s | %s", stats, info);
+ BLI_snprintf(engine->text, sizeof(engine->text), "%s | %s", stats, info);
else if (info && info[0])
- engine->text = BLI_strdup(info);
+ BLI_strncpy(engine->text, info, sizeof(engine->text));
else if (stats && stats[0])
- engine->text = BLI_strdup(stats);
+ BLI_strncpy(engine->text, info, sizeof(engine->text));
}
void RE_engine_update_progress(RenderEngine *engine, float progress)
More information about the Bf-blender-cvs
mailing list