Commit 8108f998 by Archie Cobbs Committed by Michael Koch

gnu_java_awt_peer_gtk_GdkPixbufDecoder.c: use DeleteLocalRef() to avoid…

gnu_java_awt_peer_gtk_GdkPixbufDecoder.c: use DeleteLocalRef() to avoid exhausting local native references.

2005-05-06  Archie Cobbs  <archie@dellroad.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c:
	use DeleteLocalRef() to avoid exhausting local native references.

From-SVN: r99302
parent 9b8d7b42
2005-05-06 Archie Cobbs <archie@dellroad.org>
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c:
use DeleteLocalRef() to avoid exhausting local native references.
2005-05-06 Mark Wielaard <mark@klomp.org> 2005-05-06 Mark Wielaard <mark@klomp.org>
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c: * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c:
......
...@@ -206,6 +206,7 @@ query_formats (JNIEnv *env, jclass clazz) ...@@ -206,6 +206,7 @@ query_formats (JNIEnv *env, jclass clazz)
jclass formatClass; jclass formatClass;
jmethodID addExtensionID; jmethodID addExtensionID;
jmethodID addMimeTypeID; jmethodID addMimeTypeID;
jobject string;
formatClass = (*env)->FindClass formatClass = (*env)->FindClass
(env, "gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec"); (env, "gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec");
...@@ -227,26 +228,33 @@ query_formats (JNIEnv *env, jclass clazz) ...@@ -227,26 +228,33 @@ query_formats (JNIEnv *env, jclass clazz)
format = (GdkPixbufFormat *) f->data; format = (GdkPixbufFormat *) f->data;
name = gdk_pixbuf_format_get_name(format); name = gdk_pixbuf_format_get_name(format);
string = (*env)->NewStringUTF(env, name);
g_assert(string != NULL);
jformat = (*env)->CallStaticObjectMethod jformat = (*env)->CallStaticObjectMethod
(env, clazz, registerFormatID, (env, clazz, registerFormatID, string,
(*env)->NewStringUTF(env, name),
(jboolean) gdk_pixbuf_format_is_writable(format)); (jboolean) gdk_pixbuf_format_is_writable(format));
(*env)->DeleteLocalRef(env, string);
g_assert(jformat != NULL); g_assert(jformat != NULL);
ch = gdk_pixbuf_format_get_extensions(format); ch = gdk_pixbuf_format_get_extensions(format);
while (*ch) while (*ch)
{ {
(*env)->CallVoidMethod (env, jformat, addExtensionID, string = (*env)->NewStringUTF(env, *ch);
(*env)->NewStringUTF(env, *ch)); g_assert(string != NULL);
(*env)->CallVoidMethod (env, jformat, addExtensionID, string);
(*env)->DeleteLocalRef(env, string);
++ch; ++ch;
} }
ch = gdk_pixbuf_format_get_mime_types(format); ch = gdk_pixbuf_format_get_mime_types(format);
while (*ch) while (*ch)
{ {
(*env)->CallVoidMethod (env, jformat, addMimeTypeID, string = (*env)->NewStringUTF(env, *ch);
(*env)->NewStringUTF(env, *ch)); g_assert(string != NULL);
(*env)->CallVoidMethod (env, jformat, addMimeTypeID, string);
(*env)->DeleteLocalRef(env, string);
++ch; ++ch;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment