On Mon, Aug 31, 2015 at 02:37:07PM +0200, Patrik Jakobsson wrote:
[...]
> Here's my take on it (I assume it needs some discussion):
> 
> int
> set_tcb_priv_data(struct tcb *tcp, void *priv_data)
> {
>       /* A free callback is required before setting private data and private
>        * data must be set back to NULL before being set again.
>        */

I think a single function initializing both _priv_data and _free_priv_data
would suffice:

int
set_tcb_priv_data(struct tcb *tcp, void *priv_data,
                  void (*free_priv_data)(void *))
{
        if (tcp->_priv_data)
                return -1;

        tcp->_free_priv_data = free_priv_data;
        tcp->_priv_data = priv_data;

        return 0;
}


-- 
ldv

Attachment: pgpaTTMXWu6fW.pgp
Description: PGP signature

------------------------------------------------------------------------------
_______________________________________________
Strace-devel mailing list
Strace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/strace-devel

Reply via email to