Commit ae381d79 authored by Philip Withnall's avatar Philip Withnall

gtask: Ensure to return 1 or 0 from getters rather than truthy ints

Since commit 290bb0dd, where various members of GTask were converted to
a bitfield, some of the getters:
 • g_task_get_check_cancellable()
 • g_task_get_return_on_cancel()
 • g_task_get_completed()
have been returning truthy ints (zero or an arbitrary non-zero integer)
as boolean values, rather than the canonical boolean ints of 1 and 0.

This broke the `yield` statement in Vala, whose generated C code
compares `g_task_get_completed (…) != TRUE`. i.e. Whether the
`completed` field has a value not equal to 1.

Fix this by explicitly converting truthy ints to canonical boolean ints
in all getters.
Signed-off-by: Philip Withnall's avatarPhilip Withnall <withnall@endlessm.com>

#1636
parent 33158c86
...@@ -1132,7 +1132,8 @@ g_task_get_check_cancellable (GTask *task) ...@@ -1132,7 +1132,8 @@ g_task_get_check_cancellable (GTask *task)
{ {
g_return_val_if_fail (G_IS_TASK (task), FALSE); g_return_val_if_fail (G_IS_TASK (task), FALSE);
return task->check_cancellable; /* Convert from a bit field to a boolean. */
return task->check_cancellable ? TRUE : FALSE;
} }
/** /**
...@@ -1149,7 +1150,8 @@ g_task_get_return_on_cancel (GTask *task) ...@@ -1149,7 +1150,8 @@ g_task_get_return_on_cancel (GTask *task)
{ {
g_return_val_if_fail (G_IS_TASK (task), FALSE); g_return_val_if_fail (G_IS_TASK (task), FALSE);
return task->return_on_cancel; /* Convert from a bit field to a boolean. */
return task->return_on_cancel ? TRUE : FALSE;
} }
/** /**
...@@ -1952,7 +1954,8 @@ g_task_get_completed (GTask *task) ...@@ -1952,7 +1954,8 @@ g_task_get_completed (GTask *task)
{ {
g_return_val_if_fail (G_IS_TASK (task), FALSE); g_return_val_if_fail (G_IS_TASK (task), FALSE);
return task->completed; /* Convert from a bit field to a boolean. */
return task->completed ? TRUE : FALSE;
} }
/** /**
...@@ -2055,7 +2058,7 @@ g_task_get_property (GObject *object, ...@@ -2055,7 +2058,7 @@ g_task_get_property (GObject *object,
switch ((GTaskProperty) prop_id) switch ((GTaskProperty) prop_id)
{ {
case PROP_COMPLETED: case PROP_COMPLETED:
g_value_set_boolean (value, task->completed); g_value_set_boolean (value, g_task_get_completed (task));
break; break;
} }
} }
......
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