[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58260] trunk/blender/source/blender: previous commit r58256, had error in editmode ( somehow it worked in most tests still).
Campbell Barton
ideasman42 at gmail.com
Mon Jul 15 11:03:28 CEST 2013
Revision: 58260
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58260
Author: campbellbarton
Date: 2013-07-15 09:03:28 +0000 (Mon, 15 Jul 2013)
Log Message:
-----------
previous commit r58256, had error in editmode (somehow it worked in most tests still).
also don't decrement active indices below zero (also a problem in 2.67).
Revision Links:
--------------
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58256
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/customdata.c
trunk/blender/source/blender/editors/mesh/mesh_data.c
Modified: trunk/blender/source/blender/blenkernel/intern/customdata.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/customdata.c 2013-07-15 08:32:13 UTC (rev 58259)
+++ trunk/blender/source/blender/blenkernel/intern/customdata.c 2013-07-15 09:03:28 UTC (rev 58260)
@@ -1732,12 +1732,15 @@
i = CustomData_get_layer_index__notypemap(data, type);
if (i != -1) {
+ /* don't decrement zero index */
+ const int index_nonzero = index ? index : 1;
CustomDataLayer *layer;
+
for (layer = &data->layers[i]; i < data->totlayer && layer->type == type; i++, layer++) {
- if (layer->active >= index) layer->active--;
- if (layer->active_rnd >= index) layer->active_rnd--;
- if (layer->active_clone >= index) layer->active_clone--;
- if (layer->active_mask >= index) layer->active_mask--;
+ if (layer->active >= index_nonzero) layer->active--;
+ if (layer->active_rnd >= index_nonzero) layer->active_rnd--;
+ if (layer->active_clone >= index_nonzero) layer->active_clone--;
+ if (layer->active_mask >= index_nonzero) layer->active_mask--;
}
}
Modified: trunk/blender/source/blender/editors/mesh/mesh_data.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/mesh_data.c 2013-07-15 08:32:13 UTC (rev 58259)
+++ trunk/blender/source/blender/editors/mesh/mesh_data.c 2013-07-15 09:03:28 UTC (rev 58260)
@@ -127,16 +127,18 @@
{
const int type = layer->type;
CustomData *data;
- int layer_index, tot;
+ int layer_index, tot, n;
data = mesh_customdata_get_type(me, (ELEM(type, CD_MLOOPUV, CD_MLOOPCOL)) ? BM_LOOP : BM_FACE, &tot);
layer_index = CustomData_get_layer_index(data, type);
+ n = (layer - &data->layers[layer_index]);
+ BLI_assert(n >= 0 && (n + layer_index) < data->totlayer);
if (me->edit_btmesh) {
- BM_data_layer_free_n(me->edit_btmesh->bm, data, type, layer_index + (layer - &data->layers[layer_index]));
+ BM_data_layer_free_n(me->edit_btmesh->bm, data, type, n);
}
else {
- CustomData_free_layer(data, type, tot, (layer - &data->layers[layer_index]));
+ CustomData_free_layer(data, type, tot, n);
BKE_mesh_update_customdata_pointers(me, true);
}
}
More information about the Bf-blender-cvs
mailing list