Merge "fix a crasher in our EGL wrapper when attrib_list is NULL in eglChooseConfig" into kraken

This commit is contained in:
Mathias Agopian 2010-05-17 14:49:36 -07:00 committed by Android (Google) Code Review
commit 60300f6d3b
2 changed files with 13 additions and 6 deletions

View File

@ -1525,8 +1525,13 @@ EGLBoolean eglChooseConfig( EGLDisplay dpy, const EGLint *attrib_list,
}
if (ggl_unlikely(attrib_list==0)) {
*num_config = 0;
return EGL_TRUE;
/*
* A NULL attrib_list should be treated as though it was an empty
* one (terminated with EGL_NONE) as defined in
* section 3.4.1 "Querying Configurations" in the EGL specification.
*/
static const EGLint dummy = EGL_NONE;
attrib_list = &dummy;
}
int numAttributes = 0;

View File

@ -843,10 +843,12 @@ EGLBoolean eglChooseConfig( EGLDisplay dpy, const EGLint *attrib_list,
EGLint patch_index = -1;
GLint attr;
size_t size = 0;
while ((attr=attrib_list[size]) != EGL_NONE) {
if (attr == EGL_CONFIG_ID)
patch_index = size;
size += 2;
if (attrib_list) {
while ((attr=attrib_list[size]) != EGL_NONE) {
if (attr == EGL_CONFIG_ID)
patch_index = size;
size += 2;
}
}
if (patch_index >= 0) {
size += 2; // we need copy the sentinel as well