Mesa (master): mesa: call atexit() only as needed

Emil Velikov evelikov at kemper.freedesktop.org
Thu Nov 16 14:18:58 UTC 2017


Module: Mesa
Branch: master
Commit: 9aa9b98e63a88c823ef7248f936fc39fd7e1d00a
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9aa9b98e63a88c823ef7248f936fc39fd7e1d00a

Author: Emil Velikov <emil.velikov at collabora.com>
Date:   Mon Nov  6 16:02:32 2017 +0000

mesa: call atexit() only as needed

If the extra_extensions string is empty there's no need to call
atexit() - there's nothing to free.

v2: Rebase

Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
Reviewed-by: Brian Paul <brianp at vmware.com> (v1)

---

 src/mesa/main/extensions.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c
index 7483b8f249..be3970c639 100644
--- a/src/mesa/main/extensions.c
+++ b/src/mesa/main/extensions.c
@@ -245,8 +245,6 @@ _mesa_one_time_init_extension_overrides(void)
    int len;
    size_t offset;
 
-   atexit(free_unknown_extensions_strings);
-
    memset(&_mesa_extension_override_enables, 0, sizeof(struct gl_extensions));
    memset(&_mesa_extension_override_disables, 0, sizeof(struct gl_extensions));
 
@@ -305,9 +303,9 @@ _mesa_one_time_init_extension_overrides(void)
    len = strlen(extra_extensions);
    if (len == 0) {
       free(extra_extensions);
-      extra_extensions = NULL;
    } else if (extra_extensions[len - 1] == ' ') {
       extra_extensions[len - 1] = '\0';
+      atexit(free_unknown_extensions_strings);
    }
 }
 




More information about the mesa-commit mailing list