[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33971] trunk/blender/source/blender/ blenloader/intern/readfile.c: Bugfix #25427

Ton Roosendaal ton at blender.org
Fri Dec 31 13:37:30 CET 2010


Revision: 33971
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33971
Author:   ton
Date:     2010-12-31 13:37:30 +0100 (Fri, 31 Dec 2010)

Log Message:
-----------
Bugfix #25427

Serious *bad* crash in undo introduced by commit Janne dec 21st.

Time window now stores some kind of cache for fluids/cloth, but
it's pointing (in SpaceTime) to data inside Objects. (Not ID).

That's really not allowed... this commit fixes crashes but the
cache code really needs to be redesigned. I'm also afraid this
crash is going to frustrate everyone using physics...

Modified Paths:
--------------
    trunk/blender/source/blender/blenloader/intern/readfile.c

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2010-12-31 11:55:11 UTC (rev 33970)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2010-12-31 12:37:30 UTC (rev 33971)
@@ -4984,6 +4984,15 @@
 
 					ssound->sound= restore_pointer_by_name(newmain, (ID *)ssound->sound, 1);
 				}
+				else if(sl->spacetype==SPACE_TIME) {
+					SpaceTime *stime= (SpaceTime *)sl;
+					SpaceTimeCache *stc;
+					
+					/* XXX bad linking of internal object data to space */
+					for (stc= stime->caches.first; stc; stc=stc->next)
+						MEM_freeN(stc->array);
+					BLI_freelistN(&stime->caches);
+				}
 				else if(sl->spacetype==SPACE_NODE) {
 					SpaceNode *snode= (SpaceNode *)sl;
 					





More information about the Bf-blender-cvs mailing list