diff --git a/source/blender/python/BPY_interface.c b/source/blender/python/BPY_interface.c index ee318ddaca720f71784eab16d82b5fac7b3d2216..5f978b2e8d61f64eef3fe9030421f67ab19b0afa 100644 --- a/source/blender/python/BPY_interface.c +++ b/source/blender/python/BPY_interface.c @@ -997,7 +997,11 @@ int BPY_has_onload_script( void ) void BPY_do_pyscript( ID * id, short event ) { - ScriptLink *scriptlink = ID_getScriptlink( id ); + ScriptLink *scriptlink; + + if( !id ) return; + + scriptlink = ID_getScriptlink( id ); if( scriptlink && scriptlink->totscript ) { PyObject *dict; diff --git a/source/blender/python/api2_2x/Material.c b/source/blender/python/api2_2x/Material.c index 833bd16a00895a3871235d2431a4717428bcd94c..01e91cbb0b3921f4ed34de9e0657d6cbf2e685bb 100644 --- a/source/blender/python/api2_2x/Material.c +++ b/source/blender/python/api2_2x/Material.c @@ -25,7 +25,8 @@ * * This is a new part of Blender. * - * Contributor(s): Willian P. Germano, Michel Selten, Alex Mole + * Contributor(s): Willian P. Germano, Michel Selten, Alex Mole, + * Alexander Szakaly * * ***** END GPL/BL DUAL LICENSE BLOCK ***** */ @@ -2194,6 +2195,8 @@ Material **EXPP_newMaterialList_fromPyList( PyObject * list ) len = PySequence_Length( list ); if( len > 16 ) len = 16; + else if( len <= 0 ) + return NULL; matlist = EXPP_newMaterialList( len ); diff --git a/source/blender/python/api2_2x/NMesh.c b/source/blender/python/api2_2x/NMesh.c index 38d189e007feb083bbcea0a1344ab2ed135d5e57..f08882ebcc1ecf5392565a5259824778cde9f000 100644 --- a/source/blender/python/api2_2x/NMesh.c +++ b/source/blender/python/api2_2x/NMesh.c @@ -26,7 +26,7 @@ * This is a new part of Blender. * * Contributor(s): Willian P. Germano, Jordi Rovira i Bonet, Joseph Gilbert, - * Bala Gi + * Bala Gi, Alexander Szakaly * * ***** END GPL/BL DUAL LICENSE BLOCK ***** */ @@ -2045,6 +2045,7 @@ void EXPP_unlink_mesh( Mesh * me ) me->mat[a]->id.us--; me->mat[a] = 0; } + /* ... here we want to preserve mesh keys */ /* if users want to get rid of them, they can use mesh.removeAllKeys() */ /* @@ -2053,6 +2054,8 @@ void EXPP_unlink_mesh( Mesh * me ) */ if( me->texcomesh ) me->texcomesh = 0; + + me->totcol = 0; } static int unlink_existingMeshData( Mesh * mesh )