Commit 47b0b254 authored by Rico Tzschichholz's avatar Rico Tzschichholz

codegen: Don't check boolean values for (in)equality in GTask API

This resolves any value but 0 to true as it is suppose to be.

  /* invalid */
  if (condition == TRUE)
    do_foo ();

  /* valid */
  if (another_condition)
    do_bar ();

See glib#1636
parent ba7baed0
......@@ -140,15 +140,15 @@ public abstract class Vala.CCodeMethodModule : CCodeStructModule {
var state_is_not_zero = new CCodeBinaryExpression (CCodeBinaryOperator.INEQUALITY, state, zero);
ccode.open_if (state_is_not_zero);
CCodeBinaryExpression task_is_complete;
CCodeExpression task_is_complete;
if (context.require_glib_version (2, 44)) {
var task_complete = new CCodeFunctionCall (new CCodeIdentifier ("g_task_get_completed"));
task_complete.add_argument (async_result_expr);
task_is_complete = new CCodeBinaryExpression (CCodeBinaryOperator.INEQUALITY, task_complete, new CCodeConstant ("TRUE"));
task_is_complete = new CCodeUnaryExpression (CCodeUnaryOperator.LOGICAL_NEGATION, task_complete);
} else {
var task_complete = new CCodeMemberAccess.pointer (data_var, "_task_complete_");
task_is_complete = new CCodeBinaryExpression (CCodeBinaryOperator.INEQUALITY, task_complete, new CCodeConstant ("TRUE"));
task_is_complete = new CCodeUnaryExpression (CCodeUnaryOperator.LOGICAL_NEGATION, task_complete);
}
ccode.open_while (task_is_complete);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment