On 02/05/2015 04:03 PM, Robert Morell wrote:
On a system with many visuals, leaving the display connections open
until test cleanup can cause the test to fail when the server reaches
MAX_CLIENTS simultaneous connections.

Signed-off-by: Robert Morell <[email protected]>
---
  xts5/Xlib7/XStoreColor.m  | 10 +++++++++-
  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 35109f37ebb8..ae9f13d6325a 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 729e7a43c185..ab68bd0a076b 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());

Thanks for fixing this!

Pushed:
remote: Updating patchwork state for http://patchwork.freedesktop.org/project/Xorg/list/ remote: I: patch #41829 updated using rev 20e953e15a58c01a2e78d204d5eba67be11fb488.
remote: I: 1 patch(es) updated to state Accepted.
To git.freedesktop.org:/git/xorg/test/xts.git
   c7defe5f48f7..20e953e15a58  master -> master

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to