From 683d9deb2e201c3bbd82ad20769a6af6ff78a059 Mon Sep 17 00:00:00 2001 From: Per Inge Mathisen Date: Tue, 12 Feb 2008 18:57:20 +0000 Subject: [PATCH] Replace check_extension with one that does not anger valgrind. git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@3766 4a71c877-e1ca-e34f-864e-861f7616d084 --- lib/ivis_opengl/piedraw.c | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/lib/ivis_opengl/piedraw.c b/lib/ivis_opengl/piedraw.c index 2fc1b986a..1bc17ea90 100644 --- a/lib/ivis_opengl/piedraw.c +++ b/lib/ivis_opengl/piedraw.c @@ -53,29 +53,25 @@ extern BOOL drawing_interface; * OpenGL extensions for shadows */ -BOOL check_extension(const char* extension_name) +BOOL check_extension(const char *extName) { - const char *extension_list = (const char *)glGetString(GL_EXTENSIONS); - unsigned int extension_name_length = strlen(extension_name); - const char *tmp = extension_list; - unsigned int first_extension_length; + char *p = (char *) glGetString(GL_EXTENSIONS); + char *end; + size_t extNameLen= strlen(extName); - if (!extension_name || !extension_list) return FALSE; - - while (tmp[0]) { - first_extension_length = strcspn(tmp, " "); - - if ( extension_name_length == first_extension_length - && strncmp(extension_name, tmp, first_extension_length) == 0) { + end = p + strlen(p); + while (p < end) + { + int n = strcspn(p, " "); + if ((extNameLen == n) && (strncmp(extName, p, n) == 0)) + { return TRUE; } - tmp += first_extension_length + 1; + p += (n + 1); } - return FALSE; } - // EXT_stencil_two_side #ifndef GL_EXT_stencil_two_side # define GL_EXT_stencil_two_side 1