Deprecate Attributes::AddAttrs(Attributes*)

Replaced with version taking an IntrusivePtr parameter
This commit is contained in:
Jon Siwek 2020-05-26 15:12:20 -07:00
parent ccd1cbbc54
commit 6daa33364b
3 changed files with 11 additions and 1 deletions

View file

@ -201,6 +201,12 @@ void Attributes::AddAttr(IntrusivePtr<Attr> attr)
attrs.emplace_back(make_intrusive<Attr>(ATTR_OPTIONAL));
}
void Attributes::AddAttrs(const IntrusivePtr<Attributes>& a)
{
for ( const auto& attr : a->Attrs() )
AddAttr(attr);
}
void Attributes::AddAttrs(Attributes* a)
{
for ( const auto& attr : a->Attrs() )

View file

@ -87,6 +87,10 @@ public:
Attributes(IntrusivePtr<BroType> t, bool in_record, bool is_global);
void AddAttr(IntrusivePtr<Attr> a);
void AddAttrs(const IntrusivePtr<Attributes>& a);
[[deprecated("Remove in v4.1. Pass IntrusivePtr instead.")]]
void AddAttrs(Attributes* a); // Unref's 'a' when done
Attr* FindAttr(attr_tag t) const;

View file

@ -308,7 +308,7 @@ std::string ID::GetDeprecationWarning() const
void ID::AddAttrs(IntrusivePtr<Attributes> a)
{
if ( attrs )
attrs->AddAttrs(a.release());
attrs->AddAttrs(a);
else
attrs = std::move(a);