[Bf-blender-cvs] [e255040c779] master: Cleanup: run UserDef versioning from readfile.c

Campbell Barton noreply at git.blender.org
Fri Oct 2 23:32:11 CEST 2020


Commit: e255040c7797a282cb0ea614e3f95c6a59cd0298
Author: Campbell Barton
Date:   Fri Oct 2 23:23:57 2020 +1000
Branches: master
https://developer.blender.org/rBe255040c7797a282cb0ea614e3f95c6a59cd0298

Cleanup: run UserDef versioning from readfile.c

Now versioning UserDef is run in readfile.c,
as is done for other Blender data.

Previously versioning was mixed with other run-time initialization,
so it needed to be called later by the window manager.

===================================================================

M	source/blender/blenloader/intern/readfile.c
M	source/blender/editors/interface/interface.c
M	source/blender/editors/interface/interface_intern.h
M	source/blender/editors/interface/resources.c
M	source/blender/windowmanager/intern/wm_files.c

===================================================================

diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index c9e279f7588..2ea4206bab3 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -6883,15 +6883,15 @@ static void link_global(FileData *fd, BlendFileData *bfd)
 /** \name Versioning
  * \{ */
 
-/* initialize userdef with non-UI dependency stuff */
-/* other initializers (such as theme color defaults) go to resources.c */
-static void do_versions_userdef(FileData *fd, BlendFileData *bfd)
+static void do_versions_userdef(FileData *UNUSED(fd), BlendFileData *bfd)
 {
   UserDef *user = bfd->user;
 
   if (user == NULL) {
     return;
   }
+
+  BLO_version_defaults_userpref_blend(user);
 }
 
 static void do_versions(FileData *fd, Library *lib, Main *main)
diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c
index d93d80bb4ef..85097a80b53 100644
--- a/source/blender/editors/interface/interface.c
+++ b/source/blender/editors/interface/interface.c
@@ -7061,11 +7061,8 @@ void UI_init(void)
 /* after reading userdef file */
 void UI_init_userdef(void)
 {
-  /* fix saved themes */
-  init_userdef_do_versions();
+  /* Initialize UI variables from values set in the preferences. */
   uiStyleInit();
-
-  BLO_sanitize_experimental_features_userpref_blend(&U);
 }
 
 void UI_reinit_font(void)
diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h
index 7ac6ca4577e..194726b1347 100644
--- a/source/blender/editors/interface/interface_intern.h
+++ b/source/blender/editors/interface/interface_intern.h
@@ -993,7 +993,6 @@ void icon_draw_rect_input(
     float x, float y, int w, int h, float alpha, short event_type, short event_value);
 
 /* resources.c */
-void init_userdef_do_versions(void);
 void ui_resources_init(void);
 void ui_resources_free(void);
 
diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c
index 1601d9914a3..ec6f99f167d 100644
--- a/source/blender/editors/interface/resources.c
+++ b/source/blender/editors/interface/resources.c
@@ -1499,18 +1499,3 @@ void UI_make_axis_color(const uchar src_col[3], uchar dst_col[3], const char axi
       break;
   }
 }
-
-/* patching UserDef struct and Themes */
-void init_userdef_do_versions(void)
-{
-  BLO_version_defaults_userpref_blend(&U);
-
-  if (STREQ(U.tempdir, "/")) {
-    BKE_tempdir_system_init(U.tempdir);
-  }
-
-  /* Not versioning, just avoid errors. */
-#ifndef WITH_CYCLES
-  BKE_addon_remove_safe(&U.addons, "cycles");
-#endif
-}
diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c
index 6e3a5ccb339..3f58ba9e5a0 100644
--- a/source/blender/windowmanager/intern/wm_files.c
+++ b/source/blender/windowmanager/intern/wm_files.c
@@ -69,6 +69,7 @@
 #include "DNA_windowmanager_types.h"
 #include "DNA_workspace_types.h"
 
+#include "BKE_addon.h"
 #include "BKE_appdir.h"
 #include "BKE_autoexec.h"
 #include "BKE_blender.h"
@@ -388,10 +389,18 @@ static void wm_window_match_do(bContext *C,
 /** \name Preferences Initialization & Versioning
  * \{ */
 
-/* in case UserDef was read, we re-initialize all, and do versioning */
+/**
+ * In case #UserDef was read, re-initialize values that depend on it.
+ */
 static void wm_init_userdef(Main *bmain)
 {
-  /* versioning is here */
+  /* Not versioning, just avoid errors. */
+#ifndef WITH_CYCLES
+  BKE_addon_remove_safe(&U.addons, "cycles");
+#else
+  UNUSED_VARS(BKE_addon_remove_safe);
+#endif
+
   UI_init_userdef();
 
   /* needed so loading a file from the command line respects user-pref T26156. */
@@ -406,11 +415,16 @@ static void wm_init_userdef(Main *bmain)
   MEM_CacheLimiter_set_maximum(((size_t)U.memcachelimit) * 1024 * 1024);
   BKE_sound_init(bmain);
 
-  /* update tempdir from user preferences */
+  if (STREQ(U.tempdir, "/")) {
+    BKE_tempdir_system_init(U.tempdir);
+  }
+  /* Update `U.tempdir` from user preferences. */
   BKE_tempdir_init(U.tempdir);
 
   /* Update tablet API preference. */
   WM_init_tablet_api();
+
+  BLO_sanitize_experimental_features_userpref_blend(&U);
 }
 
 /* return codes */



More information about the Bf-blender-cvs mailing list