This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch][gui] warning patrol no 3 gtk-peer stuff


Hi all,

I commit the attached patch and leave the gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c out for now.

We need further discussion about.

Thanks for heavy review.

Andreas


2004-10-25 Andreas Tobler <a.tobler@schweiz.ch>


	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetFilenameFilter):
	Fix pointer warning.

	* jni/gtk-peer/gtkpeer.h: Introduce widget_union to fix type punned
	warnings.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_clearRect): Use widget_union
	to fix type punned pointer warning.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c (pre_event_handler):
	Likewise.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(window_get_new_state): Introduce unions to fix warnings as above.
	(window_property_changed_cb): Likewise.
	(window_active_state_change_cb): Mark unused variables unused.
	(window_focus_state_change_cb): Likewise.
	(window_focus_in_cb): Likewise.
	(window_focus_out_cb): Likewise.

	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
	(Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont): Convert
	PangoFontMap correctly with PANGO_FT2FONT_MAP macro.

Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
===================================================================
RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/Attic/gnu_java_awt_peer_gtk_GdkFontPeer.c,v
retrieving revision 1.1.2.1
diff -u -r1.1.2.1 gnu_java_awt_peer_gtk_GdkFontPeer.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c	4 Oct 2004 16:45:49 -0000	1.1.2.1
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c	25 Oct 2004 21:10:01 -0000
@@ -114,6 +114,7 @@
   struct peerfont *pfont = NULL;
   char const *family_name = NULL;
   enum java_awt_font_style style;
+  PangoFT2FontMap *ft2_map;
 
   gdk_threads_enter ();
   style = (enum java_awt_font_style) style_int;
@@ -148,7 +149,10 @@
   if (useGraphics2D)
     {
       if (pfont->ctx == NULL)
-	pfont->ctx = pango_ft2_font_map_create_context (pango_ft2_font_map_for_display ());  
+	{
+	  ft2_map = PANGO_FT2_FONT_MAP(pango_ft2_font_map_for_display ());
+	  pfont->ctx = pango_ft2_font_map_create_context (ft2_map);
+	}
     }
   else
     {
Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
===================================================================
RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c,v
retrieving revision 1.5.2.11
diff -u -r1.5.2.11 gnu_java_awt_peer_gtk_GdkGraphics.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c	21 Oct 2004 21:45:05 -0000	1.5.2.11
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c	25 Oct 2004 21:10:02 -0000
@@ -419,13 +419,15 @@
   struct graphics *g;
   GdkGCValues saved;
   GtkWidget *widget;
+  union widget_union w;
 
   g = (struct graphics *) NSA_GET_PTR (env, obj);
 
   gdk_threads_enter ();
   if (GDK_IS_WINDOW (g->drawable))
     {
-      gdk_window_get_user_data (GDK_WINDOW (g->drawable), (void **) &widget);
+      w.widget = &widget;
+      gdk_window_get_user_data (GDK_WINDOW (g->drawable), w.void_widget);
       if (widget == NULL || !GTK_IS_EVENT_BOX (widget))
         gdk_window_clear_area ((GdkWindow *) g->drawable,
                                x + g->x_offset, y + g->y_offset,
Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c
===================================================================
RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c,v
retrieving revision 1.19.2.13
diff -u -r1.19.2.13 gnu_java_awt_peer_gtk_GtkEvents.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c	21 Oct 2004 21:45:05 -0000	1.19.2.13
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c	25 Oct 2004 21:10:03 -0000
@@ -827,14 +827,16 @@
   static guint button_number = -1;
   static jint click_count = 1;
   static int hasBeenDragged;
+  union widget_union w;
 
   /* If it is not a focus change event, the widget must be realized already.
      If not, ignore the event (Gtk+ will do the same). */
   if (!(event->type == GDK_FOCUS_CHANGE || GTK_WIDGET_REALIZED(widget)))
     return FALSE;
-    
+
   /* Do not handle propagated events.  AWT has its own propagation rules */
-  gdk_window_get_user_data (event->any.window, (void **) &event_widget);
+  w.widget = &event_widget;
+  gdk_window_get_user_data (event->any.window, w.void_widget);
   if (event_widget != widget)
     return FALSE;
 
Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
===================================================================
RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c,v
retrieving revision 1.4.8.7
diff -u -r1.4.8.7 gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c	21 Oct 2004 21:12:19 -0000	1.4.8.7
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c	25 Oct 2004 21:10:04 -0000
@@ -160,11 +160,8 @@
   gdk_threads_enter ();
 
   filter = gtk_file_filter_new();
-  gtk_file_filter_add_custom(filter,
-                             GTK_FILE_FILTER_FILENAME,
-                             G_CALLBACK(filenameFilterCallback),
-                             obj,
-                             NULL);
+  gtk_file_filter_add_custom(filter, GTK_FILE_FILTER_FILENAME,
+			     filenameFilterCallback, obj, NULL);
 
   gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(ptr), filter);
 
Index: jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
===================================================================
RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c,v
retrieving revision 1.24.2.17
diff -u -r1.24.2.17 gnu_java_awt_peer_gtk_GtkWindowPeer.c
--- jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c	12 Oct 2004 19:07:48 -0000	1.24.2.17
+++ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c	25 Oct 2004 21:10:04 -0000
@@ -81,6 +81,19 @@
 					    GdkEventProperty *event,
 					    jobject peer);
 
+/* Union used for type punning. */
+union extents_union
+{
+  guchar **gu_extents;
+  unsigned long **extents;
+};
+
+union atom_list_union
+{
+  guchar **gu_extents;
+  Atom **atom_list;
+};
+
 JNIEXPORT void JNICALL 
 Java_gnu_java_awt_peer_gtk_GtkWindowPeer_create 
   (JNIEnv *env, jobject obj, jint type, jboolean decorated,
@@ -370,6 +383,7 @@
                           int *top, int *left, int *bottom, int *right)
 {
   unsigned long *extents = NULL;
+  union extents_union gu_ex;
 
   /* Guess frame extents in case _NET_FRAME_EXTENTS is not
      supported. */
@@ -383,6 +397,7 @@
   request_frame_extents (window);
 
   /* Attempt to retrieve window's frame extents. */
+  gu_ex.extents = &extents;
   if (gdk_property_get (window->window,
                         gdk_atom_intern ("_NET_FRAME_EXTENTS", FALSE),
                         gdk_atom_intern ("CARDINAL", FALSE),
@@ -392,7 +407,7 @@
                         NULL,
                         NULL,
                         NULL,
-                        (guchar **)&extents))
+                        gu_ex.gu_extents))
     {
       *left = extents [0];
       *right = extents [1];
@@ -506,11 +521,12 @@
 }
 
 static void
-window_active_state_change_cb (GtkWidget *widget,
-                               GParamSpec *pspec,
-                               jobject peer)
+window_active_state_change_cb (GtkWidget *widget __attribute__((unused)),
+			       GParamSpec *pspec __attribute__((unused)),
+			       jobject peer __attribute__((unused)))
 {
   /* FIXME: not sure if this is needed or not. */
+  /* Remove the unused attributes if you fix the below.  */
 #if 0
   if (GTK_WINDOW (widget)->is_active)
     (*gdk_env)->CallVoidMethod (gdk_env, peer,
@@ -527,8 +543,8 @@
 
 static void
 window_focus_state_change_cb (GtkWidget *widget,
-                              GParamSpec *pspec,
-                              jobject peer)
+			      GParamSpec *pspec __attribute__((unused)),
+			      jobject peer)
 {
   if (GTK_WINDOW (widget)->has_toplevel_focus)
     (*gdk_env)->CallVoidMethod (gdk_env, peer,
@@ -543,9 +559,9 @@
 }
 
 static gboolean
-window_focus_in_cb (GtkWidget * widget,
-                   GdkEventFocus *event,
-                   jobject peer)
+window_focus_in_cb (GtkWidget * widget  __attribute__((unused)),
+		    GdkEventFocus *event  __attribute__((unused)),
+		    jobject peer)
 {
   (*gdk_env)->CallVoidMethod (gdk_env, peer,
                               postWindowEventID,
@@ -557,9 +573,9 @@
 }
 
 static gboolean
-window_focus_out_cb (GtkWidget * widget,
-                    GdkEventFocus *event,
-                    jobject peer)
+window_focus_out_cb (GtkWidget * widget __attribute__((unused)),
+		     GdkEventFocus *event __attribute__((unused)),
+		     jobject peer)
 {
   (*gdk_env)->CallVoidMethod (gdk_env, peer,
                               postWindowEventID,
@@ -625,12 +641,15 @@
   gulong atom_count;
   gulong bytes_after;
   Atom *atom_list = NULL;
+  union atom_list_union alu;
   gulong i;
 
-  XGetWindowProperty (GDK_DISPLAY_XDISPLAY (display), GDK_WINDOW_XID (widget->window),
+  alu.atom_list = &atom_list;
+  XGetWindowProperty (GDK_DISPLAY_XDISPLAY (display), 
+		      GDK_WINDOW_XID (widget->window),
 		      gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_STATE"),
 		      0, G_MAXLONG, False, XA_ATOM, &type, &format, &atom_count,
-		      &bytes_after, (guchar **)&atom_list);
+		      &bytes_after, alu.gu_extents);
 
   if (type != None)
     {
@@ -659,6 +678,7 @@
                             jobject peer)
 {
   unsigned long *extents;
+  union extents_union gu_ex;
 
   static int id_set = 0;
   static jmethodID postInsetsChangedEventID;
@@ -673,7 +693,7 @@
 						      "(IIII)V");
       id_set = 1;
     }
-
+  gu_ex.extents = &extents;
   if (gdk_atom_intern ("_NET_FRAME_EXTENTS", FALSE) == event->atom
       && gdk_property_get (event->window,
                            gdk_atom_intern ("_NET_FRAME_EXTENTS", FALSE),
@@ -684,7 +704,7 @@
                            NULL,
                            NULL,
                            NULL,
-                           (guchar **)&extents))
+                           gu_ex.gu_extents))
     (*gdk_env)->CallVoidMethod (gdk_env, peer,
 				postInsetsChangedEventID,
 				(jint) extents[2],  /* top */
Index: jni/gtk-peer/gtkpeer.h
===================================================================
RCS file: /cvs/gcc/gcc/libjava/jni/gtk-peer/gtkpeer.h,v
retrieving revision 1.12.8.12
diff -u -r1.12.8.12 gtkpeer.h
--- jni/gtk-peer/gtkpeer.h	8 Oct 2004 17:44:58 -0000	1.12.8.12
+++ jni/gtk-peer/gtkpeer.h	25 Oct 2004 21:10:05 -0000
@@ -486,6 +486,13 @@
   const char *label;
 };
 
+/* Union used for type punning. */
+union widget_union
+{
+  void **void_widget;
+  GtkWidget **widget;
+};
+
 #define DEBUG_LOCKING 0
 
 #if DEBUG_LOCKING

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]