Fix error disabling all addons
authorCampbell Barton <ideasman42@gmail.com>
Fri, 19 Oct 2018 06:49:16 +0000 (17:49 +1100)
committerCampbell Barton <ideasman42@gmail.com>
Fri, 19 Oct 2018 06:49:48 +0000 (17:49 +1100)
release/scripts/modules/addon_utils.py

index dc7f4053a01e14e7139ed4d560c038b60247cc58..713a11362c6a8676df8723f8764e8526f3863566 100644 (file)
@@ -472,7 +472,12 @@ def reset_all(*, reload_scripts=False):
 
 def disable_all():
     import sys
-    for mod_name, mod in sys.modules.items():
+    # Collect modules to disable first because dict can be modified as we disable.
+    addon_modules = [
+        item for item in sys.modules.items()
+        if getattr(item[1], "__addon_enabled__", False)
+    ]
+    for mod_name, mod in addon_modules:
         if getattr(mod, "__addon_enabled__", False):
             disable(mod_name)