diff options
-rw-r--r-- | xts5/Xlib7/XStoreColor.m | 10 | ||||
-rw-r--r-- | xts5/Xlib7/XStoreColors.m | 10 |
2 files changed, 18 insertions, 2 deletions
diff --git a/xts5/Xlib7/XStoreColor.m b/xts5/Xlib7/XStoreColor.m index 35109f37..ae9f13d6 100644 --- a/xts5/Xlib7/XStoreColor.m +++ b/xts5/Xlib7/XStoreColor.m @@ -377,10 +377,15 @@ unsigned long i; if(i == maxsize(vp)) CHECK; - disp2 = opendisplay(); + disp2 = XOpenDisplay(config.display); + if (!disp2) { + delete("XOpenDisplay() failed."); + return; + } if(XAllocColor(disp2, colormap, &testcol) == False) { delete("XAllocColor() failed to allocate a r/o cell for a second client."); + XCloseDisplay(disp2); return; } else CHECK; @@ -397,6 +402,7 @@ unsigned long i; if(XAllocColor(display, colormap, &testcol) == False) { delete("XAllocColor() failed to allocate a r/o cell"); + XCloseDisplay(disp2); return; } else CHECK; @@ -406,6 +412,8 @@ unsigned long i; XCALL; if(geterr() == BadAccess) CHECK; + + XCloseDisplay(disp2); } CHECKPASS(5*nvinf()); diff --git a/xts5/Xlib7/XStoreColors.m b/xts5/Xlib7/XStoreColors.m index 729e7a43..ab68bd0a 100644 --- a/xts5/Xlib7/XStoreColors.m +++ b/xts5/Xlib7/XStoreColors.m @@ -564,10 +564,15 @@ unsigned long i; } trace("Open second client connection."); - disp2 = opendisplay(); + disp2 = XOpenDisplay(config.display); + if (!disp2) { + delete("XOpenDisplay() failed."); + return; + } if(XAllocColor(disp2, colormap, &testcol[0]) == False) { delete("XAllocColor() failed to allocate a r/o cell for a second client."); + XCloseDisplay(disp2); return; } else CHECK; @@ -581,6 +586,7 @@ unsigned long i; if(XAllocColor(display, colormap, &testcol[1]) == False) { delete("XAllocColor() failed to allocate a r/o cell"); + XCloseDisplay(disp2); return; } else CHECK; @@ -591,6 +597,8 @@ unsigned long i; XCALL; if(geterr() == BadAccess) CHECK; + + XCloseDisplay(disp2); } CHECKPASS(6*nvinf()); |