On 29.09.2016 22:55, Anutex wrote:
I tried to debug this issue with changing the condition to check only bad magic 
and Error.
And the test passed.

Though i am not sure what is the correct behaviour if we are in this condition.
May be we should make some  other condition if the Hash Table have the bucket 

The whole commit message needs to be cleaned up to. Also, mention:

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38970

 src/glx/dri2_glx.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c
index af388d9..a1fd9ff 100644
--- a/src/glx/dri2_glx.c
+++ b/src/glx/dri2_glx.c
@@ -411,12 +411,13 @@ dri2CreateDrawable(struct glx_screen *base, XID xDrawable,
       return NULL;

-   if (__glxHashInsert(pdp->dri2Hash, xDrawable, pdraw)) {
+   if (__glxHashInsert(pdp->dri2Hash, xDrawable, pdraw) == -1) {
       (*psc->core->destroyDrawable) (pdraw->driDrawable);
       DRI2DestroyDrawable(psc->base.dpy, xDrawable);
       return None;

This looks reasonable to me.

The information in the hash gets somewhat broken when multiple GLXPixmaps are created from the same Pixmap, but the hash is used to lookup drawables based on XID for flip-type events, which seems like it shouldn't happen for pixmaps anyway. So I wonder if pixmaps need to be added to the hash in the first place.

But I'm also not very familiar with all of this, so a second opinion would be nice :)



     * Make sure server has the same swap interval we do for the new

mesa-dev mailing list

Reply via email to