From 0742d2da293db05c08117819386d4a79a2c9ee15 Mon Sep 17 00:00:00 2001 From: Vern Paxson Date: Sun, 30 May 2021 17:49:08 -0700 Subject: [PATCH] minor changes for more robust behavior in the face of errors --- src/Expr.cc | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/Expr.cc b/src/Expr.cc index 7ae4bb67b9..bbd4ef9cc6 100644 --- a/src/Expr.cc +++ b/src/Expr.cc @@ -573,10 +573,16 @@ void NameExpr::ExprDescribe(ODesc* d) const ConstExpr::ConstExpr(ValPtr arg_val) : Expr(EXPR_CONST), val(std::move(arg_val)) { - if ( val->GetType()->Tag() == TYPE_LIST && val->AsListVal()->Length() == 1 ) - val = val->AsListVal()->Idx(0); + if ( val ) + { + if ( val->GetType()->Tag() == TYPE_LIST && + val->AsListVal()->Length() == 1 ) + val = val->AsListVal()->Idx(0); - SetType(val->GetType()); + SetType(val->GetType()); + } + else + SetError(); } void ConstExpr::ExprDescribe(ODesc* d) const @@ -3785,7 +3791,11 @@ void FieldAssignExpr::ExprDescribe(ODesc* d) const d->Add("$"); d->Add(FieldName()); d->Add("="); - op->Describe(d); + + if ( op ) + op->Describe(d); + else + d->Add(""); } ArithCoerceExpr::ArithCoerceExpr(ExprPtr arg_op, TypeTag t)