On 29 April 2017 at 14:51, Ilia Mirkin <imir...@alum.mit.edu> wrote:
> On Tue, Apr 25, 2017 at 12:07 PM, Emil Velikov <emil.l.veli...@gmail.com> 
> wrote:
>> From: Emil Velikov <emil.veli...@collabora.com>
>>
>> Considering we cannot make dummy_thread a constant we might as well,
>> initialise by the same function that handles the actual thread info.
>>
>> This way we don't need to worry about mismatch between the initialiser
>> and initialising function.
>>
>> Signed-off-by: Emil Velikov <emil.veli...@collabora.com>
>> ---
>>  src/egl/main/eglcurrent.c | 13 ++++---------
>>  1 file changed, 4 insertions(+), 9 deletions(-)
>>
>> diff --git a/src/egl/main/eglcurrent.c b/src/egl/main/eglcurrent.c
>> index eae7bdcea15..26f42761e26 100644
>> --- a/src/egl/main/eglcurrent.c
>> +++ b/src/egl/main/eglcurrent.c
>> @@ -37,12 +37,8 @@
>>  #include "eglcurrent.h"
>>  #include "eglglobals.h"
>>
>> -/* This should be kept in sync with _eglInitThreadInfo() */
>> -#define _EGL_THREAD_INFO_INITIALIZER \
>> -   { EGL_SUCCESS, NULL, EGL_OPENGL_ES_API, NULL, NULL, NULL }
>> -
>>  /* a fallback thread info to guarantee that every thread always has one */
>> -static _EGLThreadInfo dummy_thread = _EGL_THREAD_INFO_INITIALIZER;
>> +static _EGLThreadInfo dummy_thread;
>
> Are statics initialized to 0? I didn't think they were... I think you
> need a "= {};" here. Did you test this by forcing allocation failures?
>
Static variables are implicitly initialized with zero/NULL [1]. The
.bss size is increased while the actual [complete] binary size remains
small.

Consider the following:

 static int foo[2000] = {};
 static int foo[2000];

The former will/should produce a very large binary, while the
following will not. In both case the array will be filled with zeros
;-)

-Emil

[1] http://c-faq.com/decl/initval.html
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to