From d23cfa7fb93fc22ea11fd25d50aecb10582e32b2 Mon Sep 17 00:00:00 2001 From: marha Date: Tue, 24 Aug 2010 09:19:29 +0000 Subject: libX11 git update 24/8/2010 --- libX11/src/OpenDis.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'libX11/src/OpenDis.c') diff --git a/libX11/src/OpenDis.c b/libX11/src/OpenDis.c index 54729e8fd..0b779b0ad 100644 --- a/libX11/src/OpenDis.c +++ b/libX11/src/OpenDis.c @@ -69,7 +69,6 @@ XOpenDisplay ( int j, k; /* random iterator indexes */ char *display_name; /* pointer to display name */ char *setup = NULL; /* memory allocated at startup */ - char *fullname = NULL; /* expanded name of display */ int iscreen; /* screen number */ xConnSetupPrefix prefix; /* prefix information */ int vendorlen; /* length of vendor string */ @@ -117,13 +116,17 @@ XOpenDisplay ( return(NULL); } + if ((dpy->display_name = strdup(display_name)) == NULL) { + OutOfMemory(dpy); + return(NULL); + } + /* * Call the Connect routine to get the transport connection object. - * If NULL is returned, the connection failed. The connect routine - * will set fullname to point to the expanded name. + * If NULL is returned, the connection failed. */ - if(!_XConnectXCB(dpy, display, &fullname, &iscreen)) { + if(!_XConnectXCB(dpy, display, &iscreen)) { /* Try falling back on other transports if no transport specified */ const char *slash = strrchr(display_name, '/'); if(slash == NULL) { @@ -135,14 +138,13 @@ XOpenDisplay ( if(buf) { for(s = protocols; buf && *s; s++) { snprintf(buf, buf_size, "%s/%s", *s, display_name); - if(_XConnectXCB(dpy, buf, &fullname, &iscreen)) + if(_XConnectXCB(dpy, buf, &iscreen)) goto fallback_success; } Xfree(buf); } } - dpy->display_name = fullname; OutOfMemory(dpy); return NULL; } @@ -152,7 +154,6 @@ fallback_success: * Initialize pointers to NULL so that XFreeDisplayStructure will * work if we run out of memory before we finish initializing. */ - dpy->display_name = fullname; dpy->keysyms = (KeySym *) NULL; dpy->modifiermap = NULL; dpy->lock_meaning = NoSymbol; @@ -314,7 +315,7 @@ fallback_success: if (!mask) { fprintf (stderr, "Xlib: connection to \"%s\" invalid setup\n", - fullname); + dpy->display_name); OutOfMemory(dpy); return (NULL); } @@ -678,8 +679,7 @@ void _XFreeDisplayStructure(Display *dpy) Xfree ((char *)dpy->pixmap_format); } - if (dpy->display_name) - Xfree (dpy->display_name); + free(dpy->display_name); if (dpy->vendor) Xfree (dpy->vendor); -- cgit v1.2.3