var param = params_it.get ();
ellipsis = param.params_array || param.ellipsis;
if (!ellipsis) {
- if (param.async_only &&
- /* only skip if we are in a sync function (or property handler) */
- (current_method == null || !current_method.coroutine) &&
- /* and not manually starting async */
- (ma == null || ma.member_name != "begin")) {
- /* [CCode (async_only = true)] and we're making a
- * synchronous version of the call. Emit the arg
- * at the start of a comma expression so that we
- * get any side effects but otherwise ignore the
- * value.
- */
- var comma = new CCodeCommaExpression ();
- comma.append_expression ((CCodeExpression) arg.ccodenode);
- comma.append_expression (ccall_expr);
- ccall_expr = comma;
-
- continue;
- }
-
// if the vala argument expands to multiple C arguments,
// we have to make sure that the C arguments don't depend
// on each other as there is no guaranteed argument
ccode_params.append_printf ("%sdelegate_target_pos = %g", separator, param.cdelegate_target_parameter_position);
separator = ", ";
}
- if (param.async_only) {
- ccode_params.append_printf ("%sasync_only = true", separator);
- separator = ", ";
- }
if (ccode_params.len > 0) {
write_string ("[CCode (%s)] ".printf (ccode_params.str));
*/
public double cdelegate_target_parameter_position { get; set; }
- /**
- * Specifies that the argument should only be emitted for async
- * calls (ie: from yielding functions).
- */
- public bool async_only { get; set; }
-
/**
* Specifies the type of the parameter in the C function.
*/
if (a.has_argument ("delegate_target_pos")) {
cdelegate_target_parameter_position = a.get_double ("delegate_target_pos");
}
- if (a.has_argument ("async_only")) {
- async_only = a.get_bool ("async_only");
- }
}
/**