projects
/
free-sw
/
xcb
/
libxcb
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
622b599
)
Add 32-bit full_sequence fields to generic errors and events, so callers can always...
author
Jamey Sharp
<jamey@minilop.net>
Fri, 3 Mar 2006 09:45:00 +0000
(
01:45
-0800)
committer
Jamey Sharp
<jamey@minilop.net>
Fri, 3 Mar 2006 09:45:00 +0000
(
01:45
-0800)
src/xcb.h
patch
|
blob
|
history
src/xcb_in.c
patch
|
blob
|
history
diff --git
a/src/xcb.h
b/src/xcb.h
index
8dd308a
..
ee87a99
100644
(file)
--- a/
src/xcb.h
+++ b/
src/xcb.h
@@
-80,12
+80,16
@@
typedef struct {
BYTE response_type;
CARD8 pad0;
CARD16 sequence;
+ CARD32 pad[7];
+ CARD32 full_sequence;
} XCBGenericEvent;
typedef struct {
BYTE response_type;
BYTE error_code;
CARD16 sequence;
+ CARD32 pad[7];
+ CARD32 full_sequence;
} XCBGenericError;
typedef struct {
diff --git
a/src/xcb_in.c
b/src/xcb_in.c
index
cacb220
..
cf7dbe7
100644
(file)
--- a/
src/xcb_in.c
+++ b/
src/xcb_in.c
@@
-133,7
+133,7
@@
static int read_packet(XCBConnection *c)
length += genrep.length * 4;
}
- buf = malloc(length);
+ buf = malloc(length
+ (genrep.response_type == 1 ? 0 : sizeof(CARD32))
);
if(!buf)
return 0;
if(_xcb_in_read_block(c, buf, length) <= 0)
@@
-142,6
+142,9
@@
static int read_packet(XCBConnection *c)
return 0;
}
+ if(genrep.response_type != 1)
+ ((XCBGenericEvent *) buf)->full_sequence = c->in.request_read;
+
/* reply, or checked error */
if(genrep.response_type == 1 || (genrep.response_type == 0 && pend && (pend->flags & XCB_REQUEST_CHECKED)))
{