[Bf-blender-cvs] [94af455e37a] master: RNA: only search necessary space types when unregistered panels

Campbell Barton noreply at git.blender.org
Wed Jun 26 04:52:29 CEST 2019


Commit: 94af455e37ae6121f2af5987fb694eb7d44f6cde
Author: Campbell Barton
Date:   Wed Jun 26 12:50:42 2019 +1000
Branches: master
https://developer.blender.org/rB94af455e37ae6121f2af5987fb694eb7d44f6cde

RNA: only search necessary space types when unregistered panels

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

M	source/blender/makesrna/intern/rna_ui.c

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

diff --git a/source/blender/makesrna/intern/rna_ui.c b/source/blender/makesrna/intern/rna_ui.c
index a2339a815dc..097e62a1fea 100644
--- a/source/blender/makesrna/intern/rna_ui.c
+++ b/source/blender/makesrna/intern/rna_ui.c
@@ -207,18 +207,21 @@ static void rna_Panel_unregister(Main *bmain, StructRNA *type)
     child_pt->parent = NULL;
   }
 
+  const char space_type = pt->space_type;
   BLI_freelistN(&pt->children);
   BLI_freelinkN(&art->paneltypes, pt);
 
   for (bScreen *screen = bmain->screens.first; screen; screen = screen->id.next) {
     for (ScrArea *sa = screen->areabase.first; sa; sa = sa->next) {
       for (SpaceLink *sl = sa->spacedata.first; sl; sl = sl->next) {
-        ListBase *regionbase = (sl == sa->spacedata.first) ? &sa->regionbase : &sl->regionbase;
-        for (ARegion *region = regionbase->first; region; region = region->next) {
-          if (region->type == art) {
-            for (Panel *pa = region->panels.first; pa; pa = pa->next) {
-              if (pa->type == pt) {
-                pa->type = NULL;
+        if (sl->spacetype == space_type) {
+          ListBase *regionbase = (sl == sa->spacedata.first) ? &sa->regionbase : &sl->regionbase;
+          for (ARegion *region = regionbase->first; region; region = region->next) {
+            if (region->type == art) {
+              for (Panel *pa = region->panels.first; pa; pa = pa->next) {
+                if (pa->type == pt) {
+                  pa->type = NULL;
+                }
               }
             }
           }



More information about the Bf-blender-cvs mailing list