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)); 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) void Attributes::AddAttrs(Attributes* a)
{ {
for ( const auto& attr : a->Attrs() ) for ( const auto& attr : a->Attrs() )

View file

@ -87,6 +87,10 @@ public:
Attributes(IntrusivePtr<BroType> t, bool in_record, bool is_global); Attributes(IntrusivePtr<BroType> t, bool in_record, bool is_global);
void AddAttr(IntrusivePtr<Attr> a); 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 void AddAttrs(Attributes* a); // Unref's 'a' when done
Attr* FindAttr(attr_tag t) const; Attr* FindAttr(attr_tag t) const;

View file

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