void BKE_spacedata_freelist(ListBase *lb) { SpaceLink *sl; ARegion *ar; for (sl = lb->first; sl; sl = sl->next) { SpaceType *st = BKE_spacetype_from_id(sl->spacetype); /* free regions for pushed spaces */ for (ar = sl->regionbase.first; ar; ar = ar->next) BKE_area_region_free(st, ar); BLI_freelistN(&sl->regionbase); if (st && st->free) st->free(sl); } BLI_freelistN(lb); }