[xlibs-commit] X11/src OpenDis.c,3.19.2.1,3.19.2.2

Jamey Sharp xlibs-commit@pdx.freedesktop.org
Wed, 19 Nov 2003 17:37:16 -0800


Committed by: jamey

Update of /cvs/xlibs/X11/src
In directory pdx:/tmp/cvs-serv8897/src

Modified Files:
      Tag: XCL
	OpenDis.c 
Log Message:
XCB enables BigReq; removed now-duplicate BigReqEnable from XOpenDisplay.


Index: OpenDis.c
===================================================================
RCS file: /cvs/xlibs/X11/src/OpenDis.c,v
retrieving revision 3.19.2.1
retrieving revision 3.19.2.2
diff -u -d -r3.19.2.1 -r3.19.2.2
--- OpenDis.c	13 Nov 2003 19:28:34 -0000	3.19.2.1
+++ OpenDis.c	20 Nov 2003 01:37:13 -0000	3.19.2.2
@@ -34,26 +34,12 @@
 #include "xclint.h"
 #include <X11/Xatom.h>
 #include <X11/Xresource.h>
-#include <X11/extensions/bigreqstr.h>
 #include <stdio.h>
 
 #ifdef XKB
 #include "XKBlib.h"
 #endif /* XKB */
 
-#ifdef X_NOT_POSIX
-#define Size_t unsigned int
-#else
-#define Size_t size_t
-#endif
-
-#define bignamelen (sizeof(XBigReqExtensionName) - 1)
-
-typedef struct {
-    unsigned long seq;
-    int opcode;
-} _XBigReqState;
-
 #ifdef WIN32
 int *_Xdebug_p = &_Xdebug;
 #endif
@@ -78,8 +64,6 @@
 
 static void OutOfMemory(Display *dpy);
 void _XFreeDisplayStructure(Display *dpy);
-static Bool _XBigReqHandler(Display *dpy, xReply *rep, char *buf, int len,
-				XPointer data);
 
 void XSetAuthorization(char *name, int namelen, char *data, int datalen)
 {
@@ -389,7 +373,7 @@
 	dpy->idlist_alloc = _XAllocIDs;
 	dpy->synchandler = NULL;
 	dpy->savedsynchandler = NULL;
-	dpy->request = 0;
+	dpy->request = c->seqnum; /* keep in sync with XCB */
 	dpy->last_request_read = 0;
 	dpy->default_screen = iscreen;  /* Value returned by ConnectDisplay */
 	dpy->last_req = (char *)&_dummy_request;
@@ -518,24 +502,8 @@
  */
 	LockDisplay(dpy);
 	{
-	    _XAsyncHandler async;
-	    _XBigReqState async_state;
-	    xQueryExtensionReq *qreq;
 	    xGetPropertyReply reply;
 	    xGetPropertyReq *req;
-	    xBigReqEnableReq *breq;
-	    xBigReqEnableReply brep;
-
-	    GetReq(QueryExtension, qreq);
-	    async_state.seq = dpy->request;
-	    async_state.opcode = 0;
-	    async.next = dpy->async_handlers;
-	    async.handler = _XBigReqHandler;
-	    async.data = (XPointer)&async_state;
-	    dpy->async_handlers = &async;
-	    qreq->nbytes = bignamelen;
-	    qreq->length += (bignamelen+3)>>2;
-	    Data(dpy, XBigReqExtensionName, bignamelen);
 
 	    GetReq (GetProperty, req);
 	    req->window = RootWindow(dpy, 0);
@@ -556,15 +524,12 @@
 		else if (reply.propertyType != None)
 		    _XEatData(dpy, reply.nItems * (reply.format >> 3));
 	    }
-	    DeqAsyncHandler(dpy, &async);
-	    if (async_state.opcode) {
-		GetReq(BigReqEnable, breq);
-		breq->reqType = async_state.opcode;
-		breq->brReqType = X_BigReqEnable;
-		if (_XReply(dpy, (xReply *)&brep, 0, xFalse))
-		    dpy->bigreq_size = brep.max_request_size;
-	    }
 	}
+
+	dpy->bigreq_size = XCBMaximumRequestLength(c);
+	if(dpy->bigreq_size <= dpy->max_request_size)
+		dpy->bigreq_size = 0;
+
 	UnlockDisplay(dpy);
 
 #ifdef MOTIFBC
@@ -582,32 +547,6 @@
  	return(dpy);
 }
 
-static Bool
-_XBigReqHandler(dpy, rep, buf, len, data)
-    register Display *dpy;
-    register xReply *rep;
-    char *buf;
-    int len;
-    XPointer data;
-{
-    _XBigReqState *state;
-    xQueryExtensionReply replbuf;
-    xQueryExtensionReply *repl;
-
-    state = (_XBigReqState *)data;
-    if (dpy->last_request_read != state->seq)
-	return False;
-    if (rep->generic.type == X_Error)
-	return True;
-    repl = (xQueryExtensionReply *)
-	_XGetAsyncReply(dpy, (char *)&replbuf, rep, buf, len,
-			(SIZEOF(xQueryExtensionReply) - SIZEOF(xReply)) >> 2,
-			True);
-    if (repl->present)
-	state->opcode = repl->major_opcode;
-    return True;
-}
-
 
 /* XFreeDisplayStructure frees all the storage associated with a 
  * Display.  It is used by XOpenDisplay if it runs out of memory,