summaryrefslogtreecommitdiffstats
path: root/libjava/classpath/native/jni/gtk-peer
diff options
context:
space:
mode:
authormark <mark@138bc75d-0d04-0410-961f-82ee72b054a4>2006-01-17 18:09:40 +0000
committermark <mark@138bc75d-0d04-0410-961f-82ee72b054a4>2006-01-17 18:09:40 +0000
commit2d8cf20d0d5ca6b1fbdefc22229d4b7cf1497ede (patch)
treec976ca91e3ef0bda3b34b37c0195145638d8d08e /libjava/classpath/native/jni/gtk-peer
parenta3ef37ddfeddcc5b0f1c5068d8fdeb25a302d5cd (diff)
downloadppe42-gcc-2d8cf20d0d5ca6b1fbdefc22229d4b7cf1497ede.tar.gz
ppe42-gcc-2d8cf20d0d5ca6b1fbdefc22229d4b7cf1497ede.zip
Imported GNU Classpath 0.20
* Makefile.am (AM_CPPFLAGS): Add classpath/include. * java/nio/charset/spi/CharsetProvider.java: New override file. * java/security/Security.java: Likewise. * sources.am: Regenerated. * Makefile.in: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109831 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/classpath/native/jni/gtk-peer')
-rw-r--r--libjava/classpath/native/jni/gtk-peer/Makefile.in10
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c20
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c33
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c1
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c3
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c1
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c14
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c1
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c6
9 files changed, 66 insertions, 23 deletions
diff --git a/libjava/classpath/native/jni/gtk-peer/Makefile.in b/libjava/classpath/native/jni/gtk-peer/Makefile.in
index 77ce68f0458..0296ce81fd1 100644
--- a/libjava/classpath/native/jni/gtk-peer/Makefile.in
+++ b/libjava/classpath/native/jni/gtk-peer/Makefile.in
@@ -44,10 +44,11 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
- $(top_srcdir)/m4/acinclude.m4 $(top_srcdir)/m4/iconv.m4 \
- $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
- $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
- $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/acinclude.m4 \
+ $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -238,6 +239,7 @@ JAY = @JAY@
JAY_SKELETON = @JAY_SKELETON@
JIKES = @JIKES@
JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
KJC = @KJC@
LDFLAGS = @LDFLAGS@
LIBDEBUG = @LIBDEBUG@
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
index cd7eee614b0..30f2d5e24cd 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
@@ -291,6 +291,10 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTextMetrics
const char *cstr = NULL;
jdouble *native_metrics = NULL;
PangoRectangle log;
+ PangoRectangle log2;
+ int line_count = 0;
+ int i = 0;
+ int width = 0;
gdk_threads_enter();
@@ -299,9 +303,17 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTextMetrics
cstr = (*env)->GetStringUTFChars (env, str, NULL);
g_assert(cstr != NULL);
-
+
pango_layout_set_text (pfont->layout, cstr, -1);
pango_layout_get_extents (pfont->layout, NULL, &log);
+
+ line_count = pango_layout_get_line_count (pfont->layout);
+ for (i = 0; i < line_count; i++)
+ {
+ pango_layout_line_get_extents (pango_layout_get_line (pfont->layout, i),
+ NULL, &log2);
+ width += log2.width;
+ }
(*env)->ReleaseStringUTFChars (env, str, cstr);
pango_layout_set_text (pfont->layout, "", -1);
@@ -315,12 +327,12 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTextMetrics
native_metrics[TEXT_METRICS_Y_BEARING]
= PANGO_PIXELS( ((double)log.y) );
- native_metrics[TEXT_METRICS_WIDTH]
- = PANGO_PIXELS( ((double)log.width) );
-
native_metrics[TEXT_METRICS_HEIGHT]
= PANGO_PIXELS( ((double)log.height) );
+ native_metrics[TEXT_METRICS_WIDTH]
+ = PANGO_PIXELS( ((double)width) );
+
native_metrics[TEXT_METRICS_X_ADVANCE]
= PANGO_PIXELS( ((double) (log.x + log.width)) );
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
index 4aca1cf57b9..f6e0e6bda15 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
@@ -99,7 +99,7 @@ static GdkPoint *translate_points (JNIEnv *env, jintArray xpoints,
static void realize_cb (GtkWidget *widget, jobject jgraphics);
JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGraphics_copyState
+Java_gnu_java_awt_peer_gtk_GdkGraphics_nativeCopyState
(JNIEnv *env, jobject obj, jobject old)
{
struct graphics *g = NULL;
@@ -236,7 +236,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_connectSignals
}
JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGraphics_dispose
+Java_gnu_java_awt_peer_gtk_GdkGraphics_nativeDispose
(JNIEnv *env, jobject obj)
{
struct graphics *g = NULL;
@@ -291,6 +291,11 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_drawString
struct peerfont *pfont = NULL;
struct graphics *g = NULL;
const char *cstr = NULL;
+ const char *sTmp = NULL;
+ char *tmp = NULL;
+ char *p = NULL;
+ int count = 0;
+ int charSize = 0;
int baseline_y = 0;
PangoLayoutIter *iter = NULL;
@@ -303,9 +308,29 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_drawString
g_assert (pfont != NULL);
cstr = (*env)->GetStringUTFChars (env, str, NULL);
+ g_assert (cstr != NULL);
+
+ charSize = sizeof(char);
+ p = malloc((strlen(cstr) + 1) * charSize);
+ g_assert (p != NULL);
+
+ tmp = p;
+ sTmp = cstr;
+ for (; *sTmp != '\0'; sTmp++)
+ if (((unsigned char) *sTmp) >= ' ')
+ {
+ *p = *sTmp;
+ count++;
+ p++;
+ }
+ *p = '\0';
+
+ p = realloc(tmp, (count + 1) * charSize);
+ g_assert (p != NULL);
+ pango_layout_set_text (pfont->layout, p, -1);
+ free(p);
pango_layout_set_font_description (pfont->layout, pfont->desc);
- pango_layout_set_text (pfont->layout, cstr, -1);
iter = pango_layout_get_iter (pfont->layout);
baseline_y = pango_layout_iter_get_baseline (iter);
@@ -317,7 +342,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_drawString
pango_layout_iter_free (iter);
pango_layout_set_text (pfont->layout, "", -1);
-
+
gdk_flush ();
(*env)->ReleaseStringUTFChars (env, str, cstr);
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c
index 0467c3c7acd..7662800f000 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c
@@ -71,6 +71,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetFontFamilies
const char *name_tmp = pango_font_family_get_name (families[idx]);
jstring name = (*env)->NewStringUTF (env, name_tmp);
(*env)->SetObjectArrayElement (env, family_name, idx, name);
+ (*env)->DeleteLocalRef(env, name);
}
g_free (families);
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
index 74103b5daab..4d6169b85e5 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
@@ -270,6 +270,8 @@ query_formats (JNIEnv *env, jclass clazz)
(*env)->DeleteLocalRef(env, string);
++ch;
}
+
+ (*env)->DeleteLocalRef(env, jformat);
}
g_slist_free(formats);
@@ -376,6 +378,7 @@ save_to_stream(const gchar *buf,
(*(ssr->env))->ReleaseByteArrayElements ((ssr->env), jbuf, cbuf, 0);
(*(ssr->env))->CallVoidMethod ((ssr->env), *(ssr->stream),
dataOutputWriteID, jbuf);
+ (*(ssr->env))->DeleteLocalRef((ssr->env), jbuf);
gdk_threads_enter ();
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
index c5bf5a353ff..e9a0f693e1a 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
@@ -121,6 +121,7 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_append
gtk_combo_box_append_text (GTK_COMBO_BOX (ptr), label);
(*env)->ReleaseStringUTFChars (env, item, label);
+ (*env)->DeleteLocalRef(env, item);
}
gdk_threads_leave ();
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
index 779be57235d..3b62dc3357f 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
@@ -53,11 +53,7 @@ jstring cp_gtk_imageTarget;
jstring cp_gtk_filesTarget;
/* Simple id to keep track of the selection we are currently managing. */
-#if SIZEOF_VOID_P == 8
-static long current_selection = 0;
-#else
-static int current_selection = 0;
-#endif
+static gint current_selection = 0;
/* Whether we "own" the clipboard. And may clear it. */
static int owner = 0;
@@ -265,11 +261,7 @@ static void
clipboard_clear_func (GtkClipboard *clipboard __attribute__((unused)),
gpointer user_data)
{
-#if SIZEOF_VOID_P == 8
- if (owner && (long) user_data == current_selection)
-#else
- if (owner && (int) user_data == current_selection)
-#endif
+ if (owner && GPOINTER_TO_INT(user_data) == current_selection)
{
JNIEnv *env = cp_gtk_gdk_env();
owner = 0;
@@ -359,7 +351,7 @@ Java_gnu_java_awt_peer_gtk_GtkClipboard_advertiseContent
if (gtk_clipboard_set_with_data (cp_gtk_clipboard, targets, n,
clipboard_get_func,
clipboard_clear_func,
- (gpointer) current_selection))
+ GINT_TO_POINTER(current_selection)))
{
owner = 1;
if (gtk_clipboard_instance == NULL)
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
index fc89ab71ced..6da42cec6c3 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
@@ -239,6 +239,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_append
COLUMN_STRING, text,
-1);
(*env)->ReleaseStringUTFChars (env, item, text);
+ (*env)->DeleteLocalRef(env, item);
}
gdk_threads_leave ();
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c
index f744e90adff..3244d236422 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c
@@ -130,6 +130,7 @@ clipboard_targets_received (GtkClipboard *clipboard
break;
(*env)->SetObjectArrayElement (env, strings, i++,
string);
+ (*env)->DeleteLocalRef (env, string);
}
}
}
@@ -201,6 +202,10 @@ clipboard_text_received (GtkClipboard *clipboard
textAvailableID,
string);
(*env)->DeleteGlobalRef (env, selection_obj);
+
+ if (string != NULL)
+ (*env)->DeleteLocalRef (env, string);
+
}
JNIEXPORT void JNICALL
@@ -324,6 +329,7 @@ clipboard_uris_received (GtkClipboard *clipboard
if (string == NULL)
break;
(*env)->SetObjectArrayElement (env, strings, i, string);
+ (*env)->DeleteLocalRef (env, string);
}
}
g_strfreev (uris);
OpenPOWER on IntegriCloud