From 9f62e53461464e23ccc4f8cbb0b42136f0bfb97f Mon Sep 17 00:00:00 2001 From: Vern Paxson Date: Tue, 30 Sep 2025 10:44:13 -0700 Subject: [PATCH 1/2] fix to enable -O gen-standalone-C++ code to extend enum types --- src/Type.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Type.cc b/src/Type.cc index 397a27ebe8..fd1069170d 100644 --- a/src/Type.cc +++ b/src/Type.cc @@ -1700,8 +1700,11 @@ void EnumType::AddNameInternal(const string& full_name, zeek_int_t val) { names[full_name] = val; rev_names[val] = full_name; - if ( ! vals.contains(val) ) + if ( ! vals.contains(val) ) { + if ( counter >= 0 && val == vals.size() ) + ++counter; vals[val] = make_intrusive(IntrusivePtr{NewRef{}, this}, val); + } } zeek_int_t EnumType::Lookup(const string& module_name, const char* name) const { From 72f78fac7d712a9e6bc1fe1742578e7cce246b9f Mon Sep 17 00:00:00 2001 From: Vern Paxson Date: Tue, 30 Sep 2025 12:11:45 -0700 Subject: [PATCH 2/2] fixup! fix to enable -O gen-standalone-C++ code to extend enum types --- src/Type.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Type.cc b/src/Type.cc index fd1069170d..d461f3c1e5 100644 --- a/src/Type.cc +++ b/src/Type.cc @@ -1701,7 +1701,7 @@ void EnumType::AddNameInternal(const string& full_name, zeek_int_t val) { rev_names[val] = full_name; if ( ! vals.contains(val) ) { - if ( counter >= 0 && val == vals.size() ) + if ( counter >= 0 && val == static_cast(vals.size()) ) ++counter; vals[val] = make_intrusive(IntrusivePtr{NewRef{}, this}, val); }