Commit: 8106a6b75d45cc7472fd92f3b045697e30be8c73
Author: Campbell Barton
Date:   Sun Jan 4 17:03:54 2015 +1100
Branches: master
https://developer.blender.org/rB8106a6b75d45cc7472fd92f3b045697e30be8c73

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.

===================================================================

M       source/blender/freestyle/intern/python/BPy_Convert.cpp
M       source/blender/freestyle/intern/python/BPy_Freestyle.cpp
M       source/blender/python/bmesh/bmesh_py_ops_call.c
M       source/blender/python/bmesh/bmesh_py_types.c
M       source/blender/python/bmesh/bmesh_py_types_customdata.c
M       source/blender/python/bmesh/bmesh_py_types_meshdata.c
M       source/blender/python/intern/bpy_rna.c
M       source/blender/python/mathutils/mathutils.c
M       source/blender/python/mathutils/mathutils.h
M       source/blender/python/mathutils/mathutils_Color.c
M       source/blender/python/mathutils/mathutils_Color.h
M       source/blender/python/mathutils/mathutils_Euler.c
M       source/blender/python/mathutils/mathutils_Euler.h
M       source/blender/python/mathutils/mathutils_Matrix.c
M       source/blender/python/mathutils/mathutils_Matrix.h
M       source/blender/python/mathutils/mathutils_Quaternion.c
M       source/blender/python/mathutils/mathutils_Quaternion.h
M       source/blender/python/mathutils/mathutils_Vector.c
M       source/blender/python/mathutils/mathutils_Vector.h
M       source/blender/python/mathutils/mathutils_geometry.c
M       source/blender/python/mathutils/mathutils_kdtree.c
M       source/blender/python/mathutils/mathutils_noise.c
M       source/gameengine/Converter/BL_ArmatureChannel.cpp
M       source/gameengine/Expressions/PyObjectPlus.cpp
M       source/gameengine/Ketsji/KXNetwork/CMakeLists.txt
M       source/gameengine/Ketsji/KXNetwork/SConscript
M       source/gameengine/Ketsji/KX_PyMath.cpp
M       source/gameengine/Network/CMakeLists.txt
M       source/gameengine/Network/SConscript

===================================================================

diff --git a/source/blender/freestyle/intern/python/BPy_Convert.cpp 
b/source/blender/freestyle/intern/python/BPy_Convert.cpp
index dbd836b..b0b43ac 100644
--- a/source/blender/freestyle/intern/python/BPy_Convert.cpp
+++ b/source/blender/freestyle/intern/python/BPy_Convert.cpp
@@ -81,7 +81,7 @@ PyObject *Vector_from_Vec2f(Vec2f& vec)
        float vec_data[2]; // because vec->_coord is protected
        vec_data[0] = vec.x();
        vec_data[1] = vec.y();
-       return Vector_CreatePyObject(vec_data, 2, Py_NEW, NULL);
+       return Vector_CreatePyObject(vec_data, 2, NULL);
 }
 
 PyObject *Vector_from_Vec3f(Vec3f& vec)
@@ -90,7 +90,7 @@ PyObject *Vector_from_Vec3f(Vec3f& vec)
        vec_data[0] = vec.x();
        vec_data[1] = vec.y();
        vec_data[2] = vec.z(); 
-       return Vector_CreatePyObject(vec_data, 3, Py_NEW, NULL);
+       return Vector_CreatePyObject(vec_data, 3, NULL);
 }
 
 PyObject *Vector_from_Vec3r(Vec3r& vec)
@@ -99,7 +99,7 @@ PyObject *Vector_from_Vec3r(Vec3r& vec)
        vec_data[0] = vec.x();
        vec_data[1] = vec.y();
        vec_data[2] = vec.z();
-       return Vector_CreatePyObject(vec_data, 3, Py_NEW, NULL);
+       return Vector_CreatePyObject(vec_data, 3, NULL);
 }
 
 PyObject *BPy_Id_from_Id(Id& id)
diff --git a/source/blender/freestyle/intern/python/BPy_Freestyle.cpp 
b/source/blender/freestyle/intern/python/BPy_Freestyle.cpp
index ee0e7df..f4ead30 100644
--- a/source/blender/freestyle/intern/python/BPy_Freestyle.cpp
+++ b/source/blender/freestyle/intern/python/BPy_Freestyle.cpp
@@ -153,7 +153,7 @@ static PyObject *Freestyle_blendRamp(PyObject *self, 
PyObject *args)
                return NULL;
        }
        ramp_blend(type, a, fac, b);
-       return Vector_CreatePyObject(a, 3, Py_NEW, NULL);
+       return Vector_CreatePyObject(a, 3, NULL);
 }
 
 #include "BKE_texture.h" /* do_colorband() */
@@ -187,7 +187,7 @@ static PyObject *Freestyle_evaluateColorRamp(PyObject 
*self, PyObject *args)
                PyErr_SetString(PyExc_ValueError, "failed to evaluate the color 
ramp");
                return NULL;
        }
-       return Vector_CreatePyObject(out, 4, Py_NEW, NULL);
+       return Vector_CreatePyObject(out, 4, NULL);
 }
 
 #include "DNA_color_types.h"
diff --git a/source/blender/python/bmesh/bmesh_py_ops_call.c 
b/source/blender/python/bmesh/bmesh_py_ops_call.c
index ec6810f..e8ef4c5 100644
--- a/source/blender/python/bmesh/bmesh_py_ops_call.c
+++ b/source/blender/python/bmesh/bmesh_py_ops_call.c
@@ -540,10 +540,10 @@ static PyObject *bpy_slot_to_py(BMesh *bm, BMOpSlot *slot)
                        item = 
PyFloat_FromDouble((double)BMO_SLOT_AS_FLOAT(slot));
                        break;
                case BMO_OP_SLOT_MAT:
-                       item = Matrix_CreatePyObject((float 
*)BMO_SLOT_AS_MATRIX(slot), 4, 4, Py_NEW, NULL);
+                       item = Matrix_CreatePyObject((float 
*)BMO_SLOT_AS_MATRIX(slot), 4, 4, NULL);
                        break;
                case BMO_OP_SLOT_VEC:
-                       item = Vector_CreatePyObject(BMO_SLOT_AS_VECTOR(slot), 
slot->len, Py_NEW, NULL);
+                       item = Vector_CreatePyObject(BMO_SLOT_AS_VECTOR(slot), 
slot->len, NULL);
                        break;
                case BMO_OP_SLOT_PTR:
                        BLI_assert(0);  /* currently we don't have any pointer 
return values in use */
diff --git a/source/blender/python/bmesh/bmesh_py_types.c 
b/source/blender/python/bmesh/bmesh_py_types.c
index 8c13a66..d3f4bfc 100644
--- a/source/blender/python/bmesh/bmesh_py_types.c
+++ b/source/blender/python/bmesh/bmesh_py_types.c
@@ -342,7 +342,7 @@ PyDoc_STRVAR(bpy_bmvert_co_doc,
 static PyObject *bpy_bmvert_co_get(BPy_BMVert *self)
 {
        BPY_BM_CHECK_OBJ(self);
-       return Vector_CreatePyObject(self->v->co, 3, Py_WRAP, NULL);
+       return Vector_CreatePyObject_wrap(self->v->co, 3, NULL);
 }
 
 static int bpy_bmvert_co_set(BPy_BMVert *self, PyObject *value)
@@ -364,7 +364,7 @@ PyDoc_STRVAR(bpy_bmvert_normal_doc,
 static PyObject *bpy_bmvert_normal_get(BPy_BMVert *self)
 {
        BPY_BM_CHECK_OBJ(self);
-       return Vector_CreatePyObject(self->v->no, 3, Py_WRAP, NULL);
+       return Vector_CreatePyObject_wrap(self->v->no, 3, NULL);
 }
 
 static int bpy_bmvert_normal_set(BPy_BMVert *self, PyObject *value)
@@ -468,7 +468,7 @@ PyDoc_STRVAR(bpy_bmface_normal_doc,
 static PyObject *bpy_bmface_normal_get(BPy_BMFace *self)
 {
        BPY_BM_CHECK_OBJ(self);
-       return Vector_CreatePyObject(self->f->no, 3, Py_WRAP, NULL);
+       return Vector_CreatePyObject_wrap(self->f->no, 3, NULL);
 }
 
 static int bpy_bmface_normal_set(BPy_BMFace *self, PyObject *value)
@@ -1530,7 +1530,7 @@ static PyObject *bpy_bmedge_calc_tangent(BPy_BMEdge 
*self, PyObject *args)
                BPY_BM_CHECK_OBJ(py_loop);
                /* no need to check if they are from the same mesh or even 
connected */
                BM_edge_calc_face_tangent(self->e, py_loop->l, vec);
-               return Vector_CreatePyObject(vec, 3, Py_NEW, NULL);
+               return Vector_CreatePyObject(vec, 3, NULL);
        }
 }
 
@@ -1711,7 +1711,7 @@ static PyObject *bpy_bmface_calc_center_mean(BPy_BMFace 
*self)
 
        BPY_BM_CHECK_OBJ(self);
        BM_face_calc_center_mean(self->f, cent);
-       return Vector_CreatePyObject(cent, 3, Py_NEW, NULL);
+       return Vector_CreatePyObject(cent, 3, NULL);
 }
 
 PyDoc_STRVAR(bpy_bmface_calc_center_mean_weighted_doc,
@@ -1728,7 +1728,7 @@ static PyObject 
*bpy_bmface_calc_center_mean_weighted(BPy_BMFace *self)
 
        BPY_BM_CHECK_OBJ(self);
        BM_face_calc_center_mean_weighted(self->f, cent);
-       return Vector_CreatePyObject(cent, 3, Py_NEW, NULL);
+       return Vector_CreatePyObject(cent, 3, NULL);
 }
 
 PyDoc_STRVAR(bpy_bmface_calc_center_bounds_doc,
@@ -1745,7 +1745,7 @@ static PyObject *bpy_bmface_calc_center_bounds(BPy_BMFace 
*self)
 
        BPY_BM_CHECK_OBJ(self);
        BM_face_calc_center_bounds(self->f, cent);
-       return Vector_CreatePyObject(cent, 3, Py_NEW, NULL);
+       return Vector_CreatePyObject(cent, 3, NULL);
 }
 
 
@@ -1849,7 +1849,7 @@ static PyObject *bpy_bmloop_calc_normal(BPy_BMLoop *self)
        float vec[3];
        BPY_BM_CHECK_OBJ(self);
        BM_loop_calc_face_normal(self->l, vec);
-       return Vector_CreatePyObject(vec, 3, Py_NEW, NULL);
+       return Vector_CreatePyObject(vec, 3, NULL);
 }
 
 PyDoc_STRVAR(bpy_bmloop_calc_tangent_doc,
@@ -1866,7 +1866,7 @@ static PyObject *bpy_bmloop_calc_tangent(BPy_BMLoop *self)
        float vec[3];
        BPY_BM_CHECK_OBJ(self);
        BM_loop_calc_face_tangent(self->l, vec);
-       return Vector_CreatePyObject(vec, 3, Py_NEW, NULL);
+       return Vector_CreatePyObject(vec, 3, NULL);
 }
 
 /* Vert Seq
diff --git a/source/blender/python/bmesh/bmesh_py_types_customdata.c 
b/source/blender/python/bmesh/bmesh_py_types_customdata.c
index 6ecb01a..3c1502d 100644
--- a/source/blender/python/bmesh/bmesh_py_types_customdata.c
+++ b/source/blender/python/bmesh/bmesh_py_types_customdata.c
@@ -1014,7 +1014,7 @@ PyObject *BPy_BMLayerItem_GetItem(BPy_BMElem *py_ele, 
BPy_BMLayerItem *py_layer)
                }
                case CD_SHAPEKEY:
                {
-                       ret = Vector_CreatePyObject((float *)value, 3, Py_WRAP, 
NULL);
+                       ret = Vector_CreatePyObject_wrap((float *)value, 3, 
NULL);
                        break;
                }
                case CD_BWEIGHT:
diff --git a/source/blender/python/bmesh/bmesh_py_types_meshdata.c 
b/source/blender/python/bmesh/bmesh_py_types_meshdata.c
index 4fa5d0f..df0c39f 100644
--- a/source/blender/python/bmesh/bmesh_py_types_meshdata.c
+++ b/source/blender/python/bmesh/bmesh_py_types_meshdata.c
@@ -150,7 +150,7 @@ PyDoc_STRVAR(bpy_bmloopuv_uv_doc,
 );
 static PyObject *bpy_bmloopuv_uv_get(BPy_BMLoopUV *self, void *UNUSED(closure))
 {
-       return Vector_CreatePyObject(self->data->uv, 2, Py_WRAP, NULL);
+       return Vector_CreatePyObject_wrap(self->data->uv, 2, NULL);
 }
 
 static int bpy_bmloopuv_uv_set(BPy_BMLoopUV *self, PyObject *value, void 
*UNUSED(closure))
@@ -263,7 +263,7 @@ PyDoc_STRVAR(bpy_bmvertskin_radius_doc,
 );
 static PyObject *bpy_bmvertskin_radius_get(BPy_BMVertSkin *self, void 
*UNUSED(closure))
 {
-       return Vector_CreatePyObject(self->data->radius, 2, Py_WRAP, NULL);
+       return Vector_CreatePyObject_wrap(self->data->radius, 2, NULL);
 }
 
 static int bpy_bmvertskin_radius_set(BPy_BMVertSkin *self, PyObject *value, 
void *UNUSED(closure))
diff --git a/source/blender/python/intern/bpy_rna.c 
b/source/blender/python/intern/bpy_rna.c
index b06907b..be316a8 100644
--- a/source/blender/python/intern/bpy_rna.c
+++ b/source/blender/python/intern/bpy_rna.c
@@ -637,7 +637,7 @@ PyObject *pyrna_math_object_from_array(PointerRNA *ptr, 
PropertyRNA *prop)
                        case PROP_ALL_VECTOR_SUBTYPES:
                                if (len >= 2 && len <= 4) {
                                        if (is_thick) {
-                                               ret = 
Vector_CreatePyObject(NULL, len, Py_NEW, NULL);
+                                               ret = 
Vector_CreatePyObject(NULL, len, NULL);
                                                
RNA_property_float_get_array(ptr, prop, ((VectorObject *)ret)->vec);
                                        }
                                        else {
@@ -650,7 +650,7 @@ PyObject *pyrna_math_object_from_array(PointerRNA *ptr, 
PropertyRNA *prop)
                        case PROP_MATRIX:
                                if (len == 16) {
                                        if (is_thick) {
-                                               ret = 
Matrix_CreatePyObject(NULL, 4, 4, Py_NEW, NULL);
+                                               ret = 
Matrix_CreatePyObject(NULL, 4, 4, NULL);
                                                
RNA_property_float_get_array(ptr, prop, ((MatrixObject *)ret)->matrix);
                                        }
                                        else {
@@ -661,7 +661,7 @@ PyObject *pyrna_math_object_from_array(PointerRNA *ptr, 
PropertyRNA *prop)
                                }
                                else if (len == 9) {
                                        if (is_thick) {
-                                               ret = 
Matrix_CreatePyObject(NULL, 3, 3, Py_NEW, NULL);
+                                               ret = 
Matrix_CreatePyObject(NULL, 3, 3, NULL);
                                                
RNA_property_float_get_array(ptr, prop, ((MatrixObject *)ret)->matrix);
                                        }
                                        else {
@@ -679,7 +679,7 @@ PyObject *pyrna_math_object_from_array(PointerRNA *ptr, 
PropertyRNA *prop)
                                                PropertyRNA *prop_eul_order = 
NULL;
                                                short order = 
pyrna_rotation_euler_order_get(ptr, &prop_eul_order, EULER_ORDER_XYZ);
 
-                                               ret = 
Euler_CreatePyObject(NULL, order, Py_NEW, NULL);  /* TODO, get order from RNA */
+                                               ret = 
Euler_CreatePyObject(NULL, order, NULL);  /* TODO, get order from RNA */
                                                
RNA_property_float_get_array(ptr, prop, ((EulerObject *)ret)->eul);
                                        }
                                        else {
@@ -691,7 +691,7 @@ PyObject *pyrna_math_object_from_array(PointerRNA *ptr, 
PropertyRNA *prop)
                                }
                                else if (len == 4) {
                                        if (is_thick) {
-                                               ret = 
Quaternion_CreatePyObject(NULL, Py_NEW, NULL);
+                                               ret = 
Quaternion_CreatePyObject(NULL, NULL);
                                                
RNA_property_float_get_array(ptr, prop, ((QuaternionObject *)ret)->quat);
                                        }
                                        else {
@@ -705,7 +705,7 @@ PyObject *pyrna_math_object_from_array(PointerRNA *ptr, 
PropertyRNA *prop)
                        case PROP_COLOR_GAMMA:
                                if (len == 3) { /* color */
                                        if (is_thick) {
-                                               ret = 
Color_CreatePyObject(NULL, Py_NEW, NULL);
+                                               ret = 
Color_CreatePyObject(NULL, NULL);
                                                

@@ Diff output truncated at 10240 characters. @@

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

Reply via email to