Lines Matching refs:param

24 #include "param.h"
30 param_init_type(struct param *param, struct arg_type_info *type, int own)
32 param->flavor = PARAM_FLAVOR_TYPE;
33 param->u.type.type = type;
34 param->u.type.own_type = own;
38 param_init_stop(struct param *param)
40 param->flavor = PARAM_FLAVOR_STOP;
44 param_init_pack(struct param *param, enum param_pack_flavor ppflavor,
56 param->flavor = PARAM_FLAVOR_PACK;
57 param->u.pack.args = args;
58 param->u.pack.nargs = nargs;
59 param->u.pack.own_args = own_args;
60 param->u.pack.ppflavor = ppflavor;
61 param->u.pack.init = init;
62 param->u.pack.next = next;
63 param->u.pack.stop = stop;
64 param->u.pack.done = done;
68 param_pack_init(struct param *param, struct value_dict *fargs)
70 struct value cb_args[param->u.pack.nargs];
80 for (i = 0; i < param->u.pack.nargs; ++i) {
81 if (expr_eval(&param->u.pack.args[i], &void_val,
86 ret = param->u.pack.init(cb_args, param->u.pack.nargs, fargs);
95 param_pack_next(struct param *param, struct param_enum *context,
98 return param->u.pack.next(context, infop, insert_stop);
102 param_pack_stop(struct param *param,
105 return param->u.pack.stop(context, value);
109 param_pack_done(struct param *param, struct param_enum *context)
111 return param->u.pack.done(context);
115 param_destroy(struct param *param)
117 if (param == NULL)
120 switch (param->flavor) {
122 if (param->u.type.own_type) {
123 type_destroy(param->u.type.type);
124 free(param->u.type.type);
129 if (param->u.pack.own_args) {
131 for (i = 0; i < param->u.pack.nargs; ++i)
132 expr_destroy(&param->u.pack.args[i]);
133 free(param->u.pack.args);
141 assert(!"Unknown value of param flavor!");