diff options
author | Joshua Leung <aligorith@gmail.com> | 2008-12-12 02:05:18 +0300 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2008-12-12 02:05:18 +0300 |
commit | 6f6eee09238a751c42aad9df84d7f8b2f131841c (patch) | |
tree | a07457fbef85aa8ddb241594182df62ff4b4219b /source/blender/blenkernel/intern/screen.c | |
parent | b7426ab4e22e4e442b019bddf9172e8e7ef516ce (diff) |
2.5 - Fixed crashes when closing windows
Diffstat (limited to 'source/blender/blenkernel/intern/screen.c')
-rw-r--r-- | source/blender/blenkernel/intern/screen.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/source/blender/blenkernel/intern/screen.c b/source/blender/blenkernel/intern/screen.c index af5134cd6a0..2831f45195e 100644 --- a/source/blender/blenkernel/intern/screen.c +++ b/source/blender/blenkernel/intern/screen.c @@ -164,15 +164,19 @@ void BKE_screen_area_free(ScrArea *sa) /* don't free screen itself */ void free_screen(bScreen *sc) { - ScrArea *sa; - ARegion *ar; + ScrArea *sa, *san; + ARegion *ar, *arn; - for(ar=sc->regionbase.first; ar; ar=ar->next) + for(ar=sc->regionbase.first; ar; ar=arn) { + arn= ar->next; BKE_area_region_free(ar); + } BLI_freelistN(&sc->regionbase); - for(sa= sc->areabase.first; sa; sa= sa->next) + for(sa= sc->areabase.first; sa; sa= san) { + san= sa->next; BKE_screen_area_free(sa); + } BLI_freelistN(&sc->vertbase); BLI_freelistN(&sc->edgebase); |