From: Jamey Sharp Date: Fri, 24 Feb 2006 08:59:08 +0000 (-0800) Subject: Coalesce readn into _xcb_in_read and simplify. X-Git-Url: http://git.demorecorder.com/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e1c2777abac0479ebdf06f2005120d25fff53935;p=free-sw%2Fxcb%2Flibxcb Coalesce readn into _xcb_in_read and simplify. --- diff --git a/src/xcb_in.c b/src/xcb_in.c index 4a62a48..ead0178 100644 --- a/src/xcb_in.c +++ b/src/xcb_in.c @@ -69,14 +69,6 @@ static void wake_up_next_reader(XCBConnection *c) assert(pthreadret == 0); } -static int readn(const int fd, void *buf, const int buflen, int *count) -{ - int n = read(fd, ((char *) buf) + *count, buflen - *count); - if(n > 0) - *count += n; - return n; -} - static int read_packet(XCBConnection *c) { XCBGenericRep genrep; @@ -336,7 +328,9 @@ int _xcb_in_expect_reply(XCBConnection *c, unsigned int request, enum workaround int _xcb_in_read(XCBConnection *c) { - int n = readn(c->fd, c->in.queue, sizeof(c->in.queue), &c->in.queue_len); + int n = read(c->fd, c->in.queue + c->in.queue_len, sizeof(c->in.queue) - c->in.queue_len); + if(n > 0) + c->in.queue_len += n; while(read_packet(c)) /* empty */; return (n > 0) || (n < 0 && errno == EAGAIN);