mirror of
https://github.com/zeek/zeek.git
synced 2025-10-12 19:48:20 +00:00
Merge remote-tracking branch 'origin/topic/johanna/config'
Closes BIT-1900. * origin/topic/johanna/config: Use port_mgr->Get() in the input framework config changes. Allow the empty field separator to be empty; use in config framework. Fix small bug in config reader. Fix segmentation fault when parsing sets containing invalid elements. Add config framework.
This commit is contained in:
commit
fff4db5145
85 changed files with 2156 additions and 114 deletions
25
src/ID.cc
25
src/ID.cc
|
@ -21,12 +21,13 @@ ID::ID(const char* arg_name, IDScope arg_scope, bool arg_is_export)
|
|||
name = copy_string(arg_name);
|
||||
scope = arg_scope;
|
||||
is_export = arg_is_export;
|
||||
is_option = false;
|
||||
type = 0;
|
||||
val = 0;
|
||||
attrs = 0;
|
||||
is_const = 0;
|
||||
is_enum_const = 0;
|
||||
is_type = 0;
|
||||
is_const = false;
|
||||
is_enum_const = false;
|
||||
is_type = false;
|
||||
offset = 0;
|
||||
|
||||
infer_return_type = false;
|
||||
|
@ -41,6 +42,9 @@ ID::~ID()
|
|||
Unref(type);
|
||||
Unref(attrs);
|
||||
|
||||
for ( auto element : option_handlers )
|
||||
Unref(element.second);
|
||||
|
||||
if ( ! weak_ref )
|
||||
Unref(val);
|
||||
}
|
||||
|
@ -772,3 +776,18 @@ void ID::UpdateValID()
|
|||
}
|
||||
#endif
|
||||
|
||||
void ID::AddOptionHandler(Func* callback, int priority)
|
||||
{
|
||||
option_handlers.insert({priority, callback});
|
||||
}
|
||||
|
||||
vector<Func*> ID::GetOptionHandlers() const
|
||||
{
|
||||
// multimap is sorted
|
||||
// It might be worth caching this if we expect it to be called
|
||||
// a lot...
|
||||
vector<Func*> v;
|
||||
for ( auto& element : option_handlers )
|
||||
v.push_back(element.second);
|
||||
return std::move(v);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue