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");


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to