Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2017-05-26 16:32:42 +0300
committerCampbell Barton <ideasman42@gmail.com>2017-05-26 16:32:56 +0300
commit7d7c5135d7b2f811229631e263cf22b300d95806 (patch)
tree5883e7ac622e7ffcdf45e084bc1b46e9d9274625 /source/blender/blenkernel
parent3b311b7cb2320cc7a86f23c6d5ffa0747a045818 (diff)
parentac66fb193f80847fd4fc1b46413ebb3199ebbf1b (diff)
Merge branch 'master' into blender2.8
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r--source/blender/blenkernel/intern/customdata.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c
index c672e77a520..65d96a3b9f6 100644
--- a/source/blender/blenkernel/intern/customdata.c
+++ b/source/blender/blenkernel/intern/customdata.c
@@ -1925,11 +1925,16 @@ void *CustomData_add_layer_named(CustomData *data, int type, int alloctype,
bool CustomData_free_layer(CustomData *data, int type, int totelem, int index)
{
- const int n = index - CustomData_get_layer_index(data, type);
- int i;
-
- if (index < 0)
+ if (index < 0) {
+ return false;
+ }
+ const int index_first = CustomData_get_layer_index(data, type);
+ if (index_first == -1) {
return false;
+ }
+
+ const int n = index - index_first;
+ int i;
customData_free_layer__internal(&data->layers[index], totelem);
@@ -1974,8 +1979,10 @@ bool CustomData_free_layer_active(CustomData *data, int type, int totelem)
void CustomData_free_layers(CustomData *data, int type, int totelem)
{
- while (CustomData_has_layer(data, type))
- CustomData_free_layer_active(data, type, totelem);
+ const int index = CustomData_get_layer_index(data, type);
+ while (CustomData_free_layer(data, type, totelem, index)) {
+ /* pass */
+ }
}
bool CustomData_has_layer(const CustomData *data, int type)