Fix SDNA error expanding names not updating name array sizes

This doesn't cause problems at the moment,
it just makes using name sizes possible in the future.
This commit is contained in:
2019-09-11 01:32:20 +10:00
parent 2f4153396c
commit 01a3a9c818

View File

@@ -1639,6 +1639,8 @@ static void sdna_expand_names(SDNA *sdna)
names_expand_len += sp[1];
}
const char **names_expand = MEM_mallocN(sizeof(*names_expand) * names_expand_len, __func__);
short *names_array_len_expand = MEM_mallocN(sizeof(*names_array_len_expand) * names_expand_len,
__func__);
int names_expand_index = 0;
for (int struct_nr = 0; struct_nr < sdna->structs_len; struct_nr++) {
@@ -1652,6 +1654,7 @@ static void sdna_expand_names(SDNA *sdna)
sp_expand += 2;
for (int i = 0; i < names_len; i++, sp += 2, sp_expand += 2) {
names_expand[names_expand_index] = sdna->names[sp[1]];
names_array_len_expand[names_expand_index] = sdna->names_array_len[sp[1]];
BLI_assert(names_expand_index < SHRT_MAX);
sp_expand[1] = names_expand_index;
names_expand_index++;
@@ -1659,6 +1662,10 @@ static void sdna_expand_names(SDNA *sdna)
}
MEM_freeN((void *)sdna->names);
sdna->names = names_expand;
MEM_freeN((void *)sdna->names_array_len);
sdna->names_array_len = names_array_len_expand;
sdna->names_len = names_expand_len;
}