diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2010-01-26 00:58:00 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2010-01-26 00:58:00 +0300 |
commit | d440990414fafa1e30d83622b10671e089437b62 (patch) | |
tree | 8401799056c5bf9492e9dbe69742a68f7f6d8456 /source/blender/blenkernel/intern/subsurf_ccg.c | |
parent | abd9a59af4a8499129c4c847b3b19e64cead73b8 (diff) |
Fix #20820: multires subdivide crash.
Diffstat (limited to 'source/blender/blenkernel/intern/subsurf_ccg.c')
-rw-r--r-- | source/blender/blenkernel/intern/subsurf_ccg.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c index ef015208354..d55792c449e 100644 --- a/source/blender/blenkernel/intern/subsurf_ccg.c +++ b/source/blender/blenkernel/intern/subsurf_ccg.c @@ -2506,7 +2506,7 @@ struct DerivedMesh *subsurf_make_derived_from_derived( 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 @@ struct DerivedMesh *subsurf_make_derived_from_derived( } 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 @@ struct DerivedMesh *subsurf_make_derived_from_derived( } 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 |