[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