From 9857ffde31725b085d24a09f1bbfe7ae1bb839d8 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 20 Jan 2010 18:27:19 +0000 Subject: Bugfix: copying drivers did not set compiled expression to NULL, also tweak to set it to NULL on file read instead of write as is done usually. --- source/blender/blenkernel/intern/fcurve.c | 1 + source/blender/blenloader/intern/readfile.c | 2 ++ source/blender/blenloader/intern/writefile.c | 7 ------- 3 files changed, 3 insertions(+), 7 deletions(-) (limited to 'source') diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c index 9b6063f0eec..28de10a64f9 100644 --- a/source/blender/blenkernel/intern/fcurve.c +++ b/source/blender/blenkernel/intern/fcurve.c @@ -1205,6 +1205,7 @@ ChannelDriver *fcurve_copy_driver (ChannelDriver *driver) /* copy all data */ ndriver= MEM_dupallocN(driver); + ndriver->expr_comp= NULL; /* copy variables */ ndriver->variables.first= ndriver->variables.last= NULL; diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 11a9a6efff5..5b75912aa2a 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -1780,6 +1780,8 @@ static void direct_link_fcurves(FileData *fd, ListBase *list) if (fcu->driver) { ChannelDriver *driver= fcu->driver; DriverVar *dvar; + + driver->expr_comp= NULL; /* relink variables, targets and their paths */ link_list(fd, &driver->variables); diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 7064b8c380f..f7bd5a0af6b 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -935,15 +935,8 @@ static void write_fcurves(WriteData *wd, ListBase *fcurves) ChannelDriver *driver= fcu->driver; DriverVar *dvar; - /* don't save compiled python bytecode */ - void *expr_comp= driver->expr_comp; - driver->expr_comp= NULL; - writestruct(wd, DATA, "ChannelDriver", 1, driver); - driver->expr_comp= expr_comp; /* restore */ - - /* variables */ for (dvar= driver->variables.first; dvar; dvar= dvar->next) { writestruct(wd, DATA, "DriverVar", 1, dvar); -- cgit v1.2.3