mirror of
https://github.com/zeek/zeek.git
synced 2025-10-06 16:48:19 +00:00
Add new unit test for opaque serialization.
One Bro begins a computation, another finishes it. (This commit also fixes a problem with the serialization OpaqueVals.)
This commit is contained in:
parent
b9d05f56d0
commit
69d8d29fbd
6 changed files with 99 additions and 20 deletions
17
src/Val.cc
17
src/Val.cc
|
@ -3114,16 +3114,13 @@ void VectorVal::ValDescribe(ODesc* d) const
|
|||
d->Add("]");
|
||||
}
|
||||
|
||||
OpaqueVal::OpaqueVal(OpaqueType* t) : opaque_type(t) { }
|
||||
OpaqueVal::OpaqueVal(OpaqueType* t)
|
||||
: Val(t)
|
||||
{
|
||||
}
|
||||
|
||||
OpaqueVal::~OpaqueVal()
|
||||
{
|
||||
Unref(opaque_type);
|
||||
}
|
||||
|
||||
bool OpaqueVal::IsValid() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
IMPLEMENT_SERIAL(OpaqueVal, SER_OPAQUE_VAL);
|
||||
|
@ -3131,15 +3128,13 @@ IMPLEMENT_SERIAL(OpaqueVal, SER_OPAQUE_VAL);
|
|||
bool OpaqueVal::DoSerialize(SerialInfo* info) const
|
||||
{
|
||||
DO_SERIALIZE(SER_OPAQUE_VAL, Val);
|
||||
assert(opaque_type);
|
||||
return opaque_type->Serialize(info);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OpaqueVal::DoUnserialize(UnserialInfo* info)
|
||||
{
|
||||
DO_UNSERIALIZE(Val);
|
||||
opaque_type = static_cast<OpaqueType*>(BroType::Unserialize(info));
|
||||
return opaque_type != 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue