aboutsummaryrefslogtreecommitdiff
path: root/src/solaris
diff options
context:
space:
mode:
authortdv <none@none>2008-05-14 09:16:18 -0700
committertdv <none@none>2008-05-14 09:16:18 -0700
commitc0983f42b77e2ef017e1b202c380c422d554eed4 (patch)
treeabdbfcfc2cd04aa19c56df0b9a66808f5bc03a7c /src/solaris
parent31cdf31a8daad05e76a1e5d8f10d427153f32c52 (diff)
downloadjdk8u_jdk-c0983f42b77e2ef017e1b202c380c422d554eed4.tar.gz
6604044: java crashes talking to second X screen
Reviewed-by: prr
Diffstat (limited to 'src/solaris')
-rw-r--r--src/solaris/native/sun/awt/awt_GraphicsEnv.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/solaris/native/sun/awt/awt_GraphicsEnv.c b/src/solaris/native/sun/awt/awt_GraphicsEnv.c
index 68299f7960..7f64a882fb 100644
--- a/src/solaris/native/sun/awt/awt_GraphicsEnv.c
+++ b/src/solaris/native/sun/awt/awt_GraphicsEnv.c
@@ -650,7 +650,7 @@ static void xinerama_init_linux()
if (XineramaQueryScreens != NULL) {
DTRACE_PRINTLN("calling XineramaQueryScreens func on Linux");
xinInfo = (*XineramaQueryScreens)(awt_display, &locNumScr);
- if (xinInfo != NULL) {
+ if (xinInfo != NULL && locNumScr > XScreenCount(awt_display)) {
int32_t idx;
DTRACE_PRINTLN("Enabling Xinerama support");
usingXinerama = True;
@@ -701,7 +701,8 @@ static void xinerama_init_solaris()
if (XineramaSolarisFunc != NULL) {
DTRACE_PRINTLN("calling XineramaGetInfo func on Solaris");
if ((*XineramaSolarisFunc)(awt_display, 0, &fbrects[0],
- &fbhints[0], &locNumScr) != 0)
+ &fbhints[0], &locNumScr) != 0 &&
+ locNumScr > XScreenCount(awt_display))
{
DTRACE_PRINTLN("Enabling Xinerama support");
usingXinerama = True;