From b811a8e7a6fa4d2b56b60937fadbe144cdc4ed51 Mon Sep 17 00:00:00 2001 From: Vern Paxson Date: Fri, 22 Jun 2018 13:40:53 -0700 Subject: [PATCH] bug fix (and typo fix) for vector+scalar boolean operations --- src/Expr.cc | 2 +- src/Val.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Expr.cc b/src/Expr.cc index be4b05d6a2..cd431fdca1 100644 --- a/src/Expr.cc +++ b/src/Expr.cc @@ -1798,7 +1798,7 @@ Val* BoolExpr::Eval(Frame* f) const VectorVal* result = 0; - // It's either and EXPR_AND_AND or an EXPR_OR_OR. + // It's either an EXPR_AND_AND or an EXPR_OR_OR. bool is_and = (tag == EXPR_AND_AND); if ( scalar_v->IsZero() == is_and ) diff --git a/src/Val.cc b/src/Val.cc index 4da4a35d48..61cca185df 100644 --- a/src/Val.cc +++ b/src/Val.cc @@ -3226,7 +3226,7 @@ bool VectorVal::AssignRepeat(unsigned int index, unsigned int how_many, ResizeAtLeast(index + how_many); for ( unsigned int i = index; i < index + how_many; ++i ) - if ( ! Assign(i, element ) ) + if ( ! Assign(i, element->Ref() ) ) return false; return true;