mirror of
https://github.com/zeek/zeek.git
synced 2025-10-06 08:38:20 +00:00
Fix a reference counting bug in ListVal ctor.
This commit is contained in:
parent
f7c2c00045
commit
bfaa082aee
3 changed files with 10 additions and 4 deletions
|
@ -1691,7 +1691,7 @@ void VectorType::Describe(ODesc* d) const
|
||||||
yield_type->Describe(d);
|
yield_type->Describe(d);
|
||||||
}
|
}
|
||||||
|
|
||||||
BroType* base_type(TypeTag tag)
|
BroType* base_type_no_ref(TypeTag tag)
|
||||||
{
|
{
|
||||||
static BroType* base_types[NUM_TYPES];
|
static BroType* base_types[NUM_TYPES];
|
||||||
|
|
||||||
|
@ -1707,7 +1707,7 @@ BroType* base_type(TypeTag tag)
|
||||||
base_types[t]->SetLocationInfo(&l);
|
base_types[t]->SetLocationInfo(&l);
|
||||||
}
|
}
|
||||||
|
|
||||||
return base_types[t]->Ref();
|
return base_types[t];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -613,7 +613,13 @@ extern OpaqueType* bloomfilter_type;
|
||||||
extern OpaqueType* x509_opaque_type;
|
extern OpaqueType* x509_opaque_type;
|
||||||
|
|
||||||
// Returns the BRO basic (non-parameterized) type with the given type.
|
// Returns the BRO basic (non-parameterized) type with the given type.
|
||||||
extern BroType* base_type(TypeTag tag);
|
// The reference count of the type is not increased.
|
||||||
|
BroType* base_type_no_ref(TypeTag tag);
|
||||||
|
|
||||||
|
// Returns the BRO basic (non-parameterized) type with the given type.
|
||||||
|
// The caller assumes responsibility for a reference to the type.
|
||||||
|
inline BroType* base_type(TypeTag tag)
|
||||||
|
{ return base_type_no_ref(tag)->Ref(); }
|
||||||
|
|
||||||
// Returns the BRO basic error type.
|
// Returns the BRO basic error type.
|
||||||
inline BroType* error_type() { return base_type(TYPE_ERROR); }
|
inline BroType* error_type() { return base_type(TYPE_ERROR); }
|
||||||
|
|
|
@ -1152,7 +1152,7 @@ bool PatternVal::DoUnserialize(UnserialInfo* info)
|
||||||
}
|
}
|
||||||
|
|
||||||
ListVal::ListVal(TypeTag t)
|
ListVal::ListVal(TypeTag t)
|
||||||
: Val(new TypeList(t == TYPE_ANY ? 0 : base_type(t)))
|
: Val(new TypeList(t == TYPE_ANY ? 0 : base_type_no_ref(t)))
|
||||||
{
|
{
|
||||||
tag = t;
|
tag = t;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue