summaryrefslogtreecommitdiffstats
path: root/libjava/jni
diff options
context:
space:
mode:
authorgreen <green@138bc75d-0d04-0410-961f-82ee72b054a4>2005-05-18 14:20:53 +0000
committergreen <green@138bc75d-0d04-0410-961f-82ee72b054a4>2005-05-18 14:20:53 +0000
commit67c4affe1b2455ccaee4e6f882fa72840e4f88b9 (patch)
treee1bb7b54d3a4998a94109fc23d7049a9867f87fb /libjava/jni
parentd0d17eb384e8ad619a03ec1b61a4cca1a0e32eb9 (diff)
downloadppe42-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.h4
-rw-r--r--libjava/jni/gtk-peer/gtk_jawt.c31
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);
+}
OpenPOWER on IntegriCloud