diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2010-01-20 21:27:19 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2010-01-20 21:27:19 +0300 |
commit | 9857ffde31725b085d24a09f1bbfe7ae1bb839d8 (patch) | |
tree | 9cad279ce4c0eedab4e66ea19c7ddef45bce54e3 /source | |
parent | a035dafd2732e2aae3ad61ca5ba8e8c1d9d4463c (diff) |
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.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/fcurve.c | 1 | ||||
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 2 | ||||
-rw-r--r-- | source/blender/blenloader/intern/writefile.c | 7 |
3 files changed, 3 insertions, 7 deletions
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); |