[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57052] trunk/blender/source/gameengine/ Converter/BL_BlenderDataConversion.cpp: Fix #35480: object without material crash blender when starting game engine

Sergey Sharybin sergey.vfx at gmail.com
Mon May 27 17:13:14 CEST 2013


Revision: 57052
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57052
Author:   nazgul
Date:     2013-05-27 15:13:14 +0000 (Mon, 27 May 2013)
Log Message:
-----------
Fix #35480: object without material crash blender when starting game engine

Was a missing NULL-pointer check. No idea why it took so long to figure
issue out -- apparently there was no crash in linux for me and msvc
didn't show any backtrace :S

Also corrected weirdo way of bit flag check which was:
  !ma->mode & MA_FACETEXTURE
better do !(ma->mode & MA_FACETEXTURE) since ! is a logic NOT.

Modified Paths:
--------------
    trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp

Modified: trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp	2013-05-27 13:22:55 UTC (rev 57051)
+++ trunk/blender/source/gameengine/Converter/BL_BlenderDataConversion.cpp	2013-05-27 15:13:14 UTC (rev 57052)
@@ -905,7 +905,7 @@
 			ConvertMaterial(bl_mat, ma, tface, tfaceName, mface, mcol,
 				converter->GetGLSLMaterials());
 
-			if ((!ma->mode & MA_FACETEXTURE))
+			if (ma && (ma->mode & MA_FACETEXTURE) == 0)
 				converter->CacheBlenderMaterial(ma, bl_mat);
 		}
 
@@ -921,7 +921,7 @@
 
 			kx_blmat->Initialize(scene, bl_mat, (ma?&ma->game:NULL), lightlayer);
 			polymat = static_cast<RAS_IPolyMaterial*>(kx_blmat);
-			if ((!ma->mode & MA_FACETEXTURE))
+			if (ma && (ma->mode & MA_FACETEXTURE) == 0)
 				converter->CachePolyMaterial(ma, polymat);
 		}
 	}




More information about the Bf-blender-cvs mailing list