summaryrefslogtreecommitdiffstats
path: root/src/glx/glxglvnd.c
Commit message (Collapse)AuthorAgeFilesLines
* glx/glvnd: list the strcmp arguments in correct orderEmil Velikov2016-09-051-2/+2
| | | | | | | | | | | Currently, due to the inverse order, strcmp will produce negative result when the needle is towards the start of the haystack. Thus on the next iteration(s) we'll end up further towards the end and eventually fail to locate the entry. Cc: "12.0" <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Eric Engestrom <[email protected]>
* Avoid overflow in 'last' variable of FindGLXFunction(...)Stefan Dirsch2016-07-201-3/+3
| | | | | | | | | | | | | | This 'last' variable used in FindGLXFunction(...) may become negative, but has been defined as unsigned int resulting in an overflow, finally resulting in a segfault when accessing _glXDispatchTableStrings[...]. Fixed this by definining it as signed int. 'first' variable also needs to be defined as signed int. Otherwise condition for while loop fails due to C implicitly converting signed to unsigned values before comparison. Cc: <[email protected]> Signed-off-by: Stefan Dirsch <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* glx/glvnd: rework dispatch functions/indices tables lookupEmil Velikov2016-05-301-11/+8
| | | | | | | | | | | Rather than checking if the function name maps to a valid entry in the respective table, just create a dummy entry at the end of each table. This allows us to remove some unnessesary "index >= 0" checks, which get executed quite often. Reviewed-by: Adam Jackson <[email protected]> Signed-off-by: Emil Velikov <[email protected]>
* glx/glvnd: Use strcmp() based binary search in FindGLXFunction()Emil Velikov2016-05-301-5/+14
| | | | | | | | | | It will allows us to find the function within 6 attempts, out of the ~80 entry long table. v2: calculate middle on each iteration, correctly set the lower limit. Reviewed-by: Adam Jackson <[email protected]> (v1) Signed-off-by: Emil Velikov <[email protected]>
* glx: Implement the libglvnd interface.Kyle Brenneman2016-05-301-0/+75
With reference to the libglvnd branch: https://cgit.freedesktop.org/mesa/mesa/log/?h=libglvnd This is a squashed commit containing all of Kyle's commits, all but two of Emil's commits (to follow), and a small fixup from myself to mark the rest of the glX* functions as _GLX_PUBLIC so they are not exported when building for libglvnd. I (ajax) squashed them together both for ease of review, and because most of the changes are un-useful intermediate states representing the evolution of glvnd's internal API. Co-author: Emil Velikov <[email protected]> Reviewed-by: Adam Jackson <[email protected]>