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:
authorJanne Karhu <jhkarh@gmail.com>2011-07-15 04:39:49 +0400
committerJanne Karhu <jhkarh@gmail.com>2011-07-15 04:39:49 +0400
commit5ff9acfd28211d90045e9dc08da7790099b9c462 (patch)
treedc556c4292d86b93e0dbef47dbfab41d2261c7a2 /source/blender/editors
parentb028cba0e4878b5034b96772aba85abc9f669a12 (diff)
Fix for [#27307] Blender crashes when loading a new scene while baking fluid dynamics
* Fluid bakes didn't respect the job stop flag. * Also made msvc happy with some casts.
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/physics/physics_fluid.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/source/blender/editors/physics/physics_fluid.c b/source/blender/editors/physics/physics_fluid.c
index b573c77c7f3..37309f1e07c 100644
--- a/source/blender/editors/physics/physics_fluid.c
+++ b/source/blender/editors/physics/physics_fluid.c
@@ -722,15 +722,17 @@ typedef struct FluidBakeJob {
static void fluidbake_free(void *customdata)
{
- FluidBakeJob *fb= customdata;
+ FluidBakeJob *fb= (FluidBakeJob *)customdata;
MEM_freeN(fb);
}
/* called by fluidbake, only to check job 'stop' value */
-static int fluidbake_breakjob(void *UNUSED(customdata))
+static int fluidbake_breakjob(void *customdata)
{
- //FluidBakeJob *fb= (FluidBakeJob *)customdata;
- //return *(fb->stop);
+ FluidBakeJob *fb= (FluidBakeJob *)customdata;
+
+ if(fb->stop && *(fb->stop))
+ return 1;
/* this is not nice yet, need to make the jobs list template better
* for identifying/acting upon various different jobs */
@@ -741,7 +743,7 @@ static int fluidbake_breakjob(void *UNUSED(customdata))
/* called by fluidbake, wmJob sends notifier */
static void fluidbake_updatejob(void *customdata, float progress)
{
- FluidBakeJob *fb= customdata;
+ FluidBakeJob *fb= (FluidBakeJob *)customdata;
*(fb->do_update)= 1;
*(fb->progress)= progress;
@@ -749,7 +751,7 @@ static void fluidbake_updatejob(void *customdata, float progress)
static void fluidbake_startjob(void *customdata, short *stop, short *do_update, float *progress)
{
- FluidBakeJob *fb= customdata;
+ FluidBakeJob *fb= (FluidBakeJob *)customdata;
fb->stop= stop;
fb->do_update = do_update;
@@ -764,7 +766,7 @@ static void fluidbake_startjob(void *customdata, short *stop, short *do_update,
static void fluidbake_endjob(void *customdata)
{
- FluidBakeJob *fb= customdata;
+ FluidBakeJob *fb= (FluidBakeJob *)customdata;
if (fb->settings) {
MEM_freeN(fb->settings);