Comment 3 for bug 299152

Revision history for this message
Martin Olsson (mnemo) wrote :

I modified the code around the assert to say:

    /* if Xlib has a partial request pending then XCB doesn't know about
     * the current request yet */
    if(dpy->xcb->partial_request) {
        ++xcb_req;
        printf ("partial request thing\n");
    }
    if (XCB_SEQUENCE_COMPARE(xcb_req, <, dpy->request)) {
        printf ("xcb_req=%u\n", xcb_req);
        printf ("dpy->request=%u\n", dpy->request);
        print_backtrace();
        fflush(stdout);
    }
    assert(XCB_SEQUENCE_COMPARE(xcb_req, >=, dpy->request));
    dpy->request = xcb_req;

And then it prints:
xcb_req=3334
dpy->request=3335

So basically, this means that the code near when the assert is triggered does NOT take the branch into the "++xcb_req" statement. I've no idea if it is supposed to do that or not but that would certainly have prevented the assert from being hit?