]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - vid_glx.c
try to cache fewer animations for entities when r_shadows is used by using cull box
[xonotic/darkplaces.git] / vid_glx.c
index da669873ce25f6baa6ca2a6fa93e0ab6989330cc..01d2486be4d5a0e09d1aa764b2aab474179f31f5 100644 (file)
--- a/vid_glx.c
+++ b/vid_glx.c
@@ -128,7 +128,7 @@ static Colormap vidx11_colormap;
 //
 
 long keysym2ucs(KeySym keysym);
-int DP_Xutf8LookupString(XKeyEvent * ev,
+void DP_Xutf8LookupString(XKeyEvent * ev,
                         Uchar *uch,
                         KeySym * keysym_return,
                         Status * status_return)
@@ -136,7 +136,6 @@ int DP_Xutf8LookupString(XKeyEvent * ev,
        int rc;
        KeySym keysym;
        int codepoint;
-       int len;
        char buffer[64];
        int nbytes = sizeof(buffer);
 
@@ -155,7 +154,8 @@ int DP_Xutf8LookupString(XKeyEvent * ev,
                        *status_return = XLookupKeySym;
                        *keysym_return = keysym;
                }
-               return 0;
+               *uch = 0;
+               return;
        }
 
        *uch = codepoint;
@@ -166,7 +166,6 @@ int DP_Xutf8LookupString(XKeyEvent * ev,
        } else {
                *status_return = XLookupChars;
        }
-       return len;
 }
 static int XLateKey(XKeyEvent *ev, Uchar *ascii)
 {
@@ -1017,6 +1016,9 @@ qboolean VID_InitMode(viddef_mode_t *mode)
        }
 
        XmbSetWMProperties(vidx11_display, win, gamename, gamename, (char **) com_argv, com_argc, szhints, wmhints, clshints);
+       // strdup() allocates using malloc(), should be freed with free()
+       free(clshints->res_name);
+       free(clshints->res_class);
        XFree(clshints);
        XFree(wmhints);
        XFree(szhints);
@@ -1043,6 +1045,7 @@ qboolean VID_InitMode(viddef_mode_t *mode)
        //XSync(vidx11_display, False);
 
        ctx = qglXCreateContext(vidx11_display, visinfo, NULL, True);
+       XFree(visinfo); // glXChooseVisual man page says to use XFree to free visinfo
        if (!ctx)
        {
                Con_Printf ("glXCreateContext failed\n");
@@ -1154,6 +1157,8 @@ size_t VID_ListModes(vid_mode_t *modes, size_t maxcount)
                                ++k;
                        }
                }
+               // manpage of XF86VidModeGetAllModeLines says it should be freed by the caller
+               XFree(vidmodes);
                return k;
        }
        return 0; // FIXME implement this