Skip to content

Commit a02769b

Browse files
committed
Make gtk_gesture* bindings non-dynamic
These are available since Gtk 3.14 and are used unconditionally thus don't have to be dynamic. That would give a bit better backtraces when crashing during DnD.
1 parent b5e86e3 commit a02769b

File tree

2 files changed

+36
-123
lines changed
  • bundles/org.eclipse.swt/Eclipse SWT PI/gtk

2 files changed

+36
-123
lines changed

bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c

Lines changed: 12 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2000, 2022 IBM Corporation and others. All rights reserved.
2+
* Copyright (c) 2000, 2024 IBM Corporation and others. All rights reserved.
33
* The contents of this file are made available under the terms
44
* of the GNU Lesser General Public License (LGPL) Version 2.1 that
55
* accompanies this distribution (lgpl-v21.txt). The LGPL is also
@@ -4944,15 +4944,7 @@ JNIEXPORT void JNICALL GTK_NATIVE(gtk_1gesture_1drag_1get_1offset)
49444944
GTK_NATIVE_ENTER(env, that, gtk_1gesture_1drag_1get_1offset_FUNC);
49454945
if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
49464946
if (arg2) if ((lparg2 = (*env)->GetDoubleArrayElements(env, arg2, NULL)) == NULL) goto fail;
4947-
/*
4948-
gtk_gesture_drag_get_offset(arg0, lparg1, lparg2);
4949-
*/
4950-
{
4951-
GTK_LOAD_FUNCTION(fp, gtk_gesture_drag_get_offset)
4952-
if (fp) {
4953-
((void (CALLING_CONVENTION*)(jlong, jdouble *, jdouble *))fp)(arg0, lparg1, lparg2);
4954-
}
4955-
}
4947+
gtk_gesture_drag_get_offset((GtkGestureDrag *)arg0, (gdouble *)lparg1, (gdouble *)lparg2);
49564948
fail:
49574949
if (arg2 && lparg2) (*env)->ReleaseDoubleArrayElements(env, arg2, lparg2, 0);
49584950
if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
@@ -4970,15 +4962,7 @@ JNIEXPORT jboolean JNICALL GTK_NATIVE(gtk_1gesture_1drag_1get_1start_1point)
49704962
GTK_NATIVE_ENTER(env, that, gtk_1gesture_1drag_1get_1start_1point_FUNC);
49714963
if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
49724964
if (arg2) if ((lparg2 = (*env)->GetDoubleArrayElements(env, arg2, NULL)) == NULL) goto fail;
4973-
/*
4974-
rc = (jboolean)gtk_gesture_drag_get_start_point(arg0, lparg1, lparg2);
4975-
*/
4976-
{
4977-
GTK_LOAD_FUNCTION(fp, gtk_gesture_drag_get_start_point)
4978-
if (fp) {
4979-
rc = (jboolean)((jboolean (CALLING_CONVENTION*)(jlong, jdouble *, jdouble *))fp)(arg0, lparg1, lparg2);
4980-
}
4981-
}
4965+
rc = (jboolean)gtk_gesture_drag_get_start_point((GtkGestureDrag *)arg0, (gdouble *)lparg1, (gdouble *)lparg2);
49824966
fail:
49834967
if (arg2 && lparg2) (*env)->ReleaseDoubleArrayElements(env, arg2, lparg2, 0);
49844968
if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
@@ -4993,15 +4977,7 @@ JNIEXPORT jlong JNICALL GTK_NATIVE(gtk_1gesture_1drag_1new)
49934977
{
49944978
jlong rc = 0;
49954979
GTK_NATIVE_ENTER(env, that, gtk_1gesture_1drag_1new_FUNC);
4996-
/*
49974980
rc = (jlong)gtk_gesture_drag_new((GtkWidget *)arg0);
4998-
*/
4999-
{
5000-
GTK_LOAD_FUNCTION(fp, gtk_gesture_drag_new)
5001-
if (fp) {
5002-
rc = (jlong)((jlong (CALLING_CONVENTION*)(GtkWidget *))fp)((GtkWidget *)arg0);
5003-
}
5004-
}
50054981
GTK_NATIVE_EXIT(env, that, gtk_1gesture_1drag_1new_FUNC);
50064982
return rc;
50074983
}
@@ -5013,15 +4989,7 @@ JNIEXPORT jlong JNICALL GTK_NATIVE(gtk_1gesture_1get_1last_1updated_1sequence)
50134989
{
50144990
jlong rc = 0;
50154991
GTK_NATIVE_ENTER(env, that, gtk_1gesture_1get_1last_1updated_1sequence_FUNC);
5016-
/*
5017-
rc = (jlong)gtk_gesture_get_last_updated_sequence(arg0);
5018-
*/
5019-
{
5020-
GTK_LOAD_FUNCTION(fp, gtk_gesture_get_last_updated_sequence)
5021-
if (fp) {
5022-
rc = (jlong)((jlong (CALLING_CONVENTION*)(jlong))fp)(arg0);
5023-
}
5024-
}
4992+
rc = (jlong)gtk_gesture_get_last_updated_sequence((GtkGesture *)arg0);
50254993
GTK_NATIVE_EXIT(env, that, gtk_1gesture_1get_1last_1updated_1sequence_FUNC);
50264994
return rc;
50274995
}
@@ -5037,15 +5005,7 @@ JNIEXPORT jboolean JNICALL GTK_NATIVE(gtk_1gesture_1get_1point)
50375005
GTK_NATIVE_ENTER(env, that, gtk_1gesture_1get_1point_FUNC);
50385006
if (arg2) if ((lparg2 = (*env)->GetDoubleArrayElements(env, arg2, NULL)) == NULL) goto fail;
50395007
if (arg3) if ((lparg3 = (*env)->GetDoubleArrayElements(env, arg3, NULL)) == NULL) goto fail;
5040-
/*
5041-
rc = (jboolean)gtk_gesture_get_point(arg0, arg1, lparg2, lparg3);
5042-
*/
5043-
{
5044-
GTK_LOAD_FUNCTION(fp, gtk_gesture_get_point)
5045-
if (fp) {
5046-
rc = (jboolean)((jboolean (CALLING_CONVENTION*)(jlong, jlong, jdouble *, jdouble *))fp)(arg0, arg1, lparg2, lparg3);
5047-
}
5048-
}
5008+
rc = (jboolean)gtk_gesture_get_point((GtkGesture *)arg0, (GdkEventSequence *)arg1, (gdouble *)lparg2, (gdouble *)lparg3);
50495009
fail:
50505010
if (arg3 && lparg3) (*env)->ReleaseDoubleArrayElements(env, arg3, lparg3, 0);
50515011
if (arg2 && lparg2) (*env)->ReleaseDoubleArrayElements(env, arg2, lparg2, 0);
@@ -5060,15 +5020,7 @@ JNIEXPORT jboolean JNICALL GTK_NATIVE(gtk_1gesture_1is_1recognized)
50605020
{
50615021
jboolean rc = 0;
50625022
GTK_NATIVE_ENTER(env, that, gtk_1gesture_1is_1recognized_FUNC);
5063-
/*
5064-
rc = (jboolean)gtk_gesture_is_recognized(arg0);
5065-
*/
5066-
{
5067-
GTK_LOAD_FUNCTION(fp, gtk_gesture_is_recognized)
5068-
if (fp) {
5069-
rc = (jboolean)((jboolean (CALLING_CONVENTION*)(jlong))fp)(arg0);
5070-
}
5071-
}
5023+
rc = (jboolean)gtk_gesture_is_recognized((GtkGesture *)arg0);
50725024
GTK_NATIVE_EXIT(env, that, gtk_1gesture_1is_1recognized_FUNC);
50735025
return rc;
50745026
}
@@ -5080,15 +5032,7 @@ JNIEXPORT jdouble JNICALL GTK_NATIVE(gtk_1gesture_1rotate_1get_1angle_1delta)
50805032
{
50815033
jdouble rc = 0;
50825034
GTK_NATIVE_ENTER(env, that, gtk_1gesture_1rotate_1get_1angle_1delta_FUNC);
5083-
/*
5084-
rc = (jdouble)gtk_gesture_rotate_get_angle_delta(arg0);
5085-
*/
5086-
{
5087-
GTK_LOAD_FUNCTION(fp, gtk_gesture_rotate_get_angle_delta)
5088-
if (fp) {
5089-
rc = (jdouble)((jdouble (CALLING_CONVENTION*)(jlong))fp)(arg0);
5090-
}
5091-
}
5035+
rc = (jdouble)gtk_gesture_rotate_get_angle_delta((GtkGestureRotate *)arg0);
50925036
GTK_NATIVE_EXIT(env, that, gtk_1gesture_1rotate_1get_1angle_1delta_FUNC);
50935037
return rc;
50945038
}
@@ -5100,15 +5044,7 @@ JNIEXPORT jlong JNICALL GTK_NATIVE(gtk_1gesture_1rotate_1new)
51005044
{
51015045
jlong rc = 0;
51025046
GTK_NATIVE_ENTER(env, that, gtk_1gesture_1rotate_1new_FUNC);
5103-
/*
5104-
rc = (jlong)gtk_gesture_rotate_new(arg0);
5105-
*/
5106-
{
5107-
GTK_LOAD_FUNCTION(fp, gtk_gesture_rotate_new)
5108-
if (fp) {
5109-
rc = (jlong)((jlong (CALLING_CONVENTION*)(jlong))fp)(arg0);
5110-
}
5111-
}
5047+
rc = (jlong)gtk_gesture_rotate_new((GtkWidget *)arg0);
51125048
GTK_NATIVE_EXIT(env, that, gtk_1gesture_1rotate_1new_FUNC);
51135049
return rc;
51145050
}
@@ -5131,15 +5067,7 @@ JNIEXPORT void JNICALL GTK_NATIVE(gtk_1gesture_1single_1set_1button)
51315067
(JNIEnv *env, jclass that, jlong arg0, jint arg1)
51325068
{
51335069
GTK_NATIVE_ENTER(env, that, gtk_1gesture_1single_1set_1button_FUNC);
5134-
/*
5135-
gtk_gesture_single_set_button(arg0, arg1);
5136-
*/
5137-
{
5138-
GTK_LOAD_FUNCTION(fp, gtk_gesture_single_set_button)
5139-
if (fp) {
5140-
((void (CALLING_CONVENTION*)(jlong, jint))fp)(arg0, arg1);
5141-
}
5142-
}
5070+
gtk_gesture_single_set_button((GtkGestureSingle *)arg0, (guint)arg1);
51435071
GTK_NATIVE_EXIT(env, that, gtk_1gesture_1single_1set_1button_FUNC);
51445072
}
51455073
#endif
@@ -5154,15 +5082,7 @@ JNIEXPORT jboolean JNICALL GTK_NATIVE(gtk_1gesture_1swipe_1get_1velocity)
51545082
GTK_NATIVE_ENTER(env, that, gtk_1gesture_1swipe_1get_1velocity_FUNC);
51555083
if (arg1) if ((lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL)) == NULL) goto fail;
51565084
if (arg2) if ((lparg2 = (*env)->GetDoubleArrayElements(env, arg2, NULL)) == NULL) goto fail;
5157-
/*
5158-
rc = (jboolean)gtk_gesture_swipe_get_velocity(arg0, lparg1, lparg2);
5159-
*/
5160-
{
5161-
GTK_LOAD_FUNCTION(fp, gtk_gesture_swipe_get_velocity)
5162-
if (fp) {
5163-
rc = (jboolean)((jboolean (CALLING_CONVENTION*)(jlong, jdouble *, jdouble *))fp)(arg0, lparg1, lparg2);
5164-
}
5165-
}
5085+
rc = (jboolean)gtk_gesture_swipe_get_velocity((GtkGestureSwipe *)arg0, (gdouble *)lparg1, (gdouble *)lparg2);
51665086
fail:
51675087
if (arg2 && lparg2) (*env)->ReleaseDoubleArrayElements(env, arg2, lparg2, 0);
51685088
if (arg1 && lparg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, 0);
@@ -5177,15 +5097,7 @@ JNIEXPORT jdouble JNICALL GTK_NATIVE(gtk_1gesture_1zoom_1get_1scale_1delta)
51775097
{
51785098
jdouble rc = 0;
51795099
GTK_NATIVE_ENTER(env, that, gtk_1gesture_1zoom_1get_1scale_1delta_FUNC);
5180-
/*
5181-
rc = (jdouble)gtk_gesture_zoom_get_scale_delta(arg0);
5182-
*/
5183-
{
5184-
GTK_LOAD_FUNCTION(fp, gtk_gesture_zoom_get_scale_delta)
5185-
if (fp) {
5186-
rc = (jdouble)((jdouble (CALLING_CONVENTION*)(jlong))fp)(arg0);
5187-
}
5188-
}
5100+
rc = (jdouble)gtk_gesture_zoom_get_scale_delta((GtkGestureZoom *)arg0);
51895101
GTK_NATIVE_EXIT(env, that, gtk_1gesture_1zoom_1get_1scale_1delta_FUNC);
51905102
return rc;
51915103
}
@@ -5197,15 +5109,7 @@ JNIEXPORT jlong JNICALL GTK_NATIVE(gtk_1gesture_1zoom_1new)
51975109
{
51985110
jlong rc = 0;
51995111
GTK_NATIVE_ENTER(env, that, gtk_1gesture_1zoom_1new_FUNC);
5200-
/*
5201-
rc = (jlong)gtk_gesture_zoom_new(arg0);
5202-
*/
5203-
{
5204-
GTK_LOAD_FUNCTION(fp, gtk_gesture_zoom_new)
5205-
if (fp) {
5206-
rc = (jlong)((jlong (CALLING_CONVENTION*)(jlong))fp)(arg0);
5207-
}
5208-
}
5112+
rc = (jlong)gtk_gesture_zoom_new((GtkWidget *)arg0);
52095113
GTK_NATIVE_EXIT(env, that, gtk_1gesture_1zoom_1new_FUNC);
52105114
return rc;
52115115
}

bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/GTK.java

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2018 Red Hat Inc. and others. All rights reserved.
2+
* Copyright (c) 2018, 20224 Red Hat Inc. and others. All rights reserved.
33
* The contents of this file are made available under the terms
44
* of the GNU Lesser General Public License (LGPL) Version 2.1 that
55
* accompanies this distribution (lgpl-v21.txt). The LGPL is also
@@ -733,7 +733,10 @@ public class GTK extends OS {
733733
public static final native long gtk_event_controller_get_widget(long controller);
734734

735735
/* GtkGestureSingle */
736-
/** @method flags=dynamic */
736+
/**
737+
* @param gesture cast=(GtkGestureSingle *)
738+
* @param button cast=(guint)
739+
*/
737740
public static final native void gtk_gesture_single_set_button(long gesture, int button);
738741
/** @param gesture cast=(GtkGestureSingle *) */
739742
public static final native int gtk_gesture_single_get_current_button(long gesture);
@@ -764,50 +767,56 @@ public class GTK extends OS {
764767
public static final native void gtk_file_filter_set_name(long filter, byte[] name);
765768

766769
/**
767-
* @method flags=dynamic
770+
* @param gesture cast=(GtkGestureDrag *)
771+
* @param x cast=(gdouble *)
772+
* @param y cast=(gdouble *)
768773
*/
769774
public static final native boolean gtk_gesture_drag_get_start_point(long gesture, double[] x, double [] y);
770775
/**
771-
* @method flags=dynamic
776+
* @param gesture cast=(GtkGesture *)
772777
*/
773778
public static final native boolean gtk_gesture_is_recognized(long gesture);
774779
/**
775-
* @method flags=dynamic
776780
* @param widget cast=(GtkWidget *)
777781
*/
778782
public static final native long gtk_gesture_drag_new(long widget);
779783
/**
780-
* @method flags=dynamic
784+
* @param gesture cast=(GtkGesture *)
781785
*/
782786
public static final native long gtk_gesture_get_last_updated_sequence(long gesture);
783787
/**
784-
* @method flags=dynamic
788+
* @param gesture cast=(GtkGesture *)
789+
* @param sequence cast=(GdkEventSequence *)
790+
* @param x cast=(gdouble *)
791+
* @param y cast=(gdouble *)
785792
*/
786793
public static final native boolean gtk_gesture_get_point(long gesture, long sequence, double[] x, double [] y);
787794
/**
788-
* @method flags=dynamic
795+
* @param gesture cast=(GtkGestureSwipe *)
796+
* @param velocity_x cast=(gdouble *)
797+
* @param velocity_y cast=(gdouble *)
789798
*/
790799
public static final native boolean gtk_gesture_swipe_get_velocity(long gesture, double [] velocity_x, double[] velocity_y);
791800
/**
792-
* @method flags=dynamic
801+
* @param gesture cast=(GtkGestureDrag *)
802+
* @param x cast=(gdouble *)
803+
* @param y cast=(gdouble *)
793804
*/
794805
public static final native void gtk_gesture_drag_get_offset(long gesture, double[] x, double[] y);
795806
/**
796-
* @method flags=dynamic
807+
* @param gesture cast=(GtkGestureRotate *)
797808
*/
798-
799809
public static final native double gtk_gesture_rotate_get_angle_delta(long gesture);
800810
/**
801-
* @method flags=dynamic
811+
* @param widget cast=(GtkWidget *)
802812
*/
803-
804813
public static final native long gtk_gesture_rotate_new(long widget);
805814
/**
806-
* @method flags=dynamic
815+
* @param widget cast=(GtkWidget *)
807816
*/
808817
public static final native long gtk_gesture_zoom_new(long widget);
809818
/**
810-
* @method flags=dynamic
819+
* @param gesture cast=(GtkGestureZoom *)
811820
*/
812821
public static final native double gtk_gesture_zoom_get_scale_delta(long gesture);
813822

0 commit comments

Comments
 (0)