Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2010-01-04 17:22:22 +0300
committerCampbell Barton <ideasman42@gmail.com>2010-01-04 17:22:22 +0300
commitaddd07582b16fe9cc705620fe990a6a028b8215b (patch)
treeb2ff4649b2794b29dc6bc992c175100066eab79c /source/blender/blenloader
parentd1da5cb99a3dab9ed34fa95c6c5f9f9bb194802d (diff)
check if newlibadr returns a valid pointer when running do-versions on animviz data
Diffstat (limited to 'source/blender/blenloader')
-rw-r--r--source/blender/blenloader/intern/readfile.c84
1 files changed, 43 insertions, 41 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 69186432d64..4165d2860a4 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -10339,47 +10339,49 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
/* if armature, copy settings for pose from armature data */
if (ob->pose && ob->data) {
bArmature *arm= newlibadr(fd, lib, ob->data);
- bAnimVizSettings *avs= &ob->pose->avs;
-
- /* ghosting settings ---------------- */
- /* ranges */
- avs->ghost_bc= avs->ghost_ac= arm->ghostep;
-
- avs->ghost_sf= arm->ghostsf;
- avs->ghost_ef= arm->ghostef;
-
- /* type */
- avs->ghost_type= arm->ghosttype;
-
- /* stepsize */
- avs->ghost_step= arm->ghostsize;
-
- /* path settings --------------------- */
- /* ranges */
- avs->path_bc= arm->pathbc;
- avs->path_ac= arm->pathac;
-
- avs->path_sf= arm->pathsf;
- avs->path_ef= arm->pathef;
-
- /* flags */
- if (arm->pathflag & ARM_PATH_FNUMS)
- avs->path_viewflag |= MOTIONPATH_VIEW_FNUMS;
- if (arm->pathflag & ARM_PATH_KFRAS)
- avs->path_viewflag |= MOTIONPATH_VIEW_KFRAS;
- if (arm->pathflag & ARM_PATH_KFNOS)
- avs->path_viewflag |= MOTIONPATH_VIEW_KFNOS;
-
- /* bake flags */
- if (arm->pathflag & ARM_PATH_HEADS)
- avs->path_bakeflag |= MOTIONPATH_BAKE_HEADS;
-
- /* type */
- if (arm->pathflag & ARM_PATH_ACFRA)
- avs->path_type = MOTIONPATH_TYPE_ACFRA;
-
- /* stepsize */
- avs->path_step= arm->pathsize;
+ if(arm) { /* XXX - why does this fail in some cases? */
+ bAnimVizSettings *avs= &ob->pose->avs;
+
+ /* ghosting settings ---------------- */
+ /* ranges */
+ avs->ghost_bc= avs->ghost_ac= arm->ghostep;
+
+ avs->ghost_sf= arm->ghostsf;
+ avs->ghost_ef= arm->ghostef;
+
+ /* type */
+ avs->ghost_type= arm->ghosttype;
+
+ /* stepsize */
+ avs->ghost_step= arm->ghostsize;
+
+ /* path settings --------------------- */
+ /* ranges */
+ avs->path_bc= arm->pathbc;
+ avs->path_ac= arm->pathac;
+
+ avs->path_sf= arm->pathsf;
+ avs->path_ef= arm->pathef;
+
+ /* flags */
+ if (arm->pathflag & ARM_PATH_FNUMS)
+ avs->path_viewflag |= MOTIONPATH_VIEW_FNUMS;
+ if (arm->pathflag & ARM_PATH_KFRAS)
+ avs->path_viewflag |= MOTIONPATH_VIEW_KFRAS;
+ if (arm->pathflag & ARM_PATH_KFNOS)
+ avs->path_viewflag |= MOTIONPATH_VIEW_KFNOS;
+
+ /* bake flags */
+ if (arm->pathflag & ARM_PATH_HEADS)
+ avs->path_bakeflag |= MOTIONPATH_BAKE_HEADS;
+
+ /* type */
+ if (arm->pathflag & ARM_PATH_ACFRA)
+ avs->path_type = MOTIONPATH_TYPE_ACFRA;
+
+ /* stepsize */
+ avs->path_step= arm->pathsize;
+ }
}
}