diff options
author | Emil Velikov <emil.velikov@collabora.com> | 2017-08-09 19:01:53 +0100 |
---|---|---|
committer | Emil Velikov <emil.l.velikov@gmail.com> | 2017-08-26 11:01:23 +0100 |
commit | ce6f02e202daf4e77bc20f0ee599e467873debaa (patch) | |
tree | b25e49b00a84ca1dcff4bdee274fcfc6ffe0d8a7 /run.c | |
parent | 3aece9f7688fc058e981cb4979caaf2b6b6039e7 (diff) |
run: use distinct extension_string variables
The same declaration was being used for two distinct things - a short
EGL and the core GL extensions.
In the former it is a const string, while the latter is a dynamically
managed list of extensions.
Define distinct variables within the specific scope.
v2: use {egl,gl}_extension_string (Eric)
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Diffstat (limited to 'run.c')
-rw-r--r-- | run.c | 24 |
1 files changed, 13 insertions, 11 deletions
@@ -446,9 +446,9 @@ main(int argc, char **argv) "EGL_KHR_create_context", "EGL_KHR_surfaceless_context" }; - char *extension_string = eglQueryString(egl_dpy, EGL_EXTENSIONS); + const char *egl_extension_string = eglQueryString(egl_dpy, EGL_EXTENSIONS); for (int i = 0; i < ARRAY_SIZE(egl_extension); i++) { - if (strstr(extension_string, egl_extension[i]) == NULL) { + if (strstr(egl_extension_string, egl_extension[i]) == NULL) { fprintf(stderr, "ERROR: Missing %s\n", egl_extension[i]); ret = -1; goto egl_terminate; @@ -484,11 +484,13 @@ main(int argc, char **argv) if (core_ctx != EGL_NO_CONTEXT && eglMakeCurrent(egl_dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, core_ctx)) { int num_extensions; + char *gl_extension_string; + glGetIntegerv(GL_NUM_EXTENSIONS, &num_extensions); size_t extension_string_size = num_extensions * 26; core.extension_string = malloc(extension_string_size); - extension_string = core.extension_string; + gl_extension_string = core.extension_string; char *end_extension_string = core.extension_string + extension_string_size; @@ -496,24 +498,24 @@ main(int argc, char **argv) const char *ext = glGetStringi(GL_EXTENSIONS, i); size_t len = strlen(ext); - if (unlikely(extension_string + len + 1 >= end_extension_string)) { + if (unlikely(gl_extension_string + len + 1 >= end_extension_string)) { extension_string_size *= 2; - size_t extension_string_offset = extension_string - + size_t extension_string_offset = gl_extension_string - core.extension_string; core.extension_string = realloc(core.extension_string, extension_string_size); - extension_string = core.extension_string + + gl_extension_string = core.extension_string + extension_string_offset; end_extension_string = core.extension_string + extension_string_size; } - memcpy(extension_string, ext, len); - extension_string[len] = ' '; - extension_string += len + 1; + memcpy(gl_extension_string, ext, len); + gl_extension_string[len] = ' '; + gl_extension_string += len + 1; } - extension_string[-1] = '\0'; - core.extension_string_len = extension_string - 1 - + gl_extension_string[-1] = '\0'; + core.extension_string_len = gl_extension_string - 1 - core.extension_string; char *ver = glGetString(GL_SHADING_LANGUAGE_VERSION); |