Przeglądaj źródła

Revert "egl: remove explicit config_id management from dri2_add_config()"

This reverts commit 3652d1d594.

Self nack/reject on this one. The base.ConfigID is overwritten
immediately after we store the current value, thus one memcpy [further
down] the wrong value will be copied.
tags/17.0-branchpoint
Emil Velikov 8 lat temu
rodzic
commit
aeaf21ab3e
1 zmienionych plików z 3 dodań i 0 usunięć
  1. 3
    0
      src/egl/drivers/dri2/egl_dri2.c

+ 3
- 0
src/egl/drivers/dri2/egl_dri2.c Wyświetl plik

@@ -166,6 +166,7 @@ dri2_add_config(_EGLDisplay *disp, const __DRIconfig *dri_config, int id,
unsigned int dri_masks[4] = { 0, 0, 0, 0 };
_EGLConfig *matching_config;
EGLint num_configs = 0;
EGLint config_id;
int i;

_eglInitConfig(&base, disp, id);
@@ -285,6 +286,7 @@ dri2_add_config(_EGLDisplay *disp, const __DRIconfig *dri_config, int id,
return NULL;
}

config_id = base.ConfigID;
base.ConfigID = EGL_DONT_CARE;
base.SurfaceType = EGL_DONT_CARE;
num_configs = _eglFilterArray(disp->Configs, (void **) &matching_config, 1,
@@ -313,6 +315,7 @@ dri2_add_config(_EGLDisplay *disp, const __DRIconfig *dri_config, int id,

memcpy(&conf->base, &base, sizeof base);
conf->base.SurfaceType = 0;
conf->base.ConfigID = config_id;

_eglLinkConfig(&conf->base);
}

Ładowanie…
Anuluj
Zapisz