diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-07-15 10:29:09 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-07-15 10:29:09 +0400 |
commit | dc9beee3e23ff03f016c43d511719aa798a02f68 (patch) | |
tree | f7470dabc131a28c20891ae559a3760793524314 /source/blender/blenkernel/intern/customdata.c | |
parent | bf77d35f695030506c1b70f2eb2a2f1225ce14cc (diff) |
fix for error (-1 index into array) when removing customdata layers with no data, delete_customdata_layer was using layer data pointer to check weather to adjust index values (but both pointers can be NULL). Remove this code and do in customdata.c
Diffstat (limited to 'source/blender/blenkernel/intern/customdata.c')
-rw-r--r-- | source/blender/blenkernel/intern/customdata.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index 83685477725..c25cda3829e 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -1729,16 +1729,16 @@ bool CustomData_free_layer(CustomData *data, int type, int totelem, int index) data->totlayer--; /* if layer was last of type in array, set new active layer */ - if ((index >= data->totlayer) || (data->layers[index].type != type)) { - i = CustomData_get_layer_index__notypemap(data, type); - - if (i >= 0) - for (; i < data->totlayer && data->layers[i].type == type; i++) { - data->layers[i].active--; - data->layers[i].active_rnd--; - data->layers[i].active_clone--; - data->layers[i].active_mask--; - } + i = CustomData_get_layer_index__notypemap(data, type); + + if (i != -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 (data->totlayer <= data->maxlayer - CUSTOMDATA_GROW) |