diff options
| author | green <green@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-05-18 14:20:53 +0000 |
|---|---|---|
| committer | green <green@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-05-18 14:20:53 +0000 |
| commit | 67c4affe1b2455ccaee4e6f882fa72840e4f88b9 (patch) | |
| tree | e1bb7b54d3a4998a94109fc23d7049a9867f87fb /libjava/jni | |
| parent | d0d17eb384e8ad619a03ec1b61a4cca1a0e32eb9 (diff) | |
| download | ppe42-gcc-67c4affe1b2455ccaee4e6f882fa72840e4f88b9.tar.gz ppe42-gcc-67c4affe1b2455ccaee4e6f882fa72840e4f88b9.zip | |
2005-05-18 Anthony Green <green@redhat.com>
* jni/gtk-peer/gtk_jawt.c (classpath_jawt_object_lock,
classpath_jawt_object_unlock, classpath_jawt_create_lock,
classpath_jawt_destroy_lock): New functions.
* jni/classpath/classpath_jawt.h (classpath_jawt_object_lock,
classpath_jawt_object_unlock, classpath_jawt_create_lock,
classpath_jawt_destroy_lock): New functions.
* include/jawt.h (struct _JAWT_DrawingSurface): Add lock
field.
* jawt.c: #include malloc.h.
(_Jv_Lock): Use lock.
(_Jv_Unlock): Ditto.
(_Jv_GetDrawingSurface): Initialize lock.
(_Jv_FreeDrawingSurface): Destroy lock.
(_Jv_FreeDrawingSurfaceInfo): Free platformInfo.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99903 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/jni')
| -rw-r--r-- | libjava/jni/classpath/classpath_jawt.h | 4 | ||||
| -rw-r--r-- | libjava/jni/gtk-peer/gtk_jawt.c | 31 |
2 files changed, 35 insertions, 0 deletions
diff --git a/libjava/jni/classpath/classpath_jawt.h b/libjava/jni/classpath/classpath_jawt.h index 1629505ac5c..6ff5c53355e 100644 --- a/libjava/jni/classpath/classpath_jawt.h +++ b/libjava/jni/classpath/classpath_jawt.h @@ -54,7 +54,11 @@ jint classpath_jawt_get_awt_version (); Display* classpath_jawt_get_default_display (JNIEnv* env, jobject canvas); Drawable classpath_jawt_get_drawable (JNIEnv* env, jobject canvas); VisualID classpath_jawt_get_visualID (JNIEnv* env, jobject canvas); +jint classpath_jawt_object_lock (jobject lock); +void classpath_jawt_object_unlock (jobject lock); jint classpath_jawt_lock (); void classpath_jawt_unlock (); +jobject classpath_jawt_create_lock (); +void classpath_jawt_destroy_lock (jobject lock); #endif /* __classpath_jawt_h__ */ diff --git a/libjava/jni/gtk-peer/gtk_jawt.c b/libjava/jni/gtk-peer/gtk_jawt.c index cba3b1509ec..ed5f3f55ba5 100644 --- a/libjava/jni/gtk-peer/gtk_jawt.c +++ b/libjava/jni/gtk-peer/gtk_jawt.c @@ -153,6 +153,21 @@ classpath_jawt_get_drawable (JNIEnv* env, jobject canvas) } jint +classpath_jawt_object_lock (jobject lock) +{ + JNIEnv *env = gdk_env(); + (*env)->MonitorEnter (env, lock); + return 0; +} + +void +classpath_jawt_object_unlock (jobject lock) +{ + JNIEnv *env = gdk_env(); + (*env)->MonitorExit (env, lock); +} + +jint classpath_jawt_lock () { gdk_threads_enter (); @@ -164,3 +179,19 @@ classpath_jawt_unlock () { gdk_threads_leave (); } + +jobject +classpath_jawt_create_lock () +{ + JNIEnv *env = gdk_env (); + jobject lock = (*env)->NewStringUTF (env, "jawt-lock"); + NSA_SET_GLOBAL_REF (env, lock); + return lock; +} + +void +classpath_jawt_destroy_lock (jobject lock) +{ + JNIEnv *env = gdk_env (); + NSA_DEL_GLOBAL_REF (env, lock); +} |

