made texflag a short everywhere (only stores one flag)
authorCampbell Barton <ideasman42@gmail.com>
Thu, 15 Oct 2009 09:00:40 +0000 (09:00 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Thu, 15 Oct 2009 09:00:40 +0000 (09:00 +0000)
fix for crash with separate (missing NULL check)

source/blender/blenkernel/BKE_object.h
source/blender/blenkernel/intern/object.c
source/blender/editors/object/object_edit.c
source/blender/editors/transform/transform_conversions.c
source/blender/makesdna/DNA_curve_types.h
source/blender/makesdna/DNA_meta_types.h

index 1cb6efeb83859339042d613a3ff0339800693ffc..aeb33cd362879a5852a7aea5147e944d5351a8aa 100644 (file)
@@ -114,7 +114,7 @@ int ray_hit_boundbox(struct BoundBox *bb, float ray_start[3], float ray_normal[3
 void object_handle_update(struct Scene *scene, struct Object *ob);
 
 float give_timeoffset(struct Object *ob);
-int give_obdata_texspace(struct Object *ob, int **texflag, float **loc, float **size, float **rot);
+int give_obdata_texspace(struct Object *ob, short **texflag, float **loc, float **size, float **rot);
 
 int object_insert_ptcache(struct Object *ob);
 // void object_delete_ptcache(struct Object *ob, int index);
index 8494fdae954e50458392f617d79bba3135b96cc7..eb5beb734a160631f70f89109b27146210ee0c32 100644 (file)
@@ -1102,7 +1102,7 @@ ParticleSystem *copy_particlesystem(ParticleSystem *psys)
                        pa->hair = MEM_dupallocN(pa->hair);
        }
 
-       if(psysn->particles->keys || psysn->particles->boid) {
+       if(psysn->particles && (psysn->particles->keys || psysn->particles->boid)) {
                ParticleKey *key = psysn->particles->keys;
                BoidParticle *boid = psysn->particles->boid;
 
@@ -2475,7 +2475,7 @@ float give_timeoffset(Object *ob) {
        }
 }
 
-int give_obdata_texspace(Object *ob, int **texflag, float **loc, float **size, float **rot) {
+int give_obdata_texspace(Object *ob, short **texflag, float **loc, float **size, float **rot) {
        
        if (ob->data==NULL)
                return 0;
index abd6847c6dbd3124d093884dbc5bf5d330c955a2..d302e1eeec8ef80ca26da656629d972aa8e44ee5 100644 (file)
@@ -1258,7 +1258,7 @@ static void copymenu_modifiers(Scene *scene, View3D *v3d, Object *ob)
 static void copy_texture_space(Object *to, Object *ob)
 {
        float *poin1= NULL, *poin2= NULL;
-       int texflag= 0;
+       short texflag= 0;
        
        if(ob->type==OB_MESH) {
                texflag= ((Mesh *)ob->data)->texflag;
index 16d0789468235d97bf857d5d90186ca04a2b917f..317457ee33f9906b53c5283e597b451c495dc90d 100644 (file)
@@ -292,7 +292,7 @@ static void createTransTexspace(bContext *C, TransInfo *t)
        TransData *td;
        Object *ob;
        ID *id;
-       int *texflag;
+       short *texflag;
 
        ob = OBACT;
 
index 6cfeb646cf2835ec67137558dd301727d680caad..f988511b146016288d13198055914f985a22012f 100644 (file)
@@ -174,7 +174,7 @@ typedef struct Curve {
        float size[3];
        float rot[3];
 
-       int texflag; /* keep an int because of give_obdata_texspace() */
+       short texflag, pad1; /* keep a short because of give_obdata_texspace() */
 
        short drawflag, twist_mode,  pad[2];
        float twist_smooth, pad2;
index 8b61405b851c86310b15783c2fd9f199d5eb68ff..0e746eb0f4de759985b0ceb17cab0b059a58417b 100644 (file)
@@ -77,7 +77,7 @@ typedef struct MetaBall {
 
        char flag, flag2;                       /* flag is enum for updates, flag2 is bitflags for settings */
        short totcol;
-       int texflag; /* used to store MB_AUTOSPACE */
+       short texflag, pad; /* used to store MB_AUTOSPACE */
        
        /* texture space, copied as one block in editobject.c */
        float loc[3];