[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26254] trunk/blender/source/blender/ blenloader/intern/readfile.c: undo would often crash when filter_group was used.

Campbell Barton ideasman42 at gmail.com
Mon Jan 25 18:24:05 CET 2010


Revision: 26254
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26254
Author:   campbellbarton
Date:     2010-01-25 18:24:04 +0100 (Mon, 25 Jan 2010)

Log Message:
-----------
undo would often crash when filter_group was used.
conversion wasnt included in lib_link_screen_restore

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-01-25 16:42:04 UTC (rev 26253)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2010-01-25 17:24:04 UTC (rev 26254)
@@ -4869,10 +4869,11 @@
 					
 				}
 				else if(sl->spacetype==SPACE_IPO) {
+					SpaceIpo *sipo= (SpaceIpo *)sl;
+					bDopeSheet *ads= sipo->ads;
+
 					/* XXX animato */
 #if 0
-					SpaceIpo *sipo= (SpaceIpo *)sl;
-
 					sipo->ipo= restore_pointer_by_name(newmain, (ID *)sipo->ipo, 0);
 					if(sipo->blocktype==ID_SEQ) 
 						sipo->from= (ID *)find_sequence_from_ipo_helper(newmain, sipo->ipo);
@@ -4882,7 +4883,11 @@
 					// not free sipo->ipokey, creates dependency with src/
 					if(sipo->editipo) MEM_freeN(sipo->editipo);
 					sipo->editipo= NULL;
+
 #endif
+					if (ads->filter_grp) {
+						ads->filter_grp= restore_pointer_by_name(newmain, (ID *)ads->filter_grp, 0);
+					}
 				}
 				else if(sl->spacetype==SPACE_BUTS) {
 					SpaceButs *sbuts= (SpaceButs *)sl;
@@ -4908,6 +4913,10 @@
 					SpaceAction *saction= (SpaceAction *)sl;
 					saction->action = restore_pointer_by_name(newmain, (ID *)saction->action, 1);
 					saction->ads.source= restore_pointer_by_name(newmain, (ID *)saction->ads.source, 1);
+
+					if(saction->ads.filter_grp) {
+						saction->ads.filter_grp= restore_pointer_by_name(newmain, (ID *)saction->ads.filter_grp, 0);
+					}
 				}
 				else if(sl->spacetype==SPACE_IMAGE) {
 					SpaceImage *sima= (SpaceImage *)sl;
@@ -4915,7 +4924,12 @@
 					sima->image= restore_pointer_by_name(newmain, (ID *)sima->image, 1);
 				}
 				else if(sl->spacetype==SPACE_NLA){
-					/* SpaceNla *snla= (SpaceNla *)sl;	*/
+					SpaceNla *snla= (SpaceNla *)sl;
+					bDopeSheet *ads= snla->ads;
+
+					if (ads->filter_grp) {
+						ads->filter_grp= restore_pointer_by_name(newmain, (ID *)ads->filter_grp, 0);
+					}
 				}
 				else if(sl->spacetype==SPACE_TEXT) {
 					SpaceText *st= (SpaceText *)sl;





More information about the Bf-blender-cvs mailing list