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