This patch fixes some seg faults fitzsim found when running a couple of
Sun's demo applets. I have added a link to these demos on the wiki.
2006-06-20 Lillian Angel <[EMAIL PROTECTED]>
* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
(create): Added check to prevent Seg Fault. Should not
set the label if it is null.
* gnu/java/awt/peer/gtk/GtkLabelPeer.java
(setText): Changed to be a non-native function. Calls
setNativeText if the String parameter is non-null.
(setNativeText): Replaces old native setText function.
* include/gnu_java_awt_peer_gtk_GtkLabelPeer.h: Regenerated.
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c
(Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setText): Removed.
Replaced by
Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setNativeText.
(Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setNativeText):
Replaced Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setText.
Index: gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkCheckboxPeer.java,v
retrieving revision 1.24
diff -u -r1.24 GtkCheckboxPeer.java
--- gnu/java/awt/peer/gtk/GtkCheckboxPeer.java 22 Feb 2006 14:47:50 -0000 1.24
+++ gnu/java/awt/peer/gtk/GtkCheckboxPeer.java 20 Jun 2006 20:32:16 -0000
@@ -78,7 +78,10 @@
create (old_group);
currentState = checkbox.getState();
gtkToggleButtonSetActive(currentState);
- gtkButtonSetLabel (checkbox.getLabel ());
+
+ String label = checkbox.getLabel();
+ if (label != null)
+ gtkButtonSetLabel(label);
}
/**
Index: gnu/java/awt/peer/gtk/GtkLabelPeer.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkLabelPeer.java,v
retrieving revision 1.25
diff -u -r1.25 GtkLabelPeer.java
--- gnu/java/awt/peer/gtk/GtkLabelPeer.java 13 Feb 2006 18:57:03 -0000 1.25
+++ gnu/java/awt/peer/gtk/GtkLabelPeer.java 20 Jun 2006 20:32:16 -0000
@@ -56,7 +56,7 @@
native void nativeSetAlignment (float alignment);
- public native void setText(String text);
+ public native void setNativeText(String text);
native void setNativeBounds (int x, int y, int width, int height);
// Because this is a composite widget, we need to retrieve the
@@ -69,6 +69,12 @@
create (label.getText (), getGtkAlignment (label.getAlignment ()));
}
+ public void setText(String text)
+ {
+ if (text != null)
+ setNativeText(text);
+ }
+
public GtkLabelPeer (Label l)
{
super (l);
Index: include/gnu_java_awt_peer_gtk_GtkLabelPeer.h
===================================================================
RCS file: /cvsroot/classpath/classpath/include/gnu_java_awt_peer_gtk_GtkLabelPeer.h,v
retrieving revision 1.11
diff -u -r1.11 gnu_java_awt_peer_gtk_GtkLabelPeer.h
--- include/gnu_java_awt_peer_gtk_GtkLabelPeer.h 30 Apr 2006 10:37:36 -0000 1.11
+++ include/gnu_java_awt_peer_gtk_GtkLabelPeer.h 20 Jun 2006 20:32:17 -0000
@@ -13,7 +13,7 @@
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkLabelPeer_create (JNIEnv *env, jobject, jstring, jfloat);
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkLabelPeer_gtkWidgetModifyFont (JNIEnv *env, jobject, jstring, jint, jint);
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkLabelPeer_nativeSetAlignment (JNIEnv *env, jobject, jfloat);
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setText (JNIEnv *env, jobject, jstring);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setNativeText (JNIEnv *env, jobject, jstring);
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setNativeBounds (JNIEnv *env, jobject, jint, jint, jint, jint);
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkLabelPeer_gtkWidgetGetPreferredDimensions (JNIEnv *env, jobject, jintArray);
Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c
===================================================================
RCS file: /cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c,v
retrieving revision 1.17
diff -u -r1.17 gnu_java_awt_peer_gtk_GtkLabelPeer.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c 12 Aug 2005 22:49:42 -0000 1.17
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c 20 Jun 2006 20:32:17 -0000
@@ -147,7 +147,7 @@
}
JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setText
+Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setNativeText
(JNIEnv *env, jobject obj, jstring text)
{
const char *str;