diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-09-10 18:32:20 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-09-10 18:51:15 +0300 |
commit | 01a3a9c8181dcad2300d10e51681b1499192282a (patch) | |
tree | ba034e812883999ac856da5c6b7179e33d7d1f58 | |
parent | 2f4153396cf8aa35d99899b0f28fb194b2fd34c0 (diff) |
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.
-rw-r--r-- | source/blender/makesdna/intern/dna_genfile.c | 7 |
1 files changed, 7 insertions, 0 deletions
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; } |