projects
/
mesa.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
5b92008
)
Revert "egl: remove explicit config_id management from dri2_add_config()"
author
Emil Velikov
<emil.l.velikov@gmail.com>
Wed, 9 Nov 2016 21:45:07 +0000
(21:45 +0000)
committer
Emil Velikov
<emil.l.velikov@gmail.com>
Wed, 9 Nov 2016 21:48:50 +0000
(21:48 +0000)
This reverts commit
3652d1d5942a857f225700d67ce2c900396982f2
.
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.
src/egl/drivers/dri2/egl_dri2.c
patch
|
blob
|
history
diff --git
a/src/egl/drivers/dri2/egl_dri2.c
b/src/egl/drivers/dri2/egl_dri2.c
index 403f3d3b72954e02b4e150a0381a8964c63c9c6b..d9e2ad701b79586208acb8d9b875086d1a9ead01 100644
(file)
--- a/
src/egl/drivers/dri2/egl_dri2.c
+++ b/
src/egl/drivers/dri2/egl_dri2.c
@@
-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);
}