On Mon, Jul 17, 2017 at 10:02 AM, Aleksander Morgado
<aleksan...@aleksander.es> wrote:
>> What you included here as a
>> snippet is a huge bug actually.
>
> Well, not that huge really... the only issue is that we're setting the
> GSimpleAsyncResult result twice to TRUE. But, of course, if the
> parent's implementation isn't using a GSimpleAsyncResult and is using
> a GTask instead (as in your case), there really would be a bug as a
> GTask isn't a GSimpleAsyncResult :) So, let me fix as many of those
> issues as I find in a quick look, and then publish your full branch
> and we'll get it reviewed and merged.

I did the following grep in the source code to find all places where
we were casting explicitly to G_SIMPLE_ASYNC_RESULT when calling
g_simple_async_result_set_op...():

  $ grep -r "g_simple_async_result_set_op" . | grep "G_SIMPLE_ASYNC"

And fixed all places reported.

The rationale is that we usually explicitly use the GSimpleAsyncResult
type instead of "gpointer" in the user_data passed to the async
functions inside the async function we're implementing, so there
usually is never the need to explicitly cast that to
GSimpleAsyncResult again to call g_simple_async_result_set_op...().
Where there was an explicit cast, the code was buggy.

Please rebase your branch on top of master, include the missing
commits you took out, and repush for review.

-- 
Aleksander
https://aleksander.es
_______________________________________________
ModemManager-devel mailing list
ModemManager-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel

Reply via email to