
On Tue, Mar 09, 2021 at 17:44:16 +0000, Daniel Berrange wrote:
One of the conventions we have had since the early days of libvirt is that every struct typedef, has a corresponding "Ptr" typedef too.
For example
typedef struct _virDomainDef virDomainDef; typedef virDomainDef *virDomainDefPtr;
[...]
We can't do anything about the use "Ptr" in the include/ files because that is public ABI. We can potentially eliminate "Ptr" types everywhere else in the codebase, even the src/libvirt*.c files corresponding to the public includes.
Does anyone have suggestions for how these "Ptr" typedefs are benefiting libvirt ? Would anyone miss them ?
I don't usually declare them for internal types any more. I will not mourn if we discourage them from now on. I'd just prefer if we either big-bang rewrite all of it or just discourage it's use in new code and let it gradually die, but not encourage any semi-concetrated effort to remove the use of them, since that creates a stream of steady and long enduring churn. Basically don't make a GSoC project or file an public 'bite-sized' task for it.