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:
@@ -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) {
|
||||||
|
@@ -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) {
|
||||||
|
Reference in New Issue
Block a user