Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Fixing valgrind errors.
Browse files Browse the repository at this point in the history
One of the error was the result of an unitended recursive call to X11_GL_LoadLibrary which was also fixed.
  • Loading branch information
pendletonrc committed Mar 6, 2008
1 parent adeff71 commit ba17f4d
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 26 deletions.
2 changes: 1 addition & 1 deletion src/SDL_compat.c
Expand Up @@ -397,8 +397,8 @@ SDL_SetVideoMode(int width, int height, int bpp, Uint32 flags)
}
if (SDL_VideoWindow) {
SDL_GetWindowPosition(SDL_VideoWindow, &window_x, &window_y);
SDL_DestroyWindow(SDL_VideoWindow);
}
SDL_DestroyWindow(SDL_VideoWindow);

/* Set up the event filter */
if (!SDL_GetEventFilter(NULL, NULL)) {
Expand Down
36 changes: 25 additions & 11 deletions src/video/x11/SDL_x11opengl.c
Expand Up @@ -65,6 +65,8 @@
#define GL_UnloadObject SDL_UnloadObject
#endif

static int X11_GL_InitializeMemory(_THIS);

int
X11_GL_LoadLibrary(_THIS, const char *path)
{
Expand All @@ -90,7 +92,8 @@ X11_GL_LoadLibrary(_THIS, const char *path)
return -1;
}
// LoadLibrary may be called before WindowCreate!
X11_GL_Initialize(_this);
// Must create the memory used by GL
X11_GL_InitializeMemory(_this);

/* Load new function pointers */
_this->gl_data->glXGetProcAddress =
Expand Down Expand Up @@ -254,11 +257,10 @@ X11_GL_InitExtensions(_THIS)
/* X11_PumpEvents(_this); */ /* can't do that because the windowlist may be inconsitent at this point */
}

int
X11_GL_Initialize(_THIS)
static int
X11_GL_InitializeMemory(_THIS)
{
if (_this->gl_data) {
++_this->gl_data->initialized;
return 0;
}

Expand All @@ -270,16 +272,28 @@ X11_GL_Initialize(_THIS)
SDL_OutOfMemory();
return -1;
}
_this->gl_data->initialized = 1;
_this->gl_data->initialized = 0;

if (X11_GL_LoadLibrary(_this, NULL) < 0) {
return -1;
}
return 0;
}

/* Initialize extensions */
X11_GL_InitExtensions(_this);
int
X11_GL_Initialize(_THIS)
{

return 0;
if (X11_GL_InitializeMemory(_this) < 0) {
return -1;
}
++_this->gl_data->initialized;

if (X11_GL_LoadLibrary(_this, NULL) < 0) {
return -1;
}

/* Initialize extensions */
X11_GL_InitExtensions(_this);

return 0;
}

void
Expand Down
16 changes: 2 additions & 14 deletions src/video/x11/SDL_x11window.c
Expand Up @@ -56,20 +56,6 @@ SetupWindowData(_THIS, SDL_Window * window, Window w, BOOL created)
data->created = created;
data->videodata = videodata;

/* Associate the data with the window */
windowlist =
(SDL_WindowData **) SDL_realloc(windowlist,
(numwindows +
1) * sizeof(*windowlist));
if (!windowlist) {
SDL_OutOfMemory();
SDL_free(data);
return -1;
}
windowlist[numwindows++] = data;
videodata->numwindows = numwindows;
videodata->windowlist = windowlist;

/* Fill in the SDL window with the window data */
{
XWindowAttributes attrib;
Expand Down Expand Up @@ -228,6 +214,7 @@ X11_CreateWindow(_THIS, SDL_Window * window)
return -1;
}
SDL_memcpy(&cmap, stdmaps, sizeof(XStandardColormap));
XFree(stdmaps);
}

/* OK, we have the best color map, now copy it for use by the
Expand Down Expand Up @@ -655,6 +642,7 @@ X11_DestroyWindow(_THIS, SDL_Window * window)
XDestroyWindow(display, data->window);
}
SDL_free(data);
window->driverdata = NULL;
}
}

Expand Down

0 comments on commit ba17f4d

Please sign in to comment.