From aaad1aab82e57bc369e26f55a25b24fb77d9fd45 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Wed, 14 Feb 2001 07:38:31 +0000 Subject: 2.5.2.0 test2 --- CNativeCode/jawt_misc.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'CNativeCode/jawt_misc.c') diff --git a/CNativeCode/jawt_misc.c b/CNativeCode/jawt_misc.c index 25ed015..4696773 100644 --- a/CNativeCode/jawt_misc.c +++ b/CNativeCode/jawt_misc.c @@ -30,7 +30,7 @@ jawt_create_offscreen (JNIEnv *env, JAWTDataHolder **ppJData, jboolean verbose) (*ppJData)->dsi_win_created = 1; (*ppJData)->dsi_display = NULL; (*ppJData)->dsi_display_created = 1; - (*ppJData)->lock = 1; + (*ppJData)->lock = JAWT_LOCK_ERROR ; (*ppJData)->offScreen = 1; (*ppJData)->result = JNI_TRUE; @@ -224,10 +224,8 @@ jawt_lock (JNIEnv *env, JAWTDataHolder *pJData, jboolean ignoreSurfaceChanged, fprintf(stderr, "GL4Java-JAWT: lock failed -> JAWT_LOCK_SURFACE_CHANGED\n"); fflush(stderr); } - if(ignoreSurfaceChanged==JNI_TRUE) + if(ignoreSurfaceChanged==JNI_FALSE) { - pJData->lock = 0; - } else { pJData->result = JNI_FALSE; return pJData->result; } @@ -340,25 +338,27 @@ jawt_unlock (JNIEnv *env, JAWTDataHolder *pJData, jboolean verbose) } pJData->dsi=0; - // Unlock the drawing surface - pJData->ds->Unlock(pJData->ds); - exc = (*env)->ExceptionOccurred(env); - if(exc) { + // Unlock the drawing surface + if ( (pJData->lock & JAWT_LOCK_ERROR) == 0 ) + { + pJData->ds->Unlock(pJData->ds); + exc = (*env)->ExceptionOccurred(env); + if(exc) + { if(verbose) { fprintf(stderr, "GL4Java-JAWT: unlock failed -> unlock exception\n"); fflush(stderr); } - pJData->result = JNI_FALSE; + pJData->result = JNI_FALSE; if(verbose) - (*env)->ExceptionDescribe(env); - (*env)->ExceptionClear(env); - return pJData->result; + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + return pJData->result; + } + pJData->lock = 0; } - - pJData->lock = 0; - return JNI_TRUE; } -- cgit v1.2.3