mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
Cleanups related to PDict -> std::map replacements
This commit is contained in:
parent
e6558d1f19
commit
87f85ecca1
18 changed files with 41 additions and 36 deletions
16
src/DFA.cc
16
src/DFA.cc
|
@ -303,7 +303,7 @@ DFA_State_Cache::~DFA_State_Cache()
|
||||||
states.clear();
|
states.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
DFA_State* DFA_State_Cache::Lookup(const NFA_state_list& nfas, DigestStr& digest)
|
DFA_State* DFA_State_Cache::Lookup(const NFA_state_list& nfas, DigestStr* digest)
|
||||||
{
|
{
|
||||||
// We assume that state ID's don't exceed 10 digits, plus
|
// We assume that state ID's don't exceed 10 digits, plus
|
||||||
// we allow one more character for the delimiter.
|
// we allow one more character for the delimiter.
|
||||||
|
@ -332,9 +332,9 @@ DFA_State* DFA_State_Cache::Lookup(const NFA_state_list& nfas, DigestStr& digest
|
||||||
// HashKey because the data is copied into the key.
|
// HashKey because the data is copied into the key.
|
||||||
u_char digest_bytes[16];
|
u_char digest_bytes[16];
|
||||||
internal_md5(id_tag, p - id_tag, digest_bytes);
|
internal_md5(id_tag, p - id_tag, digest_bytes);
|
||||||
digest = DigestStr(digest_bytes, 16);
|
*digest = DigestStr(digest_bytes, 16);
|
||||||
|
|
||||||
auto entry = states.find(digest);
|
auto entry = states.find(*digest);
|
||||||
if ( entry == states.end() )
|
if ( entry == states.end() )
|
||||||
{
|
{
|
||||||
++misses;
|
++misses;
|
||||||
|
@ -342,14 +342,14 @@ DFA_State* DFA_State_Cache::Lookup(const NFA_state_list& nfas, DigestStr& digest
|
||||||
}
|
}
|
||||||
++hits;
|
++hits;
|
||||||
|
|
||||||
digest.clear();
|
digest->clear();
|
||||||
|
|
||||||
return entry->second;
|
return entry->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
DFA_State* DFA_State_Cache::Insert(DFA_State* state, const DigestStr& digest)
|
DFA_State* DFA_State_Cache::Insert(DFA_State* state, DigestStr digest)
|
||||||
{
|
{
|
||||||
states.emplace(digest, state);
|
states.emplace(std::move(digest), state);
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -432,7 +432,7 @@ bool DFA_Machine::StateSetToDFA_State(NFA_state_list* state_set,
|
||||||
DFA_State*& d, const EquivClass* ec)
|
DFA_State*& d, const EquivClass* ec)
|
||||||
{
|
{
|
||||||
DigestStr digest;
|
DigestStr digest;
|
||||||
d = dfa_state_cache->Lookup(*state_set, digest);
|
d = dfa_state_cache->Lookup(*state_set, &digest);
|
||||||
|
|
||||||
if ( d )
|
if ( d )
|
||||||
return false;
|
return false;
|
||||||
|
@ -454,7 +454,7 @@ bool DFA_Machine::StateSetToDFA_State(NFA_state_list* state_set,
|
||||||
}
|
}
|
||||||
|
|
||||||
DFA_State* ds = new DFA_State(state_count++, ec, state_set, accept);
|
DFA_State* ds = new DFA_State(state_count++, ec, state_set, accept);
|
||||||
d = dfa_state_cache->Insert(ds, digest);
|
d = dfa_state_cache->Insert(ds, std::move(digest));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,10 +75,10 @@ public:
|
||||||
~DFA_State_Cache();
|
~DFA_State_Cache();
|
||||||
|
|
||||||
// If the caller stores the handle, it has to call Ref() on it.
|
// If the caller stores the handle, it has to call Ref() on it.
|
||||||
DFA_State* Lookup(const NFA_state_list& nfa_states, DigestStr& digest);
|
DFA_State* Lookup(const NFA_state_list& nfa_states, DigestStr* digest);
|
||||||
|
|
||||||
// Takes ownership of both; hash is the one returned by Lookup().
|
// Takes ownership of state; digest is the one returned by Lookup().
|
||||||
DFA_State* Insert(DFA_State* state, const DigestStr& digest);
|
DFA_State* Insert(DFA_State* state, DigestStr digest);
|
||||||
|
|
||||||
int NumEntries() const { return states.size(); }
|
int NumEntries() const { return states.size(); }
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ void lookup_global_symbols_regex(const string& orig_regex, vector<ID*>& matches,
|
||||||
}
|
}
|
||||||
|
|
||||||
Scope* global = global_scope();
|
Scope* global = global_scope();
|
||||||
auto syms = global->Vars();
|
const auto& syms = global->Vars();
|
||||||
|
|
||||||
ID* nextid;
|
ID* nextid;
|
||||||
for ( const auto& sym : syms )
|
for ( const auto& sym : syms )
|
||||||
|
|
|
@ -92,7 +92,7 @@ void EventRegistry::SetErrorHandler(const string& name)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
reporter->InternalWarning(
|
reporter->InternalWarning("unknown event handler '%s' in SetErrorHandler()",
|
||||||
"unknown event handler '%s' in SetErrorHandler()", name.c_str());
|
name.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4347,7 +4347,7 @@ LambdaExpr::LambdaExpr(std::unique_ptr<function_ingredients> arg_ing,
|
||||||
|
|
||||||
my_name = "lambda_<" + std::to_string(h[0]) + ">";
|
my_name = "lambda_<" + std::to_string(h[0]) + ">";
|
||||||
auto fullname = make_full_var_name(current_module.data(), my_name.data());
|
auto fullname = make_full_var_name(current_module.data(), my_name.data());
|
||||||
auto id = global_scope()->Lookup(fullname.data());
|
auto id = global_scope()->Lookup(fullname);
|
||||||
|
|
||||||
if ( id )
|
if ( id )
|
||||||
// Just try again to make a unique lambda name. If two peer
|
// Just try again to make a unique lambda name. If two peer
|
||||||
|
@ -4413,7 +4413,7 @@ EventExpr::EventExpr(const char* arg_name, ListExpr* arg_args)
|
||||||
name = arg_name;
|
name = arg_name;
|
||||||
args = arg_args;
|
args = arg_args;
|
||||||
|
|
||||||
EventHandler* h = event_registry->Lookup(name.c_str());
|
EventHandler* h = event_registry->Lookup(name);
|
||||||
if ( ! h )
|
if ( ! h )
|
||||||
{
|
{
|
||||||
h = new EventHandler(name.c_str());
|
h = new EventHandler(name.c_str());
|
||||||
|
|
|
@ -122,7 +122,7 @@ BroType* OpaqueVal::UnserializeType(const broker::data& data)
|
||||||
if ( ! name )
|
if ( ! name )
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
ID* id = global_scope()->Lookup(name->c_str());
|
ID* id = global_scope()->Lookup(*name);
|
||||||
if ( ! id )
|
if ( ! id )
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
|
|
|
@ -198,7 +198,7 @@ string Specific_RE_Matcher::LookupDef(const string& def)
|
||||||
{
|
{
|
||||||
const auto& iter = defs.find(def);
|
const auto& iter = defs.find(def);
|
||||||
if ( iter != defs.end() )
|
if ( iter != defs.end() )
|
||||||
return iter->first;
|
return iter->second;
|
||||||
|
|
||||||
return string();
|
return string();
|
||||||
}
|
}
|
||||||
|
@ -418,7 +418,10 @@ unsigned int Specific_RE_Matcher::MemoryAllocation() const
|
||||||
|
|
||||||
size += pad_size(sizeof(CCL*) * ccl_dict.size());
|
size += pad_size(sizeof(CCL*) * ccl_dict.size());
|
||||||
for ( const auto& entry : ccl_dict )
|
for ( const auto& entry : ccl_dict )
|
||||||
|
{
|
||||||
size += padded_sizeof(std::string) + pad_size(sizeof(std::string::value_type) * entry.first.size());
|
size += padded_sizeof(std::string) + pad_size(sizeof(std::string::value_type) * entry.first.size());
|
||||||
|
size += entry.second->MemoryAllocation();
|
||||||
|
}
|
||||||
|
|
||||||
for ( const auto& entry : defs )
|
for ( const auto& entry : defs )
|
||||||
{
|
{
|
||||||
|
|
|
@ -128,7 +128,7 @@ ID* lookup_ID(const char* name, const char* curr_module, bool no_global,
|
||||||
|
|
||||||
for ( int i = scopes.length() - 1; i >= 0; --i )
|
for ( int i = scopes.length() - 1; i >= 0; --i )
|
||||||
{
|
{
|
||||||
ID* id = scopes[i]->Lookup(fullname.c_str());
|
ID* id = scopes[i]->Lookup(fullname);
|
||||||
if ( id )
|
if ( id )
|
||||||
{
|
{
|
||||||
if ( need_export && ! id->IsExport() && ! in_debug )
|
if ( need_export && ! id->IsExport() && ! in_debug )
|
||||||
|
@ -144,7 +144,7 @@ ID* lookup_ID(const char* name, const char* curr_module, bool no_global,
|
||||||
! same_module_only) )
|
! same_module_only) )
|
||||||
{
|
{
|
||||||
string globalname = make_full_var_name(GLOBAL_MODULE_NAME, name);
|
string globalname = make_full_var_name(GLOBAL_MODULE_NAME, name);
|
||||||
ID* id = global_scope()->Lookup(globalname.c_str());
|
ID* id = global_scope()->Lookup(globalname);
|
||||||
if ( id )
|
if ( id )
|
||||||
{
|
{
|
||||||
Ref(id);
|
Ref(id);
|
||||||
|
|
|
@ -239,7 +239,7 @@ void ProfileLogger::Log()
|
||||||
|
|
||||||
// Script-level state.
|
// Script-level state.
|
||||||
unsigned int size, mem = 0;
|
unsigned int size, mem = 0;
|
||||||
auto globals = global_scope()->Vars();
|
const auto& globals = global_scope()->Vars();
|
||||||
|
|
||||||
if ( expensive )
|
if ( expensive )
|
||||||
{
|
{
|
||||||
|
|
|
@ -1799,7 +1799,7 @@ BroType* merge_types(const BroType* t1, const BroType* t2)
|
||||||
// Doing a lookup here as a roundabout way of ref-ing t1, without
|
// Doing a lookup here as a roundabout way of ref-ing t1, without
|
||||||
// changing the function params which has t1 as const and also
|
// changing the function params which has t1 as const and also
|
||||||
// (potentially) avoiding a pitfall mentioned earlier about clones.
|
// (potentially) avoiding a pitfall mentioned earlier about clones.
|
||||||
auto id = global_scope()->Lookup(t1->GetName().data());
|
auto id = global_scope()->Lookup(t1->GetName());
|
||||||
|
|
||||||
if ( id && id->AsType() && id->AsType()->Tag() == TYPE_ENUM )
|
if ( id && id->AsType() && id->AsType()->Tag() == TYPE_ENUM )
|
||||||
// It should make most sense to return the real type here rather
|
// It should make most sense to return the real type here rather
|
||||||
|
|
|
@ -264,7 +264,7 @@ public:
|
||||||
virtual unsigned MemoryAllocation() const;
|
virtual unsigned MemoryAllocation() const;
|
||||||
|
|
||||||
void SetName(const string& arg_name) { name = arg_name; }
|
void SetName(const string& arg_name) { name = arg_name; }
|
||||||
string GetName() const { return name; }
|
const string& GetName() const { return name; }
|
||||||
|
|
||||||
typedef std::map<std::string, std::set<BroType*> > TypeAliasMap;
|
typedef std::map<std::string, std::set<BroType*> > TypeAliasMap;
|
||||||
|
|
||||||
|
|
|
@ -351,7 +351,7 @@ struct val_converter {
|
||||||
if ( ! name )
|
if ( ! name )
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
auto id = global_scope()->Lookup(name->c_str());
|
auto id = global_scope()->Lookup(*name);
|
||||||
if ( ! id )
|
if ( ! id )
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
|
@ -703,7 +703,7 @@ struct type_checker {
|
||||||
if ( ! name )
|
if ( ! name )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
auto id = global_scope()->Lookup(name->c_str());
|
auto id = global_scope()->Lookup(*name);
|
||||||
if ( ! id )
|
if ( ! id )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
|
@ -407,7 +407,7 @@ bool Manager::PublishIdentifier(std::string topic, std::string id)
|
||||||
if ( peer_count == 0 )
|
if ( peer_count == 0 )
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
ID* i = global_scope()->Lookup(id.c_str());
|
ID* i = global_scope()->Lookup(id);
|
||||||
|
|
||||||
if ( ! i )
|
if ( ! i )
|
||||||
return false;
|
return false;
|
||||||
|
@ -998,7 +998,7 @@ void Manager::ProcessEvent(const broker::topic& topic, broker::zeek::Event ev)
|
||||||
DBG_LOG(DBG_BROKER, "Process event: %s %s",
|
DBG_LOG(DBG_BROKER, "Process event: %s %s",
|
||||||
name.data(), RenderMessage(args).data());
|
name.data(), RenderMessage(args).data());
|
||||||
++statistics.num_events_incoming;
|
++statistics.num_events_incoming;
|
||||||
auto handler = event_registry->Lookup(name.data());
|
auto handler = event_registry->Lookup(name);
|
||||||
|
|
||||||
if ( ! handler )
|
if ( ! handler )
|
||||||
return;
|
return;
|
||||||
|
@ -1240,7 +1240,7 @@ bool Manager::ProcessIdentifierUpdate(broker::zeek::IdentifierUpdate iu)
|
||||||
++statistics.num_ids_incoming;
|
++statistics.num_ids_incoming;
|
||||||
auto id_name = std::move(iu.id_name());
|
auto id_name = std::move(iu.id_name());
|
||||||
auto id_value = std::move(iu.id_value());
|
auto id_value = std::move(iu.id_value());
|
||||||
auto id = global_scope()->Lookup(id_name.c_str());
|
auto id = global_scope()->Lookup(id_name);
|
||||||
|
|
||||||
if ( ! id )
|
if ( ! id )
|
||||||
{
|
{
|
||||||
|
|
|
@ -33,7 +33,7 @@ Manager::~Manager()
|
||||||
for ( MIMEMap::iterator i = mime_types.begin(); i != mime_types.end(); i++ )
|
for ( MIMEMap::iterator i = mime_types.begin(); i != mime_types.end(); i++ )
|
||||||
delete i->second;
|
delete i->second;
|
||||||
|
|
||||||
// Have to assume that too much of Bro has been shutdown by this point
|
// Have to assume that too much of Zeek has been shutdown by this point
|
||||||
// to do anything more than reclaim memory.
|
// to do anything more than reclaim memory.
|
||||||
for ( const auto& entry : id_map )
|
for ( const auto& entry : id_map )
|
||||||
delete entry.second;
|
delete entry.second;
|
||||||
|
@ -58,6 +58,8 @@ void Manager::InitMagic()
|
||||||
void Manager::Terminate()
|
void Manager::Terminate()
|
||||||
{
|
{
|
||||||
vector<string> keys;
|
vector<string> keys;
|
||||||
|
keys.reserve(id_map.size());
|
||||||
|
|
||||||
for ( const auto& entry : id_map )
|
for ( const auto& entry : id_map )
|
||||||
keys.push_back(entry.first);
|
keys.push_back(entry.first);
|
||||||
|
|
||||||
|
@ -406,8 +408,8 @@ bool Manager::RemoveFile(const string& file_id)
|
||||||
|
|
||||||
f->EndOfFile();
|
f->EndOfFile();
|
||||||
delete f;
|
delete f;
|
||||||
id_map.erase(file_id);
|
|
||||||
|
|
||||||
|
id_map.erase(file_id);
|
||||||
ignored.erase(file_id);
|
ignored.erase(file_id);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1852,7 +1852,7 @@ bool Manager::SendEvent(ReaderFrontend* reader, const string& name, const int nu
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
EventHandler* handler = event_registry->Lookup(name.c_str());
|
EventHandler* handler = event_registry->Lookup(name);
|
||||||
if ( handler == 0 )
|
if ( handler == 0 )
|
||||||
{
|
{
|
||||||
Warning(i, "Event %s not found", name.c_str());
|
Warning(i, "Event %s not found", name.c_str());
|
||||||
|
|
|
@ -28,7 +28,7 @@ Config::Config(ReaderFrontend *frontend) : ReaderBackend(frontend)
|
||||||
fail_on_file_problem = false;
|
fail_on_file_problem = false;
|
||||||
|
|
||||||
// find all option names and their types.
|
// find all option names and their types.
|
||||||
auto globals = global_scope()->Vars();
|
const auto& globals = global_scope()->Vars();
|
||||||
|
|
||||||
for ( const auto& entry : globals )
|
for ( const auto& entry : globals )
|
||||||
{
|
{
|
||||||
|
|
|
@ -1895,7 +1895,7 @@ function reading_traces%(%): bool
|
||||||
function global_sizes%(%): var_sizes
|
function global_sizes%(%): var_sizes
|
||||||
%{
|
%{
|
||||||
TableVal* sizes = new TableVal(var_sizes);
|
TableVal* sizes = new TableVal(var_sizes);
|
||||||
auto globals = global_scope()->Vars();
|
const auto& globals = global_scope()->Vars();
|
||||||
|
|
||||||
for ( const auto& global : globals )
|
for ( const auto& global : globals )
|
||||||
{
|
{
|
||||||
|
@ -1923,7 +1923,7 @@ function global_sizes%(%): var_sizes
|
||||||
function global_ids%(%): id_table
|
function global_ids%(%): id_table
|
||||||
%{
|
%{
|
||||||
TableVal* ids = new TableVal(id_table);
|
TableVal* ids = new TableVal(id_table);
|
||||||
auto globals = global_scope()->Vars();
|
const auto& globals = global_scope()->Vars();
|
||||||
|
|
||||||
for ( const auto& global : globals )
|
for ( const auto& global : globals )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue