mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
Fix for EnumVal's returning their underlying value
Change EnumVal()->AsEnum() to zeek_int_t.
This commit is contained in:
parent
802d24cad7
commit
b7f7d32bf7
5 changed files with 14 additions and 10 deletions
|
@ -155,7 +155,7 @@ public:
|
|||
|
||||
UNDERLYING_ACCESSOR_DECL(detail::IntValImplementation, zeek_int_t, AsInt)
|
||||
UNDERLYING_ACCESSOR_DECL(BoolVal, bool, AsBool)
|
||||
UNDERLYING_ACCESSOR_DECL(EnumVal, int, AsEnum)
|
||||
UNDERLYING_ACCESSOR_DECL(EnumVal, zeek_int_t, AsEnum)
|
||||
UNDERLYING_ACCESSOR_DECL(detail::UnsignedValImplementation, zeek_uint_t, AsCount)
|
||||
UNDERLYING_ACCESSOR_DECL(detail::DoubleValImplementation, double, AsDouble)
|
||||
UNDERLYING_ACCESSOR_DECL(TimeVal, double, AsTime)
|
||||
|
@ -1476,7 +1476,7 @@ protected:
|
|||
friend class Val;
|
||||
friend class EnumType;
|
||||
|
||||
friend EnumValPtr make_enum__CPP(TypePtr t, int i);
|
||||
friend EnumValPtr make_enum__CPP(TypePtr t, zeek_int_t i);
|
||||
|
||||
template <class T, class... Ts> friend IntrusivePtr<T> make_intrusive(Ts&&... args);
|
||||
|
||||
|
@ -1700,7 +1700,7 @@ private:
|
|||
|
||||
UNDERLYING_ACCESSOR_DEF(detail::IntValImplementation, zeek_int_t, AsInt)
|
||||
UNDERLYING_ACCESSOR_DEF(BoolVal, bool, AsBool)
|
||||
UNDERLYING_ACCESSOR_DEF(EnumVal, int, AsEnum)
|
||||
UNDERLYING_ACCESSOR_DEF(EnumVal, zeek_int_t, AsEnum)
|
||||
UNDERLYING_ACCESSOR_DEF(detail::UnsignedValImplementation, zeek_uint_t, AsCount)
|
||||
UNDERLYING_ACCESSOR_DEF(detail::DoubleValImplementation, double, AsDouble)
|
||||
UNDERLYING_ACCESSOR_DEF(TimeVal, double, AsTime)
|
||||
|
|
|
@ -729,7 +729,8 @@ bool Manager::PublishLogCreate(EnumVal* stream, EnumVal* writer,
|
|||
|
||||
if ( ! stream_id )
|
||||
{
|
||||
reporter->Error("Failed to remotely log: stream %d doesn't have name", stream->AsEnum());
|
||||
reporter->Error("Failed to remotely log: stream %" PRId64 " doesn't have name",
|
||||
stream->AsEnum());
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -737,7 +738,8 @@ bool Manager::PublishLogCreate(EnumVal* stream, EnumVal* writer,
|
|||
|
||||
if ( ! writer_id )
|
||||
{
|
||||
reporter->Error("Failed to remotely log: writer %d doesn't have name", writer->AsEnum());
|
||||
reporter->Error("Failed to remotely log: writer %" PRId64 " doesn't have name",
|
||||
writer->AsEnum());
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -784,7 +786,8 @@ bool Manager::PublishLogWrite(EnumVal* stream, EnumVal* writer, string path, int
|
|||
|
||||
if ( ! stream_id )
|
||||
{
|
||||
reporter->Error("Failed to remotely log: stream %d doesn't have name", stream->AsEnum());
|
||||
reporter->Error("Failed to remotely log: stream %" PRId64 " doesn't have name",
|
||||
stream->AsEnum());
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -792,7 +795,8 @@ bool Manager::PublishLogWrite(EnumVal* stream, EnumVal* writer, string path, int
|
|||
|
||||
if ( ! writer_id )
|
||||
{
|
||||
reporter->Error("Failed to remotely log: writer %d doesn't have name", writer->AsEnum());
|
||||
reporter->Error("Failed to remotely log: writer %" PRId64 " doesn't have name",
|
||||
writer->AsEnum());
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -1336,7 +1336,7 @@ string CPPCompile::GenEnum(const TypePtr& t, const ValPtr& ev)
|
|||
|
||||
if ( ! et->HasRedefs() )
|
||||
// Can use direct access.
|
||||
return Fmt(v);
|
||||
return std::to_string(v);
|
||||
|
||||
// Need to dynamically map the access.
|
||||
int mapping_slot;
|
||||
|
|
|
@ -257,7 +257,7 @@ EnumTypePtr get_enum_type__CPP(const string& enum_type_name)
|
|||
return make_intrusive<EnumType>(enum_type_name);
|
||||
}
|
||||
|
||||
EnumValPtr make_enum__CPP(TypePtr t, int i)
|
||||
EnumValPtr make_enum__CPP(TypePtr t, zeek_int_t i)
|
||||
{
|
||||
auto et = cast_intrusive<EnumType>(move(t));
|
||||
return make_intrusive<EnumVal>(et, i);
|
||||
|
|
|
@ -84,7 +84,7 @@ extern EnumTypePtr get_enum_type__CPP(const std::string& enum_type_name);
|
|||
|
||||
// Returns an enum value corresponding to the given low-level value 'i'
|
||||
// in the context of the given enum type 't'.
|
||||
extern EnumValPtr make_enum__CPP(TypePtr t, int i);
|
||||
extern EnumValPtr make_enum__CPP(TypePtr t, zeek_int_t i);
|
||||
|
||||
} // namespace zeek::detail
|
||||
} // namespace zeek
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue