Update all BIFs to return IntrusivePtr instead of Val*

This commit is contained in:
Jon Siwek 2020-04-08 20:46:40 -07:00
parent d7be84de97
commit 094d6de979
34 changed files with 275 additions and 281 deletions

View file

@ -745,26 +745,22 @@ RecordVal* Manager::MakeEvent(val_list* args, Frame* frame)
return rval;
}
RecordVal* data_val;
IntrusivePtr<RecordVal> data_val;
if ( same_type(got_type, bro_broker::DataVal::ScriptDataType()) )
{
data_val = (*args)[i]->AsRecordVal();
Ref(data_val);
}
data_val = {NewRef{}, (*args)[i]->AsRecordVal()};
else
data_val = make_data_val((*args)[i]);
if ( ! data_val->Lookup(0) )
{
Unref(data_val);
rval->Assign(0, nullptr);
Error("failed to convert param #%d of type %s to broker data",
i, type_name(got_type->Tag()));
return rval;
}
arg_vec->Assign(i - 1, data_val);
arg_vec->Assign(i - 1, std::move(data_val));
}
return rval;