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