Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2016-11-18 17:14:22 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2016-11-18 17:15:46 +0300
commit8f0dc3cef6c3f3e02a0a4322cd241cf379e52552 (patch)
tree056bef0d4610164ca898b02fb3212ac8ef13613a
parent3fb11061bad7c76ea53925ed599ee155b0d4222f (diff)
Fix T50052: bpy.utils.unregister_module doesn't unregister classes of submodules in reload scenario.
reload case would clear TypeMap before unregistering addons, which made all calls to unregister_module() to do absolutely nothing.
-rw-r--r--release/scripts/modules/bpy/utils/__init__.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/release/scripts/modules/bpy/utils/__init__.py b/release/scripts/modules/bpy/utils/__init__.py
index 66974dedc24..31dd836e034 100644
--- a/release/scripts/modules/bpy/utils/__init__.py
+++ b/release/scripts/modules/bpy/utils/__init__.py
@@ -154,8 +154,6 @@ def load_scripts(reload_scripts=False, refresh_scripts=False):
original_modules = _sys.modules.values()
if reload_scripts:
- _bpy_types.TypeMap.clear()
-
# just unload, don't change user defaults, this means we can sync
# to reload. note that they will only actually reload of the
# modification time changes. This `won't` work for packages so...
@@ -163,6 +161,9 @@ def load_scripts(reload_scripts=False, refresh_scripts=False):
for module_name in [ext.module for ext in _user_preferences.addons]:
_addon_utils.disable(module_name)
+ # *AFTER* unregistering all add-ons, otherwise all calls to unregister_module() will silently fail (do nothing).
+ _bpy_types.TypeMap.clear()
+
def register_module_call(mod):
register = getattr(mod, "register", None)
if register: