diff options
author | Campbell Barton <ideasman42@gmail.com> | 2015-01-04 09:03:54 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-01-04 09:43:57 +0300 |
commit | 8106a6b75d45cc7472fd92f3b045697e30be8c73 (patch) | |
tree | 3b81857d4df29ce8bcc8d0043045aa6c713e4a78 /source/gameengine | |
parent | c41431f1e9e75a424717b4080434b940c2685c20 (diff) |
mathutils: refactor instantiation
remove 'type' argument, very few mathutils objects are wrapped,
add new function for creating wrapped objects.
also fixes unlikely memory leak if the data-array can't be allocated.
Diffstat (limited to 'source/gameengine')
-rw-r--r-- | source/gameengine/Converter/BL_ArmatureChannel.cpp | 2 | ||||
-rw-r--r-- | source/gameengine/Expressions/PyObjectPlus.cpp | 6 | ||||
-rw-r--r-- | source/gameengine/Ketsji/KXNetwork/CMakeLists.txt | 1 | ||||
-rw-r--r-- | source/gameengine/Ketsji/KXNetwork/SConscript | 1 | ||||
-rw-r--r-- | source/gameengine/Ketsji/KX_PyMath.cpp | 12 | ||||
-rw-r--r-- | source/gameengine/Network/CMakeLists.txt | 1 | ||||
-rw-r--r-- | source/gameengine/Network/SConscript | 1 |
7 files changed, 14 insertions, 10 deletions
diff --git a/source/gameengine/Converter/BL_ArmatureChannel.cpp b/source/gameengine/Converter/BL_ArmatureChannel.cpp index cb33ff0e1e3..2b8dfd8f8d1 100644 --- a/source/gameengine/Converter/BL_ArmatureChannel.cpp +++ b/source/gameengine/Converter/BL_ArmatureChannel.cpp @@ -295,7 +295,7 @@ PyObject *BL_ArmatureChannel::py_attr_get_joint_rotation(void *self_v, const str mul_v3_fl(joints,norm); break; } - return Vector_CreatePyObject(joints, 3, Py_NEW, NULL); + return Vector_CreatePyObject(joints, 3, NULL); } int BL_ArmatureChannel::py_attr_set_joint_rotation(void *self_v, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value) diff --git a/source/gameengine/Expressions/PyObjectPlus.cpp b/source/gameengine/Expressions/PyObjectPlus.cpp index c025d439fc0..a65d61bc98b 100644 --- a/source/gameengine/Expressions/PyObjectPlus.cpp +++ b/source/gameengine/Expressions/PyObjectPlus.cpp @@ -418,7 +418,7 @@ PyObject *PyObjectPlus::py_get_attrdef(PyObject *self_py, const PyAttributeDef * return NULL; } #ifdef USE_MATHUTILS - return Vector_CreatePyObject(val, attrdef->m_imax, Py_NEW, NULL); + return Vector_CreatePyObject(val, attrdef->m_imax, NULL); #else PyObject *resultlist = PyList_New(attrdef->m_imax); for (unsigned int i=0; i<attrdef->m_imax; i++) @@ -435,7 +435,7 @@ PyObject *PyObjectPlus::py_get_attrdef(PyObject *self_py, const PyAttributeDef * return NULL; } #ifdef USE_MATHUTILS - return Matrix_CreatePyObject(val, attrdef->m_imin, attrdef->m_imax, Py_WRAP, NULL); + return Matrix_CreatePyObject_wrap(val, attrdef->m_imin, attrdef->m_imax, NULL); #else PyObject *collist = PyList_New(attrdef->m_imin); for (unsigned int i=0; i<attrdef->m_imin; i++) @@ -458,7 +458,7 @@ PyObject *PyObjectPlus::py_get_attrdef(PyObject *self_py, const PyAttributeDef * #ifdef USE_MATHUTILS float fval[3]; val->getValue(fval); - return Vector_CreatePyObject(fval, 3, Py_NEW, NULL); + return Vector_CreatePyObject(fval, 3, NULL); #else PyObject *resultlist = PyList_New(3); for (unsigned int i=0; i<3; i++) diff --git a/source/gameengine/Ketsji/KXNetwork/CMakeLists.txt b/source/gameengine/Ketsji/KXNetwork/CMakeLists.txt index 0c661cf2c87..cfc6ded4e65 100644 --- a/source/gameengine/Ketsji/KXNetwork/CMakeLists.txt +++ b/source/gameengine/Ketsji/KXNetwork/CMakeLists.txt @@ -30,6 +30,7 @@ set(INC ../../GameLogic ../../Network ../../SceneGraph + ../../../blender/blenlib ../../../../intern/container ../../../../intern/string ) diff --git a/source/gameengine/Ketsji/KXNetwork/SConscript b/source/gameengine/Ketsji/KXNetwork/SConscript index 355dcc4f78f..ab03e03e74d 100644 --- a/source/gameengine/Ketsji/KXNetwork/SConscript +++ b/source/gameengine/Ketsji/KXNetwork/SConscript @@ -39,6 +39,7 @@ incs = [ '#source/gameengine/Ketsji', '#source/gameengine/Network', '#source/gameengine/SceneGraph', + '../../../blender/blenlib', ] incs = ' '.join(incs) diff --git a/source/gameengine/Ketsji/KX_PyMath.cpp b/source/gameengine/Ketsji/KX_PyMath.cpp index 804e8de2ad1..76332e75204 100644 --- a/source/gameengine/Ketsji/KX_PyMath.cpp +++ b/source/gameengine/Ketsji/KX_PyMath.cpp @@ -100,7 +100,7 @@ PyObject *PyObjectFrom(const MT_Matrix4x4 &mat) #ifdef USE_MATHUTILS float fmat[16]; mat.getValue(fmat); - return Matrix_CreatePyObject(fmat, 4, 4, Py_NEW, NULL); + return Matrix_CreatePyObject(fmat, 4, 4, NULL); #else PyObject *collist = PyList_New(4); PyObject *col; @@ -124,7 +124,7 @@ PyObject *PyObjectFrom(const MT_Matrix3x3 &mat) #ifdef USE_MATHUTILS float fmat[9]; mat.getValue3x3(fmat); - return Matrix_CreatePyObject(fmat, 3, 3, Py_NEW, NULL); + return Matrix_CreatePyObject(fmat, 3, 3, NULL); #else PyObject *collist = PyList_New(3); PyObject *col; @@ -148,7 +148,7 @@ PyObject *PyObjectFrom(const MT_Quaternion &qrot) /* NOTE, were re-ordering here for Mathutils compat */ float fvec[4]; qrot.getValue(fvec); - return Quaternion_CreatePyObject(fvec, Py_NEW, NULL); + return Quaternion_CreatePyObject(fvec, NULL); } #endif @@ -157,7 +157,7 @@ PyObject *PyObjectFrom(const MT_Tuple4 &vec) #ifdef USE_MATHUTILS float fvec[4]; vec.getValue(fvec); - return Vector_CreatePyObject(fvec, 4, Py_NEW, NULL); + return Vector_CreatePyObject(fvec, 4, NULL); #else PyObject *list = PyList_New(4); PyList_SET_ITEM(list, 0, PyFloat_FromDouble(vec[0])); @@ -173,7 +173,7 @@ PyObject *PyObjectFrom(const MT_Tuple3 &vec) #ifdef USE_MATHUTILS float fvec[3]; vec.getValue(fvec); - return Vector_CreatePyObject(fvec, 3, Py_NEW, NULL); + return Vector_CreatePyObject(fvec, 3, NULL); #else PyObject *list = PyList_New(3); PyList_SET_ITEM(list, 0, PyFloat_FromDouble(vec[0])); @@ -188,7 +188,7 @@ PyObject *PyObjectFrom(const MT_Tuple2 &vec) #ifdef USE_MATHUTILS float fvec[2]; vec.getValue(fvec); - return Vector_CreatePyObject(fvec, 2, Py_NEW, NULL); + return Vector_CreatePyObject(fvec, 2, NULL); #else PyObject *list = PyList_New(2); PyList_SET_ITEM(list, 0, PyFloat_FromDouble(vec[0])); diff --git a/source/gameengine/Network/CMakeLists.txt b/source/gameengine/Network/CMakeLists.txt index bae00c464f2..019fc3e6032 100644 --- a/source/gameengine/Network/CMakeLists.txt +++ b/source/gameengine/Network/CMakeLists.txt @@ -27,6 +27,7 @@ set(INC . ../../../intern/container ../../../intern/string + ../../blender/blenlib ) set(INC_SYS diff --git a/source/gameengine/Network/SConscript b/source/gameengine/Network/SConscript index 1d78cdba174..feb14e29552 100644 --- a/source/gameengine/Network/SConscript +++ b/source/gameengine/Network/SConscript @@ -31,6 +31,7 @@ sources = env.Glob('*.cpp') #'NG_NetworkMessage.cpp NG_NetworkObject.cpp NG_Netw incs = [ '.', + '../../blender/blenlib', '#intern/container', '#intern/string', '#intern/moto/include', |