X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fnasal%2Fcodegen.c;h=059c1144525b39a41bbd9245376cbfc3874fd110;hb=423eba373389684061fc0a8c7b78292f10011ed7;hp=76050031cdc231e89ccf599a526e6d57ea8d5359;hpb=0180cae8c3f60cce6b518b25238ffd6480373104;p=simgear.git diff --git a/simgear/nasal/codegen.c b/simgear/nasal/codegen.c index 76050031..059c1144 100644 --- a/simgear/nasal/codegen.c +++ b/simgear/nasal/codegen.c @@ -536,6 +536,9 @@ static void genAssign(struct Parser* p, struct Token* t) { struct Token *lv = LEFT(t), *rv = RIGHT(t); int len, dummy, var=0; + if (!lv) + naParseError(p, "bad assignment, missing variable", t->line); + else if(parListLen(lv) || (lv->type == TOK_VAR && parListLen(RIGHT(lv)))) { if(lv->type == TOK_VAR) { lv = RIGHT(lv); var = 1; } len = parListLen(lv); @@ -560,7 +563,7 @@ static void genAssign(struct Parser* p, struct Token* t) static void genSlice(struct Parser* p, struct Token* t) { - if(!t) naParseError(p, "empty slice expression", -1); + if(!t || t->type==TOK_EMPTY) naParseError(p, "empty slice expression", -1); if(t->type == TOK_COLON) { if(LEFT(t)) genExpr(p, LEFT(t)); else emit(p, OP_PUSHNIL); if(RIGHT(t)) genExpr(p, RIGHT(t)); else emit(p, OP_PUSHNIL);