[PATCH libX11 3/4] include: Add GetReqSized() for request buffers of specific size

Peter Hutterer peter.hutterer at who-t.net
Wed Oct 26 21:21:27 PDT 2011


Some XI2 requests change in size over different versions and libXi would
need to hack around GetReq and GetReqExtra. Add a new GetReqSized so the
library can explicitly specify the size of the request in 4-byte units.

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 include/X11/Xlibint.h |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/include/X11/Xlibint.h b/include/X11/Xlibint.h
index 01087b8..9d75d06 100644
--- a/include/X11/Xlibint.h
+++ b/include/X11/Xlibint.h
@@ -433,6 +433,18 @@ extern LockInfoPtr _Xglobal_lock;
  */
 extern void *_XGetRequest(Display *dpy, CARD8 type, size_t len);
 
+/* GetReqSized is the same as GetReq but allows the caller to specify the
+ * size in bytes. 'sz' must be a multiple of 4! */
+
+#if !defined(UNIXCPP) || defined(ANSICPP)
+#define GetReqSized(name, sz, req) \
+	req = (x##name##Req *) _XGetRequest(dpy, X_##name, sz)
+#else
+#define GetReqSized(name, sz, req) \
+	req = (x/**/name/**/Req *) _XGetRequest(dpy, X_/**/name, sz)
+#endif
+
+
 /*
  * GetReq - Get the next available X request packet in the buffer and
  * return it.
-- 
1.7.7



More information about the xorg-devel mailing list