Revision: 26263
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26263
Author: blendix
Date: 2010-01-25 22:58:00 +0100 (Mon, 25 Jan 2010)
Log Message:
-----------
Fix #20820: multires subdivide crash.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/multires.c
trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c
Modified: trunk/blender/source/blender/blenkernel/intern/multires.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/multires.c 2010-01-25
21:10:33 UTC (rev 26262)
+++ trunk/blender/source/blender/blenkernel/intern/multires.c 2010-01-25
21:58:00 UTC (rev 26263)
@@ -85,11 +85,11 @@
static int multires_get_level(Object *ob, MultiresModifierData *mmd, int
render)
{
if(render)
- return get_render_subsurf_level(&mmd->modifier.scene->r,
mmd->renderlvl);
+ return (mmd->modifier.scene)?
get_render_subsurf_level(&mmd->modifier.scene->r, mmd->renderlvl):
mmd->renderlvl;
else if(ob->mode == OB_MODE_SCULPT)
return mmd->sculptlvl;
else
- return get_render_subsurf_level(&mmd->modifier.scene->r,
mmd->lvl);
+ return (mmd->modifier.scene)?
get_render_subsurf_level(&mmd->modifier.scene->r, mmd->lvl): mmd->lvl;
}
static void multires_set_tot_level(Object *ob, MultiresModifierData *mmd, int
lvl)
Modified: trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c
2010-01-25 21:10:33 UTC (rev 26262)
+++ trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c
2010-01-25 21:58:00 UTC (rev 26263)
@@ -2506,7 +2506,7 @@
CCGDerivedMesh *result;
if(editMode) {
- int levels= get_render_subsurf_level(&smd->modifier.scene->r,
smd->levels);
+ int levels= (smd->modifier.scene)?
get_render_subsurf_level(&smd->modifier.scene->r, smd->levels): smd->levels;
smd->emCache = _getSubSurf(smd->emCache, levels, useAging, 0,
useSimple);
@@ -2518,9 +2518,8 @@
} else if(useRenderParams) {
/* Do not use cache in render mode. */
CCGSubSurf *ss;
- int levels;
-
- levels= get_render_subsurf_level(&smd->modifier.scene->r,
smd->renderLevels);
+ int levels= (smd->modifier.scene)?
get_render_subsurf_level(&smd->modifier.scene->r, smd->renderLevels):
smd->renderLevels;
+
if(levels == 0)
return dm;
@@ -2535,7 +2534,7 @@
} else {
int useIncremental = (smd->flags &
eSubsurfModifierFlag_Incremental);
int useAging = smd->flags & eSubsurfModifierFlag_DebugIncr;
- int levels= get_render_subsurf_level(&smd->modifier.scene->r,
smd->levels);
+ int levels= (smd->modifier.scene)?
get_render_subsurf_level(&smd->modifier.scene->r, smd->levels): smd->levels;
CCGSubSurf *ss;
/* It is quite possible there is a much better place to do
this. It
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs