Browse Source

st/egl: Manually free configs on terminate.

The configs should be FREE()ed, not free()ed.  We cannot rely on
_eglCleanupDisplay here.
tags/mesa-7.9-rc1
Chia-I Wu 15 years ago
parent
commit
c5bc0a8d66
1 changed files with 13 additions and 1 deletions
  1. 13
    1
      src/gallium/state_trackers/egl/common/egl_g3d.c

+ 13
- 1
src/gallium/state_trackers/egl/common/egl_g3d.c View File

@@ -424,6 +424,13 @@ static struct native_event_handler egl_g3d_native_event_handler = {
egl_g3d_new_sw_screen
};

static void
egl_g3d_free_config(void *conf)
{
struct egl_g3d_config *gconf = egl_g3d_config((_EGLConfig *) conf);
FREE(gconf);
}

static void
egl_g3d_free_screen(void *scr)
{
@@ -438,16 +445,21 @@ egl_g3d_terminate(_EGLDriver *drv, _EGLDisplay *dpy)
struct egl_g3d_display *gdpy = egl_g3d_display(dpy);

_eglReleaseDisplayResources(drv, dpy);
_eglCleanupDisplay(dpy);

if (gdpy->pipe)
gdpy->pipe->destroy(gdpy->pipe);

if (dpy->Configs) {
_eglDestroyArray(dpy->Configs, egl_g3d_free_config);
dpy->Configs = NULL;
}
if (dpy->Screens) {
_eglDestroyArray(dpy->Screens, egl_g3d_free_screen);
dpy->Screens = NULL;
}

_eglCleanupDisplay(dpy);

if (gdpy->smapi)
egl_g3d_destroy_st_manager(gdpy->smapi);


Loading…
Cancel
Save