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>2005-12-20 02:04:58 +0300
committerCampbell Barton <ideasman42@gmail.com>2005-12-20 02:04:58 +0300
commitbbb00043cdc8fd12c643ed622e333cc95cdd02a4 (patch)
treeda487fc65b1bdef0d89cefbda04fe2e1a4382eb4
parentb05433a095d00f510f7edddbd6711636cc774e24 (diff)
When adding a Mesh in python a file saved caused blender to segfault when reloading.
turns out that oops->id->lib isnt initialized? anyhow if (oops->id && oops->id->lib) // works where if (oops->id->lib) // crashes so made the needed change in a few places.
-rw-r--r--source/blender/src/drawoops.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/source/blender/src/drawoops.c b/source/blender/src/drawoops.c
index 4ecc31eb082..13e36dffefc 100644
--- a/source/blender/src/drawoops.c
+++ b/source/blender/src/drawoops.c
@@ -86,7 +86,7 @@ void boundbox_oops(short sel)
oops= G.soops->oops.first;
while(oops) {
- if (oops->hide==0 && !sel || (sel && oops->flag & SELECT )) {
+ if ((oops->hide==0 && !sel) || (sel && oops->flag & SELECT )) {
ok= 1;
min[0]= MIN2(min[0], oops->x);
@@ -131,7 +131,9 @@ void draw_oopslink(Oops *oops)
if(oops->type==ID_SCE) {
if(oops->flag & SELECT) {
- if(oops->id->lib) cpack(0x4080A0);
+ /* when using python Mesh to make meshes a file was saved
+ that had an oops with no ID, stops a segfault when looking for lib */
+ if(oops->id && oops->id->lib) cpack(0x4080A0);
else cpack(0x808080);
}
else cpack(0x606060);
@@ -345,7 +347,10 @@ void draw_oops(Oops *oops)
glRectf(x1, y1, x2, y2);
}
- if(oops->id->lib) {
+
+ /* it has never happened that an oops was missing an ID at
+ this point but has occured elseware so lets be safe */
+ if(oops->id && oops->id->lib) {
if(oops->id->flag & LIB_INDIRECT) cpack(0x1144FF);
else cpack(0x11AAFF);