don't crash when adding an object after the previously selected object

has been deleted (thanks to Bischofftep for pointing this out)
This commit is contained in:
2003-05-14 00:23:58 +00:00
parent 1bcb3b251e
commit c760bd6e3c
2 changed files with 15 additions and 11 deletions

View File

@@ -2716,11 +2716,11 @@ static uiBlock *info_filemenu(void *arg_unused)
static void do_info_editmenu(void *arg, int event) static void do_info_editmenu(void *arg, int event)
{ {
/* needed to check for valid selected objects */ /* needed to check for valid selected objects */
Base *base; Base *base=NULL;
Object *ob; Object *ob=NULL;
base= BASACT; base= BASACT;
ob= base->object; if (base) ob= base->object;
switch(event) { switch(event) {
@@ -2777,7 +2777,8 @@ static void do_info_editmenu(void *arg, int event)
case 9: case 9:
/* Shear */ /* Shear */
/* check that a valid object is selected to prevent crash */ /* check that a valid object is selected to prevent crash */
if ((ob->type==OB_LAMP) || (ob->type==OB_EMPTY) || (ob->type==OB_FONT) || (ob->type==OB_CAMERA)) { if (!ob) error ("Only selected objects can be sheared");
else if ((ob->type==OB_LAMP) || (ob->type==OB_EMPTY) || (ob->type==OB_FONT) || (ob->type==OB_CAMERA)) {
error("Only editable 3D objects can be sheared"); error("Only editable 3D objects can be sheared");
} }
else if ((base->lay & G.vd->lay)==0) { else if ((base->lay & G.vd->lay)==0) {
@@ -2805,7 +2806,8 @@ static void do_info_editmenu(void *arg, int event)
case 10: case 10:
/* Warp/Bend */ /* Warp/Bend */
/* check that a valid object is selected to prevent crash */ /* check that a valid object is selected to prevent crash */
if ((ob->type==OB_LAMP) || (ob->type==OB_EMPTY) || (ob->type==OB_FONT) || (ob->type==OB_CAMERA)) { if (!ob) error("Only selected objects can be warped");
else if ((ob->type==OB_LAMP) || (ob->type==OB_EMPTY) || (ob->type==OB_FONT) || (ob->type==OB_CAMERA)) {
error("Only editable 3D objects can be warped"); error("Only editable 3D objects can be warped");
} }
else if ((base->lay & G.vd->lay)==0) { else if ((base->lay & G.vd->lay)==0) {

View File

@@ -568,11 +568,11 @@ void tbox_execute(void)
unsigned short qual1=0, qual2=0; unsigned short qual1=0, qual2=0;
/* needed to check for valid selected objects */ /* needed to check for valid selected objects */
Base *base; Base *base=NULL;
Object *ob; Object *ob=NULL;
base= BASACT; base= BASACT;
ob= base->object; if (base) ob= base->object;
if(tbfunc) { if(tbfunc) {
tbfunc(tbval); tbfunc(tbval);
@@ -598,11 +598,12 @@ void tbox_execute(void)
/* ctrl-s (Shear): switch into editmode ### */ /* ctrl-s (Shear): switch into editmode ### */
else if(strcmp(tbstr1, "c|s")==0) { else if(strcmp(tbstr1, "c|s")==0) {
/* check that a valid object is selected to prevent crash */ /* check that a valid object is selected to prevent crash */
if ((ob->type==OB_LAMP) || (ob->type==OB_EMPTY) || (ob->type==OB_FONT) || (ob->type==OB_CAMERA)) { if(!ob) error("Only selected objects can be sheared");
else if ((ob->type==OB_LAMP) || (ob->type==OB_EMPTY) || (ob->type==OB_FONT) || (ob->type==OB_CAMERA)) {
error("Only editable 3D objects can be sheared"); error("Only editable 3D objects can be sheared");
} }
else if ((base->lay & G.vd->lay)==0) { else if ((base->lay & G.vd->lay)==0) {
error("Only objects on visible layers can be warped"); error("Only objects on visible layers can be sheared");
} }
else { else {
if (!G.obedit) { if (!G.obedit) {
@@ -619,8 +620,9 @@ void tbox_execute(void)
} }
} }
else if(strcmp(tbstr1, "W")==0) { else if(strcmp(tbstr1, "W")==0) {
if (!ob) error ("Only selected objects can be warped");
/* check that a valid object is selected to prevent crash */ /* check that a valid object is selected to prevent crash */
if ((ob->type==OB_LAMP) || (ob->type==OB_EMPTY) || (ob->type==OB_FONT) || (ob->type==OB_CAMERA)) { else if ((ob->type==OB_LAMP) || (ob->type==OB_EMPTY) || (ob->type==OB_FONT) || (ob->type==OB_CAMERA)) {
error("Only editable 3D objects can be warped"); error("Only editable 3D objects can be warped");
} }
else if ((base->lay & G.vd->lay)==0) { else if ((base->lay & G.vd->lay)==0) {