Commit: e182d43d3e695a5086e8167b1ed4fc04ef43dbec
Author: Campbell Barton
Date:   Sun Dec 28 15:13:01 2014 +1100
Branches: master
https://developer.blender.org/rBe182d43d3e695a5086e8167b1ed4fc04ef43dbec

cleanup: avoid ref-counting None for a new matrix

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

M       source/blender/python/mathutils/mathutils_Matrix.c

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

diff --git a/source/blender/python/mathutils/mathutils_Matrix.c 
b/source/blender/python/mathutils/mathutils_Matrix.c
index b773d60..23e8305 100644
--- a/source/blender/python/mathutils/mathutils_Matrix.c
+++ b/source/blender/python/mathutils/mathutils_Matrix.c
@@ -1846,8 +1846,24 @@ static PyObject *Matrix_zero(MatrixObject *self)
                return NULL;
 
        Py_RETURN_NONE;
+
 }
 /*---------------------------matrix.identity(() ------------------*/
+static void matrix_identity_internal(MatrixObject *self)
+{
+       BLI_assert((self->num_col == self->num_row) && (self->num_row <= 4));
+
+       if (self->num_col == 2) {
+               unit_m2((float (*)[2])self->matrix);
+       }
+       else if (self->num_col == 3) {
+               unit_m3((float (*)[3])self->matrix);
+       }
+       else {
+               unit_m4((float (*)[4])self->matrix);
+       }
+}
+
 PyDoc_STRVAR(Matrix_identity_doc,
 ".. method:: identity()\n"
 "\n"
@@ -1870,15 +1886,7 @@ static PyObject *Matrix_identity(MatrixObject *self)
                return NULL;
        }
 
-       if (self->num_col == 2) {
-               unit_m2((float (*)[2])self->matrix);
-       }
-       else if (self->num_col == 3) {
-               unit_m3((float (*)[3])self->matrix);
-       }
-       else {
-               unit_m4((float (*)[4])self->matrix);
-       }
+       matrix_identity_internal(self);
 
        if (BaseMath_WriteCallback(self) == -1)
                return NULL;
@@ -2808,8 +2816,7 @@ PyObject *Matrix_CreatePyObject(float *mat,
                        }
                        else if (num_col == num_row) {
                                /* or if no arguments are passed return 
identity matrix for square matrices */
-                               PyObject *ret_dummy = Matrix_identity(self);
-                               Py_DECREF(ret_dummy);
+                               matrix_identity_internal(self);
                        }
                        else {
                                /* otherwise zero everything */

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

Reply via email to