summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJamey Sharp <jamey@minilop.net>2006-09-15 00:39:51 -0700
committerJamey Sharp <jamey@minilop.net>2006-09-21 15:17:18 -0700
commit0aa96bfc7abe18889cd85bfaa05b05d53e572bb1 (patch)
tree65a41c93dd681cd21203a8b7ac48d53e0501537f
parentac17ae62fe1a3a29991e36e35eeee838ac4acb00 (diff)
Convert connection functions to return error objects.
-rw-r--r--src/xcb_conn.c6
-rw-r--r--src/xcb_util.c10
2 files changed, 10 insertions, 6 deletions
diff --git a/src/xcb_conn.c b/src/xcb_conn.c
index b0d727b..0176524 100644
--- a/src/xcb_conn.c
+++ b/src/xcb_conn.c
@@ -44,6 +44,8 @@ typedef struct {
CARD16 length;
} XCBSetupGeneric;
+static const int error_connection = 1;
+
static int set_fd_flags(const int fd)
{
long flags = fcntl(fd, F_GETFL, 0);
@@ -199,7 +201,7 @@ XCBConnection *XCBConnectToFD(int fd, XCBAuthInfo *auth_info)
c = calloc(1, sizeof(XCBConnection));
if(!c)
- return 0;
+ return (XCBConnection *) &error_connection;
c->fd = fd;
@@ -215,7 +217,7 @@ XCBConnection *XCBConnectToFD(int fd, XCBAuthInfo *auth_info)
))
{
XCBDisconnect(c);
- return 0;
+ return (XCBConnection *) &error_connection;
}
return c;
diff --git a/src/xcb_util.c b/src/xcb_util.c
index 3bdcd36..d93353b 100644
--- a/src/xcb_util.c
+++ b/src/xcb_util.c
@@ -45,6 +45,8 @@
#include "xcbext.h"
#include "xcbint.h"
+static const int error_connection = 1;
+
int XCBPopcount(CARD32 mask)
{
unsigned long y;
@@ -212,11 +214,11 @@ XCBConnection *XCBConnect(const char *displayname, int *screenp)
XCBAuthInfo auth;
if(!XCBParseDisplay(displayname, &host, &display, screenp))
- return 0;
+ return (XCBConnection *) &error_connection;
fd = _xcb_open(host, display);
free(host);
if(fd == -1)
- return 0;
+ return (XCBConnection *) &error_connection;
_xcb_get_auth_info(fd, &auth);
c = XCBConnectToFD(fd, &auth);
@@ -231,11 +233,11 @@ XCBConnection *XCBConnectToDisplayWithAuthInfo(const char *displayname, XCBAuthI
char *host;
if(!XCBParseDisplay(displayname, &host, &display, screenp))
- return 0;
+ return (XCBConnection *) &error_connection;
fd = _xcb_open(host, display);
free(host);
if(fd == -1)
- return 0;
+ return (XCBConnection *) &error_connection;
return XCBConnectToFD(fd, auth);
}