mirror of
https://github.com/zeek/zeek.git
synced 2025-10-12 03:28:19 +00:00
Event: Use IntrusivePtr to manage obj refcount
Fly-by cleanup.
This commit is contained in:
parent
e4e9ec3e80
commit
89402fcc1b
2 changed files with 7 additions and 14 deletions
19
src/Event.cc
19
src/Event.cc
|
@ -46,12 +46,9 @@ Event::Event(const EventHandlerPtr& arg_handler, zeek::Args arg_args, util::deta
|
||||||
args(std::move(arg_args)),
|
args(std::move(arg_args)),
|
||||||
src(arg_src),
|
src(arg_src),
|
||||||
aid(arg_aid),
|
aid(arg_aid),
|
||||||
obj(arg_obj),
|
obj(zeek::NewRef{}, arg_obj),
|
||||||
next_event(nullptr),
|
next_event(nullptr),
|
||||||
meta(detail::MakeEventMetadataVector(arg_ts)) {
|
meta(detail::MakeEventMetadataVector(arg_ts)) {}
|
||||||
if ( obj )
|
|
||||||
Ref(obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
Event::Event(detail::EventMetadataVectorPtr arg_meta, const EventHandlerPtr& arg_handler, zeek::Args arg_args,
|
Event::Event(detail::EventMetadataVectorPtr arg_meta, const EventHandlerPtr& arg_handler, zeek::Args arg_args,
|
||||||
util::detail::SourceID arg_src, analyzer::ID arg_aid, Obj* arg_obj)
|
util::detail::SourceID arg_src, analyzer::ID arg_aid, Obj* arg_obj)
|
||||||
|
@ -59,12 +56,9 @@ Event::Event(detail::EventMetadataVectorPtr arg_meta, const EventHandlerPtr& arg
|
||||||
args(std::move(arg_args)),
|
args(std::move(arg_args)),
|
||||||
src(arg_src),
|
src(arg_src),
|
||||||
aid(arg_aid),
|
aid(arg_aid),
|
||||||
obj(arg_obj),
|
obj(zeek::NewRef{}, arg_obj),
|
||||||
next_event(nullptr),
|
next_event(nullptr),
|
||||||
meta(std::move(arg_meta)) {
|
meta(std::move(arg_meta)) {}
|
||||||
if ( obj )
|
|
||||||
Ref(obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
zeek::VectorValPtr Event::MetadataValues(const EnumValPtr& id) const {
|
zeek::VectorValPtr Event::MetadataValues(const EnumValPtr& id) const {
|
||||||
static const auto& any_vec_t = zeek::id::find_type<zeek::VectorType>("any_vec");
|
static const auto& any_vec_t = zeek::id::find_type<zeek::VectorType>("any_vec");
|
||||||
|
@ -151,9 +145,8 @@ void Event::Dispatch(bool no_remote) {
|
||||||
// Already reported.
|
// Already reported.
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( obj )
|
// Unref obj
|
||||||
// obj->EventDone();
|
obj.reset();
|
||||||
Unref(obj);
|
|
||||||
|
|
||||||
if ( handler->ErrorHandler() )
|
if ( handler->ErrorHandler() )
|
||||||
reporter->EndErrorHandler();
|
reporter->EndErrorHandler();
|
||||||
|
|
|
@ -95,7 +95,7 @@ private:
|
||||||
zeek::Args args;
|
zeek::Args args;
|
||||||
util::detail::SourceID src;
|
util::detail::SourceID src;
|
||||||
analyzer::ID aid;
|
analyzer::ID aid;
|
||||||
Obj* obj;
|
zeek::IntrusivePtr<Obj> obj;
|
||||||
Event* next_event;
|
Event* next_event;
|
||||||
detail::EventMetadataVectorPtr meta;
|
detail::EventMetadataVectorPtr meta;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue