fix/workaround for crash in ocean modifier when size is zero (causes invalid array...
authorCampbell Barton <ideasman42@gmail.com>
Mon, 22 Jul 2013 21:02:45 +0000 (21:02 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Mon, 22 Jul 2013 21:02:45 +0000 (21:02 +0000)
source/blender/modifiers/intern/MOD_ocean.c

index 538415b0f87bc2e0ef30f1acfb752ff302137d5c..ecd116a9896b11c4652145a3d98a331b4cf6f548 100644 (file)
@@ -426,6 +426,11 @@ static DerivedMesh *doOcean(ModifierData *md, Object *ob,
 
        const float size_co_inv = 1.0f / (omd->size * omd->spatial_size);
 
+       /* can happen in when size is small, avoid bad array lookups later and quit now */
+       if (!isfinite(size_co_inv)) {
+               return derivedData;
+       }
+
        /* update modifier */
        if (omd->refresh & MOD_OCEAN_REFRESH_ADD)
                omd->ocean = BKE_add_ocean();
@@ -531,7 +536,7 @@ static DerivedMesh *doOcean(ModifierData *md, Object *ob,
                }
        }
 
-       #undef OCEAN_CO
+#undef OCEAN_CO
 
        return dm;
 }