Cleanup: sync minor changes from D4342
authorCampbell Barton <ideasman42@gmail.com>
Fri, 15 Feb 2019 06:20:11 +0000 (17:20 +1100)
committerCampbell Barton <ideasman42@gmail.com>
Fri, 15 Feb 2019 06:22:33 +0000 (17:22 +1100)
Use naming conventions from the patch so they match when it's applied.

source/blender/blenloader/intern/versioning_dna.c
source/blender/makesdna/DNA_genfile.h
source/blender/makesdna/intern/dna_genfile.c
source/blender/makesdna/intern/dna_utils.c
source/blender/makesdna/intern/dna_utils.h

index d379edd83f60081ef6c3a9be5c19ad6ed0ac7da6..854ad7de319fbec8ec7c95855481d25ee94bc86a 100644 (file)
@@ -16,8 +16,7 @@
 
 /** \file \ingroup blenloader
  *
- * Apply edits to DNA at load time
- * to behave as if old files were written new names.
+ * Apply edits to DNA at load time to behave as if old files were written with new names.
  */
 
 #include "BLI_compiler_attrs.h"
@@ -33,8 +32,9 @@
  * Manipulates SDNA before calling #DNA_struct_get_compareflags,
  * allowing us to rename structs and struct members.
  *
- * \attention Changes here will cause breakages in forward compatbility,
- * Use this only in the _rare_ cases when migrating to new naming is needed.
+ * - This means older versions of Blender won't have access to this data **USE WITH CARE**.
+ *
+ * - These changes are applied on file load (run-time), similar to versioning for compatibility.
  */
 void blo_do_versions_dna(SDNA *sdna, const int versionfile, const int subversionfile)
 {
index 0d330c8999abf813f967d13326080ffedb97c581..eddaa78745232ed49aeba24d81a036af29e609d9 100644 (file)
@@ -107,6 +107,6 @@ int DNA_elem_type_size(const eSDNA_Type elem_nr);
 bool DNA_sdna_patch_struct(
         struct SDNA *sdna, const char *struct_name_old, const char *struct_name_new);
 bool DNA_sdna_patch_struct_member(
-        struct SDNA *sdna, const char *struct_name, const char *member_old, const char *member_new);
+        struct SDNA *sdna, const char *struct_name, const char *elem_old, const char *elem_new);
 
 #endif /* __DNA_GENFILE_H__ */
index 957ce637167934fe16d92a178e543c77104c7047..d168458fc9a3c746aa0f5c2e7a83316f262051dc 100644 (file)
@@ -1395,44 +1395,43 @@ bool DNA_sdna_patch_struct(
 
 /* Make public if called often with same struct (avoid duplicate look-ups). */
 static bool DNA_sdna_patch_struct_member_nr(
-        SDNA *sdna, const int struct_name_nr, const char *member_old, const char *member_new)
+        SDNA *sdna, const int struct_name_nr, const char *elem_old, const char *elem_new)
 {
-       const int member_old_len = strlen(member_old);
-       const int member_new_len = strlen(member_new);
-       BLI_assert(member_new != NULL);
+       const int elem_old_len = strlen(elem_old);
+       const int elem_new_len = strlen(elem_new);
+       BLI_assert(elem_new != NULL);
        const short *sp = sdna->structs[struct_name_nr];
-       for (int member_iter = sp[1]; member_iter > 0; member_iter--, sp += 2) {
-               const char *elem_full_old = sdna->names[sp[1]];
-               /* Start & end offsets in 'elem_full_old'. */
-               uint elem_full_offset_start;
-               if (DNA_elem_id_match(member_old, member_old_len, elem_full_old, &elem_full_offset_start)) {
+       for (int elem_index = sp[1]; elem_index > 0; elem_index--, sp += 2) {
+               const char *elem_old_full = sdna->names[sp[1]];
+               /* Start & end offsets in 'elem_old_full'. */
+               uint elem_old_full_offset_start;
+               if (DNA_elem_id_match(elem_old, elem_old_len, elem_old_full, &elem_old_full_offset_start)) {
                        if (sdna->mem_arena == NULL) {
                                sdna->mem_arena = BLI_memarena_new(BLI_MEMARENA_STD_BUFSIZE, __func__);
                        }
-                       const int elem_full_old_len = strlen(elem_full_old);
-                       const char *elem_full_new = DNA_elem_id_rename(
+                       const char *elem_new_full = DNA_elem_id_rename(
                                sdna->mem_arena,
-                               member_old, member_old_len,
-                               member_new, member_new_len,
-                               elem_full_old, elem_full_old_len,
-                               elem_full_offset_start);
+                               elem_old, elem_old_len,
+                               elem_new, elem_new_len,
+                               elem_old_full, strlen(elem_old_full),
+                               elem_old_full_offset_start);
 
-                       sdna->names[sp[1]] = elem_full_new;
+                       sdna->names[sp[1]] = elem_new_full;
                        return true;
                }
        }
        return false;
 }
 /**
- * Replace \a member_old with \a member_new for struct \a struct_name
+ * Replace \a elem_old with \a elem_new for struct \a struct_name
  * handles search & replace, maintaining surrounding non-identifier characters such as pointer & array size.
  */
 bool DNA_sdna_patch_struct_member(
-        SDNA *sdna, const char *struct_name, const char *member_old, const char *member_new)
+        SDNA *sdna, const char *struct_name, const char *elem_old, const char *elem_new)
 {
        const int struct_name_nr = DNA_struct_find_nr(sdna, struct_name);
        if (struct_name_nr != -1) {
-               return DNA_sdna_patch_struct_member_nr(sdna, struct_name_nr, member_old, member_new);
+               return DNA_sdna_patch_struct_member_nr(sdna, struct_name_nr, elem_old, elem_new);
        }
        return false;
 }
index 42174494347024a609c6eb7bdb277539e476d9d7..7065e1a672fa51a2356dcf3feadaeabd8b67e873 100644 (file)
@@ -107,22 +107,24 @@ uint DNA_elem_id_offset_end(const char *elem_full)
 /**
  * \a elem_dst must be at least the size of \a elem_src.
  */
-void DNA_elem_id_strip_copy(char *elem_dst, const char *elem_src)
+uint DNA_elem_id_strip_copy(char *elem_dst, const char *elem_src)
 {
        const uint elem_src_offset = DNA_elem_id_offset_start(elem_src);
        const char *elem_src_trim = elem_src + elem_src_offset;
        const uint elem_src_trim_len = DNA_elem_id_offset_end(elem_src_trim);
        memcpy(elem_dst, elem_src_trim, elem_src_trim_len);
        elem_dst[elem_src_trim_len] = '\0';
+       return elem_src_trim_len;
 }
 
-void DNA_elem_id_strip(char *elem)
+uint DNA_elem_id_strip(char *elem)
 {
        const uint elem_offset = DNA_elem_id_offset_start(elem);
        const char *elem_trim = elem + elem_offset;
        const uint elem_trim_len = DNA_elem_id_offset_end(elem_trim);
        memmove(elem, elem_trim, elem_trim_len);
        elem[elem_trim_len] = '\0';
+       return elem_trim_len;
 }
 
 /**
index 1ad31fe034c8f4ab80207616f8b172209db70c2c..d7cf4212971de1461ca380782486012378ccbd7a 100644 (file)
@@ -26,8 +26,8 @@ int DNA_elem_array_size(const char *str);
 
 uint DNA_elem_id_offset_start(const char *elem_full);
 uint DNA_elem_id_offset_end(const char *elem_full);
-void DNA_elem_id_strip_copy(char *elem_dst, const char *elem_src);
-void DNA_elem_id_strip(char *elem);
+uint DNA_elem_id_strip_copy(char *elem_dst, const char *elem_src);
+uint DNA_elem_id_strip(char *elem);
 bool DNA_elem_id_match(
         const char *elem_search, const int elem_search_len,
         const char *elem_full,