Merge remote-tracking branch 'origin/topic/jsiwek/fix-expire-func-leaks'

* origin/topic/jsiwek/fix-expire-func-leaks:
  Fix memory leaks in expire_func introduced by recent changes
This commit is contained in:
Robin Sommer 2019-07-30 18:12:49 +00:00
commit bae60aee31
3 changed files with 16 additions and 8 deletions

View file

@ -2339,24 +2339,27 @@ double TableVal::CallExpireFunc(Val* idx)
{
if ( ! any_idiom )
{
const val_list* vl0 = idx->AsListVal()->Vals();
for ( const auto& v : *idx->AsListVal()->Vals() )
vl.append(v->Ref());
Unref(idx);
}
else
{
ListVal* idx_list = idx->AsListVal();
// Flatten if only one element
if (idx_list->Length() == 1)
idx = idx_list->Index(0);
if ( idx_list->Length() == 1 )
{
Val* old = idx;
idx = idx_list->Index(0)->Ref();
Unref(old);
}
vl.append(idx->Ref());
vl.append(idx);
}
}
else
{
vl.append(idx->Ref());
}
vl.append(idx);
Val* result = 0;