bject
doesn't seem onerous to me. It'd mask out bugs where the client pointer
becomes NULL by mistake. As the API evolves, it'll very likely gain more
state. Seems simpler to me that way from a documentation and maintenance
perspective, that with having everyone use the API in the same way.
My 2c.
Thanks,
Pedro Alves
,
http://0pointer.de/blog/projects/libabc.html
which promotes that client pointer mechanism.
I recommend reading this:
https://git.kernel.org/pub/scm/linux/kernel/git/kay/libabc.git/plain/README
Notably, the "Zero global state" part.
Thanks,
Pedro Alves