Revision: 17836
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17836
Author:   aligorith
Date:     2008-12-14 12:39:00 +0100 (Sun, 14 Dec 2008)

Log Message:
-----------
2.5:

Fixed more crashers in screen/region/area/spacetype freeing code... 

Hint to Ton: watch how you're getting the pointer to the next item in the list 
when freeing the list ;)

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/blenkernel/intern/screen.c

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/screen.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/screen.c       
2008-12-14 11:25:00 UTC (rev 17835)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/screen.c       
2008-12-14 11:39:00 UTC (rev 17836)
@@ -57,10 +57,12 @@
 
 void BKE_spacetypes_free(void)
 {
-       SpaceType *st;
+       SpaceType *st, *stn;
        
-       for(st= spacetypes.first; st; st= st->next)
+       for(st= spacetypes.first; st; st= stn) {
+               stn= st->next;
                spacetype_free(st);
+       }
        
        BLI_freelistN(&spacetypes);
 }
@@ -100,17 +102,20 @@
 
 void BKE_spacedata_freelist(ListBase *lb)
 {
-       SpaceLink *sl;
-       ARegion *ar;
+       SpaceLink *sl, *sln;
+       ARegion *ar, *arn;
        
-       for (sl= lb->first; sl; sl= sl->next) {
+       for (sl= lb->first; sl; sl= sln) {
                SpaceType *st= BKE_spacetype_from_id(sl->spacetype);
+               sln= sl->next;
                
                if(st && st->free) 
                        st->free(sl);
                /* regions for pushed spaces */
-               for(ar=sl->regionbase.first; ar; ar=ar->next)
+               for(ar=sl->regionbase.first; ar; ar=arn) {
+                       arn= ar->next;
                        BKE_area_region_free(ar);
+               }
                BLI_freelistN(&sl->regionbase);
        }
        


_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to