fix for standalone-C++ enum additions enable those in later script loads

This commit is contained in:
Vern Paxson 2025-09-25 14:17:09 -07:00
parent f221150efa
commit d80e3ca261

View file

@ -1649,9 +1649,12 @@ void EnumType::AddNameInternal(const string& full_name, zeek_int_t val) {
names[full_name] = val; names[full_name] = val;
rev_names[val] = full_name; rev_names[val] = full_name;
if ( ! vals.contains(val) ) if ( ! vals.contains(val) ) {
if ( counter >= 0 && val == vals.size() )
++counter;
vals[val] = make_intrusive<EnumVal>(IntrusivePtr{NewRef{}, this}, val); vals[val] = make_intrusive<EnumVal>(IntrusivePtr{NewRef{}, this}, val);
} }
}
zeek_int_t EnumType::Lookup(const string& module_name, const char* name) const { zeek_int_t EnumType::Lookup(const string& module_name, const char* name) const {
return Lookup(detail::make_full_var_name(module_name.c_str(), name)); return Lookup(detail::make_full_var_name(module_name.c_str(), name));