mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
Use vector<IntrusivePtr<Val>> for Func::Call and Event queuing args
This change may break BIFs that use @ARGS@, @ARG@, or @ARGC@ since their types have changed.
This commit is contained in:
parent
94656c2308
commit
4e1ac4e124
29 changed files with 367 additions and 305 deletions
|
@ -83,7 +83,13 @@ type Broker::Event: record;
|
|||
function Broker::make_event%(...%): Broker::Event
|
||||
%{
|
||||
bro_broker::Manager::ScriptScopeGuard ssg;
|
||||
auto rval = broker_mgr->MakeEvent(@ARGS@, frame);
|
||||
const auto& bif_args = @ARGS@;
|
||||
val_list args(bif_args->size());
|
||||
|
||||
for ( auto i = 0u; i < bif_args->size(); ++i )
|
||||
args.push_back((*bif_args)[i].get());
|
||||
|
||||
auto rval = broker_mgr->MakeEvent(&args, frame);
|
||||
return rval;
|
||||
%}
|
||||
|
||||
|
@ -98,11 +104,11 @@ function Broker::make_event%(...%): Broker::Event
|
|||
## Returns: true if the message is sent.
|
||||
function Broker::publish%(topic: string, ...%): bool
|
||||
%{
|
||||
val_list* bif_args = @ARGS@;
|
||||
val_list args(bif_args->length() - 1);
|
||||
const auto& bif_args = @ARGS@;
|
||||
val_list args(bif_args->size() - 1);
|
||||
|
||||
for ( auto i = 1; i < bif_args->length(); ++i )
|
||||
args.push_back((*bif_args)[i]);
|
||||
for ( auto i = 1u; i < bif_args->size(); ++i )
|
||||
args.push_back((*bif_args)[i].get());
|
||||
|
||||
auto rval = publish_event_args(args, topic->AsString(), frame);
|
||||
return val_mgr->GetBool(rval);
|
||||
|
@ -188,11 +194,11 @@ function Cluster::publish_rr%(pool: Pool, key: string, ...%): bool
|
|||
if ( ! topic->AsString()->Len() )
|
||||
return val_mgr->GetFalse();
|
||||
|
||||
val_list* bif_args = @ARGS@;
|
||||
val_list args(bif_args->length() - 2);
|
||||
const auto& bif_args = @ARGS@;
|
||||
val_list args(bif_args->size() - 2);
|
||||
|
||||
for ( auto i = 2; i < bif_args->length(); ++i )
|
||||
args.push_back((*bif_args)[i]);
|
||||
for ( auto i = 2u; i < bif_args->size(); ++i )
|
||||
args.push_back((*bif_args)[i].get());
|
||||
|
||||
auto rval = publish_event_args(args, topic->AsString(), frame);
|
||||
return val_mgr->GetBool(rval);
|
||||
|
@ -225,11 +231,11 @@ function Cluster::publish_hrw%(pool: Pool, key: any, ...%): bool
|
|||
if ( ! topic->AsString()->Len() )
|
||||
return val_mgr->GetFalse();
|
||||
|
||||
val_list* bif_args = @ARGS@;
|
||||
val_list args(bif_args->length() - 2);
|
||||
const auto& bif_args = @ARGS@;
|
||||
val_list args(bif_args->size() - 2);
|
||||
|
||||
for ( auto i = 2; i < bif_args->length(); ++i )
|
||||
args.push_back((*bif_args)[i]);
|
||||
for ( auto i = 2u; i < bif_args->size(); ++i )
|
||||
args.push_back((*bif_args)[i].get());
|
||||
|
||||
auto rval = publish_event_args(args, topic->AsString(), frame);
|
||||
return val_mgr->GetBool(rval);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue