GH-1062: fix integer conversion errors related to Tag subtypes

This commit is contained in:
Jon Siwek 2020-07-14 15:55:28 -07:00
parent da105b3bf9
commit 7f2aae1721
3 changed files with 3 additions and 4 deletions

View file

@ -1254,7 +1254,7 @@ protected:
template<class T, class... Ts> template<class T, class... Ts>
friend zeek::IntrusivePtr<T> zeek::make_intrusive(Ts&&... args); friend zeek::IntrusivePtr<T> zeek::make_intrusive(Ts&&... args);
EnumVal(zeek::EnumTypePtr t, int i) : Val(bro_int_t(i), std::move(t)) EnumVal(zeek::EnumTypePtr t, bro_int_t i) : Val(i, std::move(t))
{} {}
void ValDescribe(ODesc* d) const override; void ValDescribe(ODesc* d) const override;

View file

@ -692,8 +692,7 @@ expr:
else if ( id->IsEnumConst() ) else if ( id->IsEnumConst() )
{ {
zeek::EnumType* t = id->GetType()->AsEnumType(); zeek::EnumType* t = id->GetType()->AsEnumType();
int intval = t->Lookup(id->ModuleName(), auto intval = t->Lookup(id->ModuleName(), id->Name());
id->Name());
if ( intval < 0 ) if ( intval < 0 )
reporter->InternalError("enum value not found for %s", id->Name()); reporter->InternalError("enum value not found for %s", id->Name());
$$ = new zeek::detail::ConstExpr(t->GetVal(intval)); $$ = new zeek::detail::ConstExpr(t->GetVal(intval));

View file

@ -10,7 +10,7 @@ using namespace plugin::Demo_Foo;
plugin::Configuration Plugin::Configure() plugin::Configuration Plugin::Configure()
{ {
AddComponent(new ::analyzer::Component("Foo", plugin::Demo_Foo::Foo::Instantiate)); AddComponent(new ::analyzer::Component("Foo", plugin::Demo_Foo::Foo::Instantiate, 1));
plugin::Configuration config; plugin::Configuration config;
config.name = "Demo::Foo"; config.name = "Demo::Foo";