progs/egl: Fix a crash in demo1.
authorChia-I Wu <olvaffe@gmail.com>
Wed, 30 Sep 2009 04:28:01 +0000 (12:28 +0800)
committerBrian Paul <brianp@vmware.com>
Wed, 30 Sep 2009 14:15:30 +0000 (08:15 -0600)
The variable "configs" in main() is used without initialization.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
progs/egl/demo1.c

index 6381ad59e6b11bfa91b4927aed10853c927dc59c..34a516e72fcfe2876b60467eedd928d0cb357640 100644 (file)
@@ -34,14 +34,9 @@ TestScreens(EGLDisplay dpy)
  * Print table of all available configurations.
  */
 static void
-PrintConfigs(EGLDisplay d)
+PrintConfigs(EGLDisplay d, EGLConfig *configs, EGLint numConfigs)
 {
-   EGLConfig *configs;
-   EGLint numConfigs, i;
-
-   eglGetConfigs(d, NULL, 0, &numConfigs);
-   configs = malloc(sizeof(*configs) *numConfigs);
-   eglGetConfigs(d, configs, numConfigs, &numConfigs);
+   EGLint i;
 
    printf("Configurations:\n");
    printf("     bf lv d st colorbuffer dp st   supported \n");
@@ -83,7 +78,6 @@ PrintConfigs(EGLDisplay d)
              red, green, blue, alpha,
              depth, stencil, surfString);
    }
-   free(configs);
 }
 
 
@@ -94,7 +88,8 @@ main(int argc, char *argv[])
    int maj, min;
    EGLContext ctx;
    EGLSurface pbuffer;
-   EGLConfig configs[10];
+   EGLConfig *configs;
+   EGLint numConfigs;
    EGLBoolean b;
    const EGLint pbufAttribs[] = {
       EGL_WIDTH, 500,
@@ -113,7 +108,11 @@ main(int argc, char *argv[])
    printf("EGL version = %d.%d\n", maj, min);
    printf("EGL_VENDOR = %s\n", eglQueryString(d, EGL_VENDOR));
 
-   PrintConfigs(d);
+   eglGetConfigs(d, NULL, 0, &numConfigs);
+   configs = malloc(sizeof(*configs) *numConfigs);
+   eglGetConfigs(d, configs, numConfigs, &numConfigs);
+
+   PrintConfigs(d, configs, numConfigs);
 
    ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL);
    if (ctx == EGL_NO_CONTEXT) {
@@ -127,6 +126,8 @@ main(int argc, char *argv[])
       return 0;
    }
 
+   free(configs);
+
    b = eglMakeCurrent(d, pbuffer, pbuffer, ctx);
    if (!b) {
       printf("make current failed\n");