[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15397] trunk/blender/source/gameengine/ Converter/BL_ActionActuator.cpp: bugfix, ActionActuator was missing many checks for PyArg_ParseTuple failing.

Campbell Barton ideasman42 at gmail.com
Tue Jul 1 15:22:29 CEST 2008


Revision: 15397
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15397
Author:   campbellbarton
Date:     2008-07-01 15:21:37 +0200 (Tue, 01 Jul 2008)

Log Message:
-----------
bugfix, ActionActuator was missing many checks for PyArg_ParseTuple failing.
This meant an error in a script could be reported in a different line or script file which makes it quite hard to trace the problem. There were also places where invalid pointers could be used because of this.
The whole game engine pyapi probably needs to have these checks added.

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

Modified: trunk/blender/source/gameengine/Converter/BL_ActionActuator.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_ActionActuator.cpp	2008-07-01 09:32:01 UTC (rev 15396)
+++ trunk/blender/source/gameengine/Converter/BL_ActionActuator.cpp	2008-07-01 13:21:37 UTC (rev 15397)
@@ -641,6 +641,9 @@
 				m_blendframe = 0;
 		}
 	}
+	else {
+		return NULL;
+	}
 	
 	Py_INCREF(Py_None);
 	return Py_None;
@@ -660,6 +663,9 @@
 	{
 		m_startframe = start;
 	}
+	else {
+		return NULL;
+	}
 	
 	Py_INCREF(Py_None);
 	return Py_None;
@@ -679,6 +685,9 @@
 	{
 		m_endframe = end;
 	}
+	else {
+		return NULL;
+	}
 	
 	Py_INCREF(Py_None);
 	return Py_None;
@@ -699,6 +708,9 @@
 	{
 		m_blendin = blendin;
 	}
+	else {
+		return NULL;
+	}
 	
 	Py_INCREF(Py_None);
 	return Py_None;
@@ -724,6 +736,9 @@
 		if (m_blendframe>m_blendin)
 			m_blendframe = m_blendin;
 	}
+	else {
+		return NULL;
+	}
 	
 	Py_INCREF(Py_None);
 	return Py_None;
@@ -745,6 +760,9 @@
 	{
 		m_priority = priority;
 	}
+	else {
+		return NULL;
+	}
 	
 	Py_INCREF(Py_None);
 	return Py_None;
@@ -768,6 +786,9 @@
 		else if (m_localtime>m_endframe)
 			m_localtime=m_endframe;
 	}
+	else {
+		return NULL;
+	}
 	
 	Py_INCREF(Py_None);
 	return Py_None;
@@ -788,6 +809,9 @@
 	{
 		m_propname = string;
 	}
+	else {
+		return NULL;
+	}
 	
 	Py_INCREF(Py_None);
 	return Py_None;
@@ -807,6 +831,9 @@
 	{
 		m_framepropname = string;
 	}
+	else {
+		return NULL;
+	}
 	
 	Py_INCREF(Py_None);
 	return Py_None;
@@ -822,6 +849,9 @@
 	{
 		m_propname = string;
 	}
+	else {
+		return NULL;
+	}
 	
 	Py_INCREF(Py_None);
 	return Py_None;
@@ -846,7 +876,8 @@
 	int row,col;
 	int	mode = 0;	/* 0 for bone space, 1 for armature/world space */
 	
-	PyArg_ParseTuple(args,"sO|i", &string, &pylist, &mode);
+	if (!PyArg_ParseTuple(args,"sO|i", &string, &pylist, &mode))
+		return NULL;
 	
 	if (pylist->ob_type == &CListValue::Type)
 	{





More information about the Bf-blender-cvs mailing list