return value for gupnp_service_proxy_begin_action in case of error



Hi All

Method gupnp_service_proxy_begin_action()
Returns :
A GUPnPServiceProxyAction handle. This will be freed when
gupnp_service_proxy_cancel_action() or
gupnp_service_proxy_end_action_valist(). [transfer none]

This methods calls
    gupnp_service_proxy_begin_action_valist
and
    begin_action_msg

Method begin_action_msg can fail on number of reasons.
In this case method gupnp_service_proxy_begin_action_valist calls callback
and returns pointer to action.

        if (ret->error) {
                callback (proxy, ret, user_data);

                return ret;
        }

But it is expected that callback calls gupnp_service_proxy_end_action
and thus frees the action.
The pointer to returned action is invalid.
And client code starting the asynchronous action cannot use it.

If think that the group of methods gupnp_service_proxy_begin_action_???
should return 0 in this case.
Furthermore, it should be documented that the callback was already called.

Am I correct?
Patch attached.

Kind regards
 Brano

Attachment: commit-15874a9
Description: Binary data



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]