[Bf-blender-cvs] [01a3a9c8181] master: Fix SDNA error expanding names not updating name array sizes
Campbell Barton
noreply at git.blender.org
Tue Sep 10 17:54:27 CEST 2019
Commit: 01a3a9c8181dcad2300d10e51681b1499192282a
Author: Campbell Barton
Date: Wed Sep 11 01:32:20 2019 +1000
Branches: master
https://developer.blender.org/rB01a3a9c8181dcad2300d10e51681b1499192282a
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.
===================================================================
M source/blender/makesdna/intern/dna_genfile.c
===================================================================
diff --git a/source/blender/makesdna/intern/dna_genfile.c b/source/blender/makesdna/intern/dna_genfile.c
index 09a7a157996..2bc3d058044 100644
--- a/source/blender/makesdna/intern/dna_genfile.c
+++ b/source/blender/makesdna/intern/dna_genfile.c
@@ -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;
}
More information about the Bf-blender-cvs
mailing list