[Bf-taskforce25] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17836] branches/blender2.5/blender/source /blender/blenkernel/intern/screen.c: 2.5:
Ton Roosendaal
ton at blender.org
Sun Dec 14 17:27:22 CET 2008
Hi Joshua,
> Hint to Ton: watch how you're getting the pointer to the next item in
> the list when freeing the list ;)
Your fixes are not correct; functions like free-space and free-region
etc. do not free the data itself!
The crashes are somewhere else...
-Ton-
------------------------------------------------------------------------
Ton Roosendaal Blender Foundation ton at blender.org www.blender.org
Blender Institute BV Entrepotdok 57A 1018AD Amsterdam The Netherlands
On 14 Dec, 2008, at 12:39, Joshua Leung wrote:
> 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 at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>
More information about the Bf-taskforce25
mailing list