[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20387] trunk/blender/source/gameengine/ VideoTexture: VideoTexture: exception in C++ was not returning an error in Python.

Benoit Bolsee benoit.bolsee at online.be
Mon May 25 01:12:38 CEST 2009


Revision: 20387
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20387
Author:   ben2610
Date:     2009-05-25 01:12:38 +0200 (Mon, 25 May 2009)

Log Message:
-----------
VideoTexture: exception in C++ was not returning an error in Python. Added function name ini PyArg_ParseTuple.

Modified Paths:
--------------
    trunk/blender/source/gameengine/VideoTexture/ImageBase.cpp
    trunk/blender/source/gameengine/VideoTexture/ImageBuff.cpp
    trunk/blender/source/gameengine/VideoTexture/ImageMix.cpp
    trunk/blender/source/gameengine/VideoTexture/Texture.cpp
    trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.cpp
    trunk/blender/source/gameengine/VideoTexture/blendVideoTex.cpp

Modified: trunk/blender/source/gameengine/VideoTexture/ImageBase.cpp
===================================================================
--- trunk/blender/source/gameengine/VideoTexture/ImageBase.cpp	2009-05-24 23:05:27 UTC (rev 20386)
+++ trunk/blender/source/gameengine/VideoTexture/ImageBase.cpp	2009-05-24 23:12:38 UTC (rev 20387)
@@ -437,7 +437,9 @@
 {
 	// get arguments
 	char * id;
-	if (self->m_image != NULL && PyArg_ParseTuple(args, "s", &id))
+	if (!PyArg_ParseTuple(args, "s:getSource", &id))
+		return NULL;
+	if (self->m_image != NULL)
 	{
 		// get source object
 		PyObject * src = reinterpret_cast<PyObject*>(self->m_image->getSource(id));
@@ -460,7 +462,9 @@
 	// get arguments
 	char * id;
 	PyObject * obj;
-	if (self->m_image != NULL && PyArg_ParseTuple(args, "sO", &id, &obj))
+	if (!PyArg_ParseTuple(args, "sO:setSource", &id, &obj))
+		return NULL;
+	if (self->m_image != NULL)
 	{
 		// check type of object
 		if (pyImageTypes.in(obj->ob_type))

Modified: trunk/blender/source/gameengine/VideoTexture/ImageBuff.cpp
===================================================================
--- trunk/blender/source/gameengine/VideoTexture/ImageBuff.cpp	2009-05-24 23:05:27 UTC (rev 20386)
+++ trunk/blender/source/gameengine/VideoTexture/ImageBuff.cpp	2009-05-24 23:12:38 UTC (rev 20387)
@@ -71,10 +71,9 @@
 	short width;
 	short height;
 	// parse parameters
-	if (!PyArg_ParseTuple(args, "s#hh", &buff, &buffSize, &width, &height))
+	if (!PyArg_ParseTuple(args, "s#hh:load", &buff, &buffSize, &width, &height))
 	{
 		// report error
-		PyErr_SetString(PyExc_TypeError, "Parameters are not correct");
 		return NULL;
 	}
 	// else check buffer size

Modified: trunk/blender/source/gameengine/VideoTexture/ImageMix.cpp
===================================================================
--- trunk/blender/source/gameengine/VideoTexture/ImageMix.cpp	2009-05-24 23:05:27 UTC (rev 20386)
+++ trunk/blender/source/gameengine/VideoTexture/ImageMix.cpp	2009-05-24 23:12:38 UTC (rev 20387)
@@ -109,7 +109,9 @@
 	short weight = 0;
 	// get arguments
 	char * id;
-	if (self->m_image != NULL && PyArg_ParseTuple(args, "s", &id))
+	if (!PyArg_ParseTuple(args, "s:getWeight", &id))
+		return NULL;
+	if (self->m_image != NULL)
 		// get weight
 		weight = getImageMix(self)->getWeight(id);
 	// return weight
@@ -123,7 +125,9 @@
 	// get arguments
 	char * id;
 	short weight = 0;
-	if (self->m_image != NULL && PyArg_ParseTuple(args, "sh", &id, &weight))
+	if (!PyArg_ParseTuple(args, "sh:setWeight", &id, &weight))
+		return NULL;
+	if (self->m_image != NULL)
 		// set weight
 		if (!getImageMix(self)->setWeight(id, weight))
 		{

Modified: trunk/blender/source/gameengine/VideoTexture/Texture.cpp
===================================================================
--- trunk/blender/source/gameengine/VideoTexture/Texture.cpp	2009-05-24 23:05:27 UTC (rev 20386)
+++ trunk/blender/source/gameengine/VideoTexture/Texture.cpp	2009-05-24 23:12:38 UTC (rev 20387)
@@ -51,7 +51,7 @@
 
 // macro for exception handling and logging
 #define CATCH_EXCP catch (Exception & exp) \
-{ exp.report(); }
+{ exp.report(); return NULL; }
 
 
 // Blender GameObject type
@@ -280,7 +280,7 @@
 {
 	// get parameter - refresh source
 	PyObject * param;
-	if (!PyArg_ParseTuple(args, "O", &param) || !PyBool_Check(param))
+	if (!PyArg_ParseTuple(args, "O:refresh", &param) || !PyBool_Check(param))
 	{
 		// report error
 		PyErr_SetString(PyExc_TypeError, "The value must be a bool");

Modified: trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.cpp
===================================================================
--- trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.cpp	2009-05-24 23:05:27 UTC (rev 20386)
+++ trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.cpp	2009-05-24 23:12:38 UTC (rev 20387)
@@ -1178,7 +1178,7 @@
 	char * file = NULL;
 
 	// get parameters
-	if (!PyArg_ParseTuple(args, "s", &file))
+	if (!PyArg_ParseTuple(args, "s:ImageFFmpeg", &file))
 		return -1; 
 
 	try
@@ -1203,8 +1203,9 @@
 PyObject * Image_reload (PyImage * self, PyObject *args)
 {
 	char * newname = NULL;
-
-	if (self->m_image != NULL && PyArg_ParseTuple(args, "|s", &newname))
+	if (!PyArg_ParseTuple(args, "|s:reload", &newname))
+		return NULL;
+	if (self->m_image != NULL)
 	{
 		VideoFFmpeg* video = getFFmpeg(self);
 		// check type of object

Modified: trunk/blender/source/gameengine/VideoTexture/blendVideoTex.cpp
===================================================================
--- trunk/blender/source/gameengine/VideoTexture/blendVideoTex.cpp	2009-05-24 23:05:27 UTC (rev 20386)
+++ trunk/blender/source/gameengine/VideoTexture/blendVideoTex.cpp	2009-05-24 23:12:38 UTC (rev 20387)
@@ -74,7 +74,7 @@
 static PyObject * setLogFile (PyObject *self, PyObject *args)
 {
 	// get parameters
-	if (!PyArg_ParseTuple(args, "s", &Exception::m_logFile))
+	if (!PyArg_ParseTuple(args, "s:setLogFile", &Exception::m_logFile))
 		return Py_BuildValue("i", -1);
 	// log file was loaded
 	return Py_BuildValue("i", 0);
@@ -86,7 +86,7 @@
 {
 	// parameter is Image object
 	PyObject * pyImg;
-	if (!PyArg_ParseTuple(args, "O", &pyImg) || !pyImageTypes.in(pyImg->ob_type))
+	if (!PyArg_ParseTuple(args, "O:imageToArray", &pyImg) || !pyImageTypes.in(pyImg->ob_type))
 	{
 		// if object is incorect, report error
 		PyErr_SetString(PyExc_TypeError, "VideoTexture.imageToArray(image): The value must be a image source object");





More information about the Bf-blender-cvs mailing list