src/solaris/native/sun/java2d/opengl/GLXSurfaceData.c

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this
*** 46,57 **** extern DisposeFunc OGLSD_Dispose; extern void OGLSD_SetNativeDimensions(JNIEnv *env, OGLSDOps *oglsdo, jint w, jint h); - jboolean surfaceCreationFailed = JNI_FALSE; - #endif /* !HEADLESS */ JNIEXPORT void JNICALL Java_sun_java2d_opengl_GLXSurfaceData_initOps(JNIEnv *env, jobject glxsd, jobject peer, jlong aData) --- 46,55 ----
*** 346,367 **** oglsdo->width, oglsdo->height); return JNI_TRUE; } - static int - GLXSD_BadAllocXErrHandler(Display *display, XErrorEvent *xerr) - { - int ret = 0; - if (xerr->error_code == BadAlloc) { - surfaceCreationFailed = JNI_TRUE; - } else { - ret = (*xerror_saved_handler)(display, xerr); - } - return ret; - } - JNIEXPORT jboolean JNICALL Java_sun_java2d_opengl_GLXSurfaceData_initPbuffer (JNIEnv *env, jobject glxsd, jlong pData, jlong pConfigInfo, jboolean isOpaque, --- 344,353 ----
*** 400,415 **** } attrlist[1] = width; attrlist[3] = height; ! surfaceCreationFailed = JNI_FALSE; ! EXEC_WITH_XERROR_HANDLER( ! GLXSD_BadAllocXErrHandler, ! pbuffer = j2d_glXCreatePbuffer(awt_display, ! glxinfo->fbconfig, attrlist)); ! if ((pbuffer == 0) || surfaceCreationFailed) { J2dRlsTraceLn(J2D_TRACE_ERROR, "GLXSurfaceData_initPbuffer: could not create glx pbuffer"); return JNI_FALSE; } --- 386,403 ---- } attrlist[1] = width; attrlist[3] = height; ! AWT_LOCK(); ! jboolean errorOccurredFlag = JNI_FALSE; ! EXEC_WITH_XERROR_HANDLER(env, "sun/awt/X11/XErrorHandler$GLXBadAllocHandler", ! "()Lsun/awt/X11/XErrorHandler$GLXBadAllocHandler;", JNI_TRUE, errorOccurredFlag, ! pbuffer = j2d_glXCreatePbuffer(awt_display, glxinfo->fbconfig, attrlist)); ! AWT_UNLOCK(); ! ! if ((pbuffer == 0) || errorOccurredFlag) { J2dRlsTraceLn(J2D_TRACE_ERROR, "GLXSurfaceData_initPbuffer: could not create glx pbuffer"); return JNI_FALSE; }