mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
Fix for standalone initializations that require BiFs, and streamlining of standalone BiF-tracking
This commit is contained in:
parent
0700427bac
commit
6471a7bf7b
3 changed files with 8 additions and 2 deletions
|
@ -322,7 +322,9 @@ void CPPCompile::GenStandaloneActivation() {
|
||||||
Emit("void standalone_init__CPP()");
|
Emit("void standalone_init__CPP()");
|
||||||
StartBlock();
|
StartBlock();
|
||||||
Emit("init__CPP();");
|
Emit("init__CPP();");
|
||||||
|
Emit("load_BiFs__CPP(); // support initializations that call BiFs ...");
|
||||||
Emit("standalone_activation__CPP();");
|
Emit("standalone_activation__CPP();");
|
||||||
|
Emit("// ... and later use of BiFs from plugins not initially available");
|
||||||
Emit("standalone_finalizations.push_back(load_BiFs__CPP);");
|
Emit("standalone_finalizations.push_back(load_BiFs__CPP);");
|
||||||
EndBlock();
|
EndBlock();
|
||||||
}
|
}
|
||||||
|
|
|
@ -388,7 +388,10 @@ TraversalCode ProfileFunc::PreExpr(const Expr* e) {
|
||||||
auto sf = static_cast<ScriptFunc*>(func_vf);
|
auto sf = static_cast<ScriptFunc*>(func_vf);
|
||||||
script_calls.insert(sf);
|
script_calls.insert(sf);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
// Track the BiF, though not if we know we're not going to
|
||||||
|
// compile the call to it.
|
||||||
|
else if ( obj_matches_opt_files(e) != AnalyzeDecision::SHOULD_NOT )
|
||||||
BiF_globals.insert(func);
|
BiF_globals.insert(func);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -256,7 +256,8 @@ protected:
|
||||||
std::unordered_set<ScriptFunc*> script_calls;
|
std::unordered_set<ScriptFunc*> script_calls;
|
||||||
|
|
||||||
// Same for BiF's, though for them we record the corresponding global
|
// Same for BiF's, though for them we record the corresponding global
|
||||||
// rather than the BuiltinFunc*.
|
// rather than the BuiltinFunc*. In addition, we only track BiFs germane
|
||||||
|
// to code we're compiling.
|
||||||
IDSet BiF_globals;
|
IDSet BiF_globals;
|
||||||
|
|
||||||
// Script functions appearing in "when" clauses.
|
// Script functions appearing in "when" clauses.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue