"%s", VIR_THREADPOOL_JOB_QUEUE_DEPTH) < 0)
return -1;
- *nparams = virTypedParamListStealParams(paramlist, params);
+ if (virTypedParamListSteal(paramlist, params, nparams) < 0)
+ return -1;
return 0;
}
"%s", VIR_CLIENT_INFO_SELINUX_CONTEXT) < 0)
return -1;
- *nparams = virTypedParamListStealParams(paramlist, params);
+ if (virTypedParamListSteal(paramlist, params, nparams) < 0)
+ return -1;
+
return 0;
}
"%s", VIR_SERVER_CLIENTS_UNAUTH_CURRENT) < 0)
return -1;
- *nparams = virTypedParamListStealParams(paramlist, params);
+ if (virTypedParamListSteal(paramlist, params, nparams) < 0)
+ return -1;
return 0;
}
virTypedParamListFree;
virTypedParamListFromParams;
virTypedParamListNew;
-virTypedParamListStealParams;
+virTypedParamListSteal;
virTypedParamsCheck;
virTypedParamsCopy;
virTypedParamsDeserialize;
virTypedParamListAddString(par, jobData->errmsg, VIR_DOMAIN_JOB_ERRMSG) < 0)
return -1;
- *nparams = virTypedParamListStealParams(par, params);
+ if (virTypedParamListSteal(par, params, nparams) < 0)
+ return -1;
+
*type = virDomainJobStatusToType(jobData->status);
return 0;
}
dom->def->uuid, dom->def->id)))
return -1;
- tmp->nparams = virTypedParamListStealParams(params, &tmp->params);
+ if (virTypedParamListSteal(params, &tmp->params, &tmp->nparams) < 0)
+ return -1;
+
*record = g_steal_pointer(&tmp);
return 0;
}
dom->def->uuid, dom->def->id)))
return -1;
- tmp->nparams = virTypedParamListStealParams(params, &tmp->params);
+ if (virTypedParamListSteal(params, &tmp->params, &tmp->nparams) < 0)
+ return -1;
+
*record = g_steal_pointer(&tmp);
return 0;
}
}
-size_t
-virTypedParamListStealParams(virTypedParamList *list,
- virTypedParameterPtr *params)
+int
+virTypedParamListSteal(virTypedParamList *list,
+ virTypedParameterPtr *par,
+ int *npar)
{
- size_t ret = list->npar;
+ size_t nparams;
+
+ if (virTypedParamListFetch(list, par, &nparams) < 0)
+ return -1;
- *params = g_steal_pointer(&list->par);
+ /* most callers expect 'int', so help them out */
+ *npar = nparams;
+
+ list->par = NULL;
list->npar = 0;
list->par_alloc = 0;
- return ret;
+ return 0;
}
+
virTypedParamList *
virTypedParamListFromParams(virTypedParameterPtr *params,
size_t nparams)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(virTypedParamList, virTypedParamListFree);
virTypedParamList *virTypedParamListNew(void);
-size_t
-virTypedParamListStealParams(virTypedParamList *list,
- virTypedParameterPtr *params);
+int
+virTypedParamListSteal(virTypedParamList *list,
+ virTypedParameterPtr *par,
+ int *npar);
int
virTypedParamListFetch(virTypedParamList *list,