Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWillian Padovani Germano <wpgermano@gmail.com>2004-11-07 18:05:35 +0300
committerWillian Padovani Germano <wpgermano@gmail.com>2004-11-07 18:05:35 +0300
commitc6c86b8df0c31456a3456a1b4ae9c8596e87c69a (patch)
treef86e3b1efb718eac0d60011e7b996ed32e18ef76
parent8226f8a0b21f7045ca7023b59c6175c2b2c5b2dd (diff)
Fixes in bpython:
-- Alexander Szakaly reported and provided a patch for Material.c and NMesh.c to solve crash in material handling when there's no material. -- Ton reported a crash with advancing a frame after creating a new script link. I couldn't reproduce the crash, but added a check in BPY_do_pyscript to make sure the passed ID pointer is valid. Thanks both.
-rw-r--r--source/blender/python/BPY_interface.c6
-rw-r--r--source/blender/python/api2_2x/Material.c5
-rw-r--r--source/blender/python/api2_2x/NMesh.c5
3 files changed, 13 insertions, 3 deletions
diff --git a/source/blender/python/BPY_interface.c b/source/blender/python/BPY_interface.c
index ee318ddaca7..5f978b2e8d6 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 833bd16a008..01e91cbb0b3 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 38d189e007f..f08882ebcc1 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 )