[PATCH] Replace loop by memset in sal/typesconfig/typesconfig.c

Julien Nabet serval2412 at yahoo.fr
Mon Dec 24 09:44:14 PST 2012


On 24/12/2012 18:29, Norbert Thiebaud wrote:
> On Mon, Dec 24, 2012 at 8:45 AM, julien2412<serval2412 at yahoo.fr>  wrote:
>> Hello,
>>
>> By taking a look at the file  sal/typesconfig/typesconfig.c, GetAlignment
>> function, I wonder if we could replace the for loop by a memset to optimize
>> a bit.
>> So here's a straightforward patch:
>> diff --git a/sal/typesconfig/typesconfig.c b/sal/typesconfig/typesconfig.c
>> index 473f07a..ef52c5f 100644
>> --- a/sal/typesconfig/typesconfig.c
>> +++ b/sal/typesconfig/typesconfig.c
>> @@ -262,11 +262,9 @@ int GetAlignment( Type eT )
>>   {
>>     char  a[ 16*8 ];
>>     long  p = (long)(void*)a;
>> -  int   i;
>>
>>     /* clear a[...] to set legal value for double access */
>> -  for ( i = 0; i<  16*8; i++ )
>> -    a[i] = 0;
>> +  memset(a, 0, sizeof(a));
>>
>>     p = ( p + 0xF )&  ~0xF;
>>     for ( i = 1; i<  16; i++ )
>>
>> Would it be ok?
> well you can't remove
>   int i;
>
> since it is still used in the second for loop.
>
> and I doubt that that code is run very often... namely 4 times per
> execution of the typesconfig executable... which in turn run dozens of
> fprintf...
> I'd say that this micro-optimization would be completely
> un-measurable, and may or may not be an optimization at all depending
> on how the memset is treated.
> but sure, it is 'ok', as in it won't hurt anything.
ok let's forget it, I suppose that the one who made this loop has 
certainly good reasons for this + you must be right, micro-optimization

Julien


More information about the LibreOffice mailing list