[Libreoffice-commits] core.git: editeng: Eliminate unecessary padding in classes
Norbert Thiebaud
nthiebaud at gmail.com
Wed Nov 4 02:21:39 PST 2015
On Wed, Nov 4, 2015 at 3:42 AM, Stephan Bergmann <sbergman at redhat.com> wrote:
> On 11/04/2015 09:16 AM, Daniel Robertson wrote:
>>
>> commit f57a6593e21d45008173352fc29ededdbc2c8878
>> Author: Daniel Robertson <danlrobertson89 at gmail.com>
>> Date: Tue Nov 3 14:14:08 2015 -0500
>>
>> editeng: Eliminate unecessary padding in classes
>>
>> Edit the order of SvxLRSpaceItem and PaintFirstLineInfo members to
>> remove unecessary padding due to data alignment.
>>
>> Change-Id: Icf2c92ef86a32384e51d1cb6f1a079b10995dfd5
>> Reviewed-on: https://gerrit.libreoffice.org/19763
>> Tested-by: Jenkins <ci at libreoffice.org>
>> Reviewed-by: Norbert Thiebaud <nthiebaud at gmail.com>
>>
> [...]
>>
>> diff --git a/include/editeng/lrspitem.hxx b/include/editeng/lrspitem.hxx
>> index 40da999..94daed8 100644
>> --- a/include/editeng/lrspitem.hxx
>> +++ b/include/editeng/lrspitem.hxx
>> @@ -50,15 +50,15 @@
>>
>> class EDITENG_DLLPUBLIC SvxLRSpaceItem : public SfxPoolItem
>> {
>> - short nFirstLineOfst; // First-line indent _always_ relative to
>> nTxtLeft
>> long nTxtLeft; // We spend a sal_uInt16
>> long nLeftMargin; // nLeft or the negative first-line
>> indent
>> long nRightMargin; // The unproblematic right edge
>>
>> sal_uInt16 nPropFirstLineOfst, nPropLeftMargin, nPropRightMargin;
>> + short nFirstLineOfst; // First-line indent _always_ relative to
>> nTxtLeft
>
>
> With micro-optimization changes like these, I would leave it to some domain
> expert to decide whether it is actually worth it (i.e., whether on the one
> hand the existing member order had been chosen deliberately, to aid human
> comprehension, and whether on the other hand enough instances of that class
> are created to warrant any such optimization).
Domain expert are the last one to reliably evaluate 'human
comprehension", since they _are_ domain expert
wrt to the number of instance... even if there is only one. is it a
reason to be sloppy ?
>
>> bool bAutoFirst : 1; // Automatic calculation of the
>> first line indent
>> - bool bExplicitZeroMarginValRight;
>> - bool bExplicitZeroMarginValLeft;
>> + bool bExplicitZeroMarginValRight : 1;
>> + bool bExplicitZeroMarginValLeft : 1;
>
>
> It is unclear whether that is an optimization or a pessimization.
you can choose size or perf.. but having a
bool foo:1
followed by 2 plain bool
is wrong either way.
Norbert
More information about the LibreOffice
mailing list