fix for inlining type-based switch statements

This commit is contained in:
Vern Paxson 2021-05-30 17:36:07 -07:00
parent 0de51b31b1
commit 86aafb7c84

View file

@ -322,10 +322,15 @@ IntrusivePtr<Case> Case::Duplicate()
if ( expr_cases ) if ( expr_cases )
{ {
auto new_exprs = expr_cases->Duplicate()->AsListExprPtr(); auto new_exprs = expr_cases->Duplicate()->AsListExprPtr();
return make_intrusive<Case>(new_exprs, type_cases, s->Duplicate()); return make_intrusive<Case>(new_exprs, nullptr, s->Duplicate());
}
if ( type_cases )
{
loop_over_list(*type_cases, i)
zeek::Ref((*type_cases)[i]);
} }
else
return make_intrusive<Case>(nullptr, type_cases, s->Duplicate()); return make_intrusive<Case>(nullptr, type_cases, s->Duplicate());
} }