mirror of
https://github.com/zeek/zeek.git
synced 2025-10-05 08:08:19 +00:00
Change BroFunc ctor to take const-ref IntrusivePtr<ID>
This commit is contained in:
parent
0d19e8fb4c
commit
1f45e690a0
6 changed files with 17 additions and 17 deletions
|
@ -4179,7 +4179,7 @@ LambdaExpr::LambdaExpr(std::unique_ptr<function_ingredients> arg_ing,
|
||||||
// Install a dummy version of the function globally for use only
|
// Install a dummy version of the function globally for use only
|
||||||
// when broker provides a closure.
|
// when broker provides a closure.
|
||||||
auto dummy_func = make_intrusive<BroFunc>(
|
auto dummy_func = make_intrusive<BroFunc>(
|
||||||
ingredients->id.get(),
|
ingredients->id,
|
||||||
ingredients->body,
|
ingredients->body,
|
||||||
ingredients->inits,
|
ingredients->inits,
|
||||||
ingredients->frame_size,
|
ingredients->frame_size,
|
||||||
|
@ -4230,7 +4230,7 @@ Scope* LambdaExpr::GetScope() const
|
||||||
IntrusivePtr<Val> LambdaExpr::Eval(Frame* f) const
|
IntrusivePtr<Val> LambdaExpr::Eval(Frame* f) const
|
||||||
{
|
{
|
||||||
auto lamb = make_intrusive<BroFunc>(
|
auto lamb = make_intrusive<BroFunc>(
|
||||||
ingredients->id.get(),
|
ingredients->id,
|
||||||
ingredients->body,
|
ingredients->body,
|
||||||
ingredients->inits,
|
ingredients->inits,
|
||||||
ingredients->frame_size,
|
ingredients->frame_size,
|
||||||
|
|
|
@ -268,7 +268,7 @@ void Func::CheckPluginResult(bool handled, const IntrusivePtr<Val>& hook_result,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BroFunc::BroFunc(ID* arg_id, IntrusivePtr<Stmt> arg_body,
|
BroFunc::BroFunc(const IntrusivePtr<ID>& arg_id, IntrusivePtr<Stmt> arg_body,
|
||||||
const std::vector<IntrusivePtr<ID>>& aggr_inits,
|
const std::vector<IntrusivePtr<ID>>& aggr_inits,
|
||||||
size_t arg_frame_size, int priority)
|
size_t arg_frame_size, int priority)
|
||||||
: Func(BRO_FUNC)
|
: Func(BRO_FUNC)
|
||||||
|
|
|
@ -129,7 +129,7 @@ protected:
|
||||||
|
|
||||||
class BroFunc final : public Func {
|
class BroFunc final : public Func {
|
||||||
public:
|
public:
|
||||||
BroFunc(ID* id, IntrusivePtr<Stmt> body,
|
BroFunc(const IntrusivePtr<ID>& id, IntrusivePtr<Stmt> body,
|
||||||
const std::vector<IntrusivePtr<ID>>& inits,
|
const std::vector<IntrusivePtr<ID>>& inits,
|
||||||
size_t frame_size, int priority);
|
size_t frame_size, int priority);
|
||||||
|
|
||||||
|
|
16
src/Var.cc
16
src/Var.cc
|
@ -30,7 +30,7 @@ static IntrusivePtr<Val> init_val(Expr* init, const BroType* t,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool add_prototype(ID* id, BroType* t,
|
static bool add_prototype(const IntrusivePtr<ID>& id, BroType* t,
|
||||||
std::vector<IntrusivePtr<Attr>>* attrs,
|
std::vector<IntrusivePtr<Attr>>* attrs,
|
||||||
const IntrusivePtr<Expr>& init)
|
const IntrusivePtr<Expr>& init)
|
||||||
{
|
{
|
||||||
|
@ -39,7 +39,7 @@ static bool add_prototype(ID* id, BroType* t,
|
||||||
|
|
||||||
if ( ! IsFunc(t->Tag()) )
|
if ( ! IsFunc(t->Tag()) )
|
||||||
{
|
{
|
||||||
t->Error("type incompatible with previous definition", id);
|
t->Error("type incompatible with previous definition", id.get());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,7 +108,7 @@ static bool add_prototype(ID* id, BroType* t,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void make_var(ID* id, IntrusivePtr<BroType> t, init_class c,
|
static void make_var(const IntrusivePtr<ID>& id, IntrusivePtr<BroType> t, init_class c,
|
||||||
IntrusivePtr<Expr> init,
|
IntrusivePtr<Expr> init,
|
||||||
std::unique_ptr<std::vector<IntrusivePtr<Attr>>> attr,
|
std::unique_ptr<std::vector<IntrusivePtr<Attr>>> attr,
|
||||||
decl_type dt,
|
decl_type dt,
|
||||||
|
@ -308,8 +308,8 @@ static void make_var(ID* id, IntrusivePtr<BroType> t, init_class c,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void add_global(ID* id, IntrusivePtr<BroType> t, init_class c,
|
void add_global(const IntrusivePtr<ID>& id, IntrusivePtr<BroType> t,
|
||||||
IntrusivePtr<Expr> init,
|
init_class c, IntrusivePtr<Expr> init,
|
||||||
std::unique_ptr<std::vector<IntrusivePtr<Attr>>> attr,
|
std::unique_ptr<std::vector<IntrusivePtr<Attr>>> attr,
|
||||||
decl_type dt)
|
decl_type dt)
|
||||||
{
|
{
|
||||||
|
@ -321,7 +321,7 @@ IntrusivePtr<Stmt> add_local(IntrusivePtr<ID> id, IntrusivePtr<BroType> t,
|
||||||
std::unique_ptr<std::vector<IntrusivePtr<Attr>>> attr,
|
std::unique_ptr<std::vector<IntrusivePtr<Attr>>> attr,
|
||||||
decl_type dt)
|
decl_type dt)
|
||||||
{
|
{
|
||||||
make_var(id.get(), std::move(t), c, init, std::move(attr), dt, false);
|
make_var(id, std::move(t), c, init, std::move(attr), dt, false);
|
||||||
|
|
||||||
if ( init )
|
if ( init )
|
||||||
{
|
{
|
||||||
|
@ -352,7 +352,7 @@ extern IntrusivePtr<Expr> add_and_assign_local(IntrusivePtr<ID> id,
|
||||||
IntrusivePtr<Expr> init,
|
IntrusivePtr<Expr> init,
|
||||||
IntrusivePtr<Val> val)
|
IntrusivePtr<Val> val)
|
||||||
{
|
{
|
||||||
make_var(id.get(), nullptr, INIT_FULL, init, nullptr, VAR_REGULAR, false);
|
make_var(id, nullptr, INIT_FULL, init, nullptr, VAR_REGULAR, false);
|
||||||
auto name_expr = make_intrusive<NameExpr>(std::move(id));
|
auto name_expr = make_intrusive<NameExpr>(std::move(id));
|
||||||
return make_intrusive<AssignExpr>(std::move(name_expr), std::move(init),
|
return make_intrusive<AssignExpr>(std::move(name_expr), std::move(init),
|
||||||
false, std::move(val));
|
false, std::move(val));
|
||||||
|
@ -646,7 +646,7 @@ void end_func(IntrusivePtr<Stmt> body)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
auto f = make_intrusive<BroFunc>(
|
auto f = make_intrusive<BroFunc>(
|
||||||
ingredients->id.get(),
|
ingredients->id,
|
||||||
ingredients->body,
|
ingredients->body,
|
||||||
ingredients->inits,
|
ingredients->inits,
|
||||||
ingredients->frame_size,
|
ingredients->frame_size,
|
||||||
|
|
|
@ -17,7 +17,7 @@ class ListVal;
|
||||||
|
|
||||||
typedef enum { VAR_REGULAR, VAR_CONST, VAR_REDEF, VAR_OPTION, } decl_type;
|
typedef enum { VAR_REGULAR, VAR_CONST, VAR_REDEF, VAR_OPTION, } decl_type;
|
||||||
|
|
||||||
extern void add_global(ID* id,
|
extern void add_global(const IntrusivePtr<ID>& id,
|
||||||
IntrusivePtr<BroType> t,
|
IntrusivePtr<BroType> t,
|
||||||
init_class c,
|
init_class c,
|
||||||
IntrusivePtr<Expr> init,
|
IntrusivePtr<Expr> init,
|
||||||
|
|
|
@ -1082,7 +1082,7 @@ decl:
|
||||||
| TOK_GLOBAL def_global_id opt_type init_class opt_init opt_attr ';'
|
| TOK_GLOBAL def_global_id opt_type init_class opt_init opt_attr ';'
|
||||||
{
|
{
|
||||||
IntrusivePtr id{AdoptRef{}, $2};
|
IntrusivePtr id{AdoptRef{}, $2};
|
||||||
add_global(id.get(), {AdoptRef{}, $3}, $4, {AdoptRef{}, $5},
|
add_global(id, {AdoptRef{}, $3}, $4, {AdoptRef{}, $5},
|
||||||
std::unique_ptr<std::vector<IntrusivePtr<Attr>>>{$6},
|
std::unique_ptr<std::vector<IntrusivePtr<Attr>>>{$6},
|
||||||
VAR_REGULAR);
|
VAR_REGULAR);
|
||||||
zeekygen_mgr->Identifier(std::move(id));
|
zeekygen_mgr->Identifier(std::move(id));
|
||||||
|
@ -1091,7 +1091,7 @@ decl:
|
||||||
| TOK_OPTION def_global_id opt_type init_class opt_init opt_attr ';'
|
| TOK_OPTION def_global_id opt_type init_class opt_init opt_attr ';'
|
||||||
{
|
{
|
||||||
IntrusivePtr id{AdoptRef{}, $2};
|
IntrusivePtr id{AdoptRef{}, $2};
|
||||||
add_global(id.get(), {AdoptRef{}, $3}, $4, {AdoptRef{}, $5},
|
add_global(id, {AdoptRef{}, $3}, $4, {AdoptRef{}, $5},
|
||||||
std::unique_ptr<std::vector<IntrusivePtr<Attr>>>{$6},
|
std::unique_ptr<std::vector<IntrusivePtr<Attr>>>{$6},
|
||||||
VAR_OPTION);
|
VAR_OPTION);
|
||||||
zeekygen_mgr->Identifier(std::move(id));
|
zeekygen_mgr->Identifier(std::move(id));
|
||||||
|
@ -1100,7 +1100,7 @@ decl:
|
||||||
| TOK_CONST def_global_id opt_type init_class opt_init opt_attr ';'
|
| TOK_CONST def_global_id opt_type init_class opt_init opt_attr ';'
|
||||||
{
|
{
|
||||||
IntrusivePtr id{AdoptRef{}, $2};
|
IntrusivePtr id{AdoptRef{}, $2};
|
||||||
add_global(id.get(), {AdoptRef{}, $3}, $4, {AdoptRef{}, $5},
|
add_global(id, {AdoptRef{}, $3}, $4, {AdoptRef{}, $5},
|
||||||
std::unique_ptr<std::vector<IntrusivePtr<Attr>>>{$6},
|
std::unique_ptr<std::vector<IntrusivePtr<Attr>>>{$6},
|
||||||
VAR_CONST);
|
VAR_CONST);
|
||||||
zeekygen_mgr->Identifier(std::move(id));
|
zeekygen_mgr->Identifier(std::move(id));
|
||||||
|
@ -1110,7 +1110,7 @@ decl:
|
||||||
{
|
{
|
||||||
IntrusivePtr id{AdoptRef{}, $2};
|
IntrusivePtr id{AdoptRef{}, $2};
|
||||||
IntrusivePtr<Expr> init{AdoptRef{}, $5};
|
IntrusivePtr<Expr> init{AdoptRef{}, $5};
|
||||||
add_global(id.get(), {AdoptRef{}, $3}, $4, init,
|
add_global(id, {AdoptRef{}, $3}, $4, init,
|
||||||
std::unique_ptr<std::vector<IntrusivePtr<Attr>>>{$6},
|
std::unique_ptr<std::vector<IntrusivePtr<Attr>>>{$6},
|
||||||
VAR_REDEF);
|
VAR_REDEF);
|
||||||
zeekygen_mgr->Redef(id.get(), ::filename, $4, std::move(init));
|
zeekygen_mgr->Redef(id.get(), ::filename, $4, std::move(init));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue