From 0bbbd84c9d1a62bf394af7a03c435f79e877e955 Mon Sep 17 00:00:00 2001 From: Vern Paxson Date: Fri, 11 Mar 2022 14:21:59 -0800 Subject: [PATCH] use new interface for associating attributes with constructors --- src/ID.cc | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/ID.cc b/src/ID.cc index b58cf2e872..dd9b39a73d 100644 --- a/src/ID.cc +++ b/src/ID.cc @@ -248,13 +248,9 @@ void ID::UpdateValAttrs() if ( ! attrs ) return; - if ( val && val->GetType()->Tag() == TYPE_TABLE ) - val->AsTableVal()->SetAttrs(attrs); + auto tag = GetType()->Tag(); - if ( val && val->GetType()->Tag() == TYPE_FILE ) - val->AsFile()->SetAttrs(attrs.get()); - - if ( GetType()->Tag() == TYPE_FUNC ) + if ( tag == TYPE_FUNC ) { const auto& attr = attrs->Find(ATTR_ERROR_HANDLER); @@ -262,7 +258,7 @@ void ID::UpdateValAttrs() event_registry->SetErrorHandler(Name()); } - if ( GetType()->Tag() == TYPE_RECORD ) + if ( tag == TYPE_RECORD ) { const auto& attr = attrs->Find(ATTR_LOG); @@ -281,6 +277,17 @@ void ID::UpdateValAttrs() } } } + + if ( ! val ) + return; + + auto vtag = val->GetType()->Tag(); + + if ( vtag == TYPE_TABLE ) + val->AsTableVal()->SetAttrs(attrs); + + else if ( vtag == TYPE_FILE ) + val->AsFile()->SetAttrs(attrs.get()); } const AttrPtr& ID::GetAttr(AttrTag t) const