[Bf-blender-cvs] [4cb6a32] custom-normals-bmesh: More minor changes:

Campbell Barton noreply at git.blender.org
Thu Jun 9 17:24:03 CEST 2016


Commit: 4cb6a326f740d8591f4fd4a228bac87bd351bb9f
Author: Campbell Barton
Date:   Fri Jun 10 01:24:33 2016 +1000
Branches: custom-normals-bmesh
https://developer.blender.org/rB4cb6a326f740d8591f4fd4a228bac87bd351bb9f

More minor changes:

- replace PyTuple_Pack with PyTuple_SET_ITEMS (avoids using varargs, and instead assign values directly).
- rename nbr_val -> value_len (consistent with value, value_items).

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

M	source/blender/python/bmesh/bmesh_py_types_customdata.c

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

diff --git a/source/blender/python/bmesh/bmesh_py_types_customdata.c b/source/blender/python/bmesh/bmesh_py_types_customdata.c
index 9d15544..8d54345 100644
--- a/source/blender/python/bmesh/bmesh_py_types_customdata.c
+++ b/source/blender/python/bmesh/bmesh_py_types_customdata.c
@@ -335,16 +335,15 @@ static PyObject *bpy_bmlayeritem_from_array__clnors(BPy_BMLayerItem *self, PyObj
 
 	float (*nors)[3] = NULL;
 	float (*clnors)[2] = NULL;
-    Py_ssize_t nbr_val;
 	Py_ssize_t vec_size;
 	int cd_loop_clnors_offset;
 
-    BMesh *bm = self->bm;
+	BMesh *bm = self->bm;
 
 	if ((cd_loop_clnors_offset = CustomData_get_offset(&bm->ldata, CD_CUSTOMLOOPNORMAL)) == -1) {
 		/* Should never ever happen! */
 		PyErr_Format(PyExc_SystemError,
-					 "clnor's from_array(): No custom normal data layer in the bmesh");
+		             "clnor's from_array(): No custom normal data layer in the bmesh");
 		return NULL;
 	}
 
@@ -353,9 +352,9 @@ static PyObject *bpy_bmlayeritem_from_array__clnors(BPy_BMLayerItem *self, PyObj
 		return NULL;
 	}
 
-	nbr_val = PySequence_Fast_GET_SIZE(value);
+	const int value_len = PySequence_Fast_GET_SIZE(value);
 
-	if (!ELEM(nbr_val, bm->totloop, bm->totvert)) {
+	if (!ELEM(value_len, bm->totloop, bm->totvert)) {
 		PyErr_Format(PyExc_TypeError,
 		             "clnor's from_array(): "
 		             "There must be either one data per vertex or one per loop");
@@ -366,7 +365,7 @@ static PyObject *bpy_bmlayeritem_from_array__clnors(BPy_BMLayerItem *self, PyObj
 	PyObject **value_items = PySequence_Fast_ITEMS(value);
 
 	vec_size = 3;  /* In case value is an array of None's only. */
-	for (Py_ssize_t i = 0; i < nbr_val; i++) {
+	for (Py_ssize_t i = 0; i < value_len; i++) {
 		PyObject *py_vec = value_items[i];
 
 		if (py_vec == Py_None) {
@@ -376,7 +375,7 @@ static PyObject *bpy_bmlayeritem_from_array__clnors(BPy_BMLayerItem *self, PyObj
 		if (py_vec) {
 			vec_size = PySequence_Fast_GET_SIZE(py_vec);
 		}
-		if (!py_vec || (vec_size == 2 && nbr_val != bm->totloop) || vec_size != 3) {
+		if (!py_vec || (vec_size == 2 && value_len != bm->totloop) || vec_size != 3) {
 			PyErr_Format(PyExc_TypeError,
 			             "clnor's from_array(): array items must be either triplets of floats, "
 			             "or pair of floats factors for raw clnor data, first item is neither "
@@ -391,8 +390,8 @@ static PyObject *bpy_bmlayeritem_from_array__clnors(BPy_BMLayerItem *self, PyObj
 	}
 
 	if (vec_size == 2) {
-		clnors = MEM_mallocN(sizeof(*clnors) * nbr_val, __func__);
-		for (Py_ssize_t i = 0; i < nbr_val; i++) {
+		clnors = MEM_mallocN(sizeof(*clnors) * value_len, __func__);
+		for (Py_ssize_t i = 0; i < value_len; i++) {
 			PyObject *py_vec = value_items[i];
 
 			if (py_vec == Py_None) {
@@ -442,8 +441,8 @@ static PyObject *bpy_bmlayeritem_from_array__clnors(BPy_BMLayerItem *self, PyObj
 		}
 	}
 	else {
-		nors = MEM_mallocN(sizeof(*nors) * nbr_val, __func__);
-		for (Py_ssize_t i = 0; i < nbr_val; i++) {
+		nors = MEM_mallocN(sizeof(*nors) * value_len, __func__);
+		for (Py_ssize_t i = 0; i < value_len; i++) {
 			PyObject *py_vec = value_items[i];
 
 			if (py_vec == Py_None) {
@@ -485,7 +484,7 @@ static PyObject *bpy_bmlayeritem_from_array__clnors(BPy_BMLayerItem *self, PyObj
 	}
 
 	Py_DECREF(value);
-	ret = PyTuple_New(nbr_val);
+	ret = PyTuple_New(value_len);
 
 	if (vec_size == 2) {
 		BMIter fiter;
@@ -502,27 +501,29 @@ static PyObject *bpy_bmlayeritem_from_array__clnors(BPy_BMLayerItem *self, PyObj
 				clnor[0] = unit_float_to_short(clnors[lidx][0]);
 				clnor[1] = unit_float_to_short(clnors[lidx][1]);
 
-				PyObject *py_vec = PyTuple_Pack(2,
-												PyFloat_FromDouble((double)clnors[lidx][0]),
-												PyFloat_FromDouble((double)clnors[lidx][1]));
+				PyObject *py_vec = PyTuple_New(2);
+				PyTuple_SET_ITEMS(py_vec,
+				        PyFloat_FromDouble((double)clnors[lidx][0]),
+				        PyFloat_FromDouble((double)clnors[lidx][1]));
 
 				PyTuple_SET_ITEM(ret, lidx, py_vec);
 			}
 		}
 	}
 	else {
-		if (nbr_val == bm->totloop) {
+		if (value_len == bm->totloop) {
 			BM_loops_normal_custom_set(bm, nors, NULL, cd_loop_clnors_offset);
 		}
 		else {
 			BM_loops_normal_custom_set_from_vertices(bm, nors, NULL, cd_loop_clnors_offset);
 		}
 
-		for (Py_ssize_t i = 0; i < nbr_val; i++) {
-			PyObject *py_vec = PyTuple_Pack(3,
-											PyFloat_FromDouble((double)nors[i][0]),
-											PyFloat_FromDouble((double)nors[i][1]),
-											PyFloat_FromDouble((double)nors[i][2]));
+		for (Py_ssize_t i = 0; i < value_len; i++) {
+			PyObject *py_vec = PyTuple_New(3);
+			PyTuple_SET_ITEMS(py_vec,
+			        PyFloat_FromDouble((double)nors[i][0]),
+			        PyFloat_FromDouble((double)nors[i][1]),
+			        PyFloat_FromDouble((double)nors[i][2]));
 
 			PyTuple_SET_ITEM(ret, i, py_vec);
 		}




More information about the Bf-blender-cvs mailing list