[libvirt] [PATCH 1/7] util: buffer: Remove struct member munging

Laine Stump laine at laine.org
Mon Apr 1 22:42:01 UTC 2019


On 4/1/19 2:54 AM, Peter Krempa wrote:
> On Fri, Mar 29, 2019 at 18:44:04 -0400, Laine Stump wrote:
>> On 3/29/19 9:33 AM, Peter Krempa wrote:
>>> This was meant to stop abusing the members directly, but we don't do
>>> this for other internal structs. Additionally this did not stop the
>>> test from touching the members. Remove the header obscurization.
>>
>> I agree with you that this obfuscation does nothing in the face of a hostile
>> (or ignorant) coder, but if we instead just make the real struct public then
>> it won't be just ignorant devs who incorrectly use the internals of
>> virBuffer. How about taking care of it with a virbufferpriv.h as we now do
>> for several other structs whose internals we want to keep "private"?
>> vircommandpriv.h is one good example.
> Vast majority of our code uses stack'd version. Just grep for use of the
> VIR_BUFFER_INITIALIZER macro.


Ah, right. I hadn't noticed that.


>   If it were possible I'd take it private.


Personally I think it's easy to go overboard making things private 
(although I have to admit it does occasionally make it easier to change 
the implementation of something without requiring little changes all 
over the place).


> I think review making sure that people don't do shenaningans with the
> struct should be sufficient.


My only misgiving is that there must have been some event leading up to 
commit 642b26fab26 back in 2008.


Personally, I'm okay with it. You may want to wait and see if danpb (the 
author of the above commit) thinks differently:


Reviewed-by: Laine Stump <laine at laine.org>





More information about the libvir-list mailing list