Skip to content

Commit aea05e8

Browse files
committed
Gtk: fix varargs bindings
Various Gtk varrags functions need to be declared as such so that calls on AArch64 Mac OS (and potentially other platforms) work correctly.
1 parent 422418b commit aea05e8

6 files changed

Lines changed: 23 additions & 12 deletions

File tree

gui-lib/mred/private/wx/gtk/button.rkt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
(define _GtkSettings (_cpointer 'GtkSettings))
3737
(define-gtk gtk_settings_get_default (_fun -> _GtkSettings))
3838
(define-gobj g_object_set/boolean
39-
(_fun _GtkSettings _string _gboolean (_pointer = #f) -> _void)
39+
(_fun #:varargs-after 2 _GtkSettings _string _gboolean (_pointer = #f) -> _void)
4040
#:c-id g_object_set)
4141
(define (force-button-images-on gtk)
4242
;; Globally turning on button images isn't really the right thing.

gui-lib/mred/private/wx/gtk/canvas.rkt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,11 @@
3737
(define-gobj g_object_freeze_notify (_fun _GtkWidget -> _void))
3838
(define-gobj g_object_thaw_notify (_fun _GtkWidget -> _void))
3939

40-
(define-gobj g_object_set_double (_fun _GtkWidget _string _double* (_pointer = #f) -> _void)
40+
(define-gobj g_object_set_double (_fun #:varargs-after 2
41+
_GtkWidget _string _double* (_pointer = #f) -> _void)
4142
#:c-id g_object_set)
42-
(define-gobj g_object_get_double (_fun _GtkWidget _string (r : (_ptr o _double)) (_pointer = #f)
43+
(define-gobj g_object_get_double (_fun #:varargs-after 2
44+
_GtkWidget _string (r : (_ptr o _double)) (_pointer = #f)
4345
-> _void -> r)
4446
#:c-id g_object_get)
4547

@@ -124,7 +126,8 @@
124126
(define-gtk gtk_container_remove (_fun _GtkWidget _GtkWidget -> _void))
125127
(define-gtk gtk_bin_get_child (_fun _GtkWidget -> _GtkWidget))
126128

127-
(define-gobj g_object_set_bool (_fun _GtkWidget _string _gboolean [_pointer = #f] -> _void)
129+
(define-gobj g_object_set_bool (_fun #:varargs-after 2
130+
_GtkWidget _string _gboolean [_pointer = #f] -> _void)
128131
#:c-id g_object_set)
129132

130133
(define _GtkIMContext (_cpointer 'GtkIMContext))

gui-lib/mred/private/wx/gtk/combo.rkt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@
4646
(define-gobj g_signal_handler_block (_fun _GtkWidget _uint -> _void))
4747
(define-gobj g_signal_handler_unblock (_fun _GtkWidget _uint -> _void))
4848

49-
(define-gobj g_signal_emit (_fun _GtkWidget
49+
(define-gobj g_signal_emit (_fun #:varargs-after 3
50+
_GtkWidget
5051
_uint
5152
_GQuark
5253
_pointer

gui-lib/mred/private/wx/gtk/list-box.rkt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,16 @@
3939
(define-gtk gtk_list_store_newv (_fun _int (_list i _long) -> _GtkListStore))
4040
(define-gtk gtk_list_store_clear (_fun _GtkListStore -> _void))
4141
(define-gtk gtk_list_store_append (_fun _GtkListStore _GtkTreeIter-pointer _pointer -> _void))
42-
(define-gtk gtk_list_store_set (_fun _GtkListStore _GtkTreeIter-pointer _int _string _int -> _void))
42+
(define-gtk gtk_list_store_set (_fun #:varargs-after 2
43+
_GtkListStore _GtkTreeIter-pointer _int _string _int -> _void))
4344
(define-gtk gtk_tree_view_new_with_model (_fun _GtkListStore -> _GtkWidget))
4445
(define-gtk gtk_tree_view_set_model (_fun _GtkWidget _GtkListStore -> _void))
4546
(define-gtk gtk_tree_view_set_headers_visible (_fun _GtkWidget _gboolean -> _void))
4647
(define-gtk gtk_cell_renderer_text_new (_fun -> _GtkCellRenderer))
47-
(define-gtk gtk_tree_view_column_new_with_attributes (_fun _string _GtkCellRenderer _string _int _pointer -> _GtkTreeViewColumn))
48-
(define-gtk gtk_tree_view_column_set_attributes (_fun _GtkTreeViewColumn _GtkCellRenderer _string _int _pointer -> _void))
48+
(define-gtk gtk_tree_view_column_new_with_attributes (_fun #:varargs-after 2
49+
_string _GtkCellRenderer _string _int _pointer -> _GtkTreeViewColumn))
50+
(define-gtk gtk_tree_view_column_set_attributes (_fun #:varargs-after 2
51+
_GtkTreeViewColumn _GtkCellRenderer _string _int _pointer -> _void))
4952
(define-gtk gtk_tree_view_column_set_resizable (_fun _GtkTreeViewColumn _gboolean -> _void))
5053
(define-gtk gtk_tree_view_column_set_clickable (_fun _GtkTreeViewColumn _gboolean -> _void))
5154
(define-gtk gtk_tree_view_column_set_reorderable (_fun _GtkTreeViewColumn _gboolean -> _void))
@@ -75,7 +78,8 @@
7578
(define-gtk gtk_tree_selection_unselect_all (_fun _GtkWidget -> _void))
7679
(define-gtk gtk_tree_selection_select_path (_fun _GtkWidget _pointer -> _void))
7780
(define-gtk gtk_tree_selection_unselect_path (_fun _GtkWidget _pointer -> _void))
78-
(define-gtk gtk_tree_path_new_from_indices (_fun _int _int -> _pointer))
81+
(define-gtk gtk_tree_path_new_from_indices (_fun #:varargs-after 1
82+
_int _int -> _pointer))
7983
(define-gtk gtk_tree_path_free (_fun _pointer -> _void))
8084
(define-gtk gtk_tree_path_get_indices (_fun _pointer -> _pointer))
8185

gui-lib/mred/private/wx/gtk/procs.rkt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,11 +91,13 @@
9191

9292
(define _GtkSettings (_cpointer 'GtkSettings))
9393
(define-gtk gtk_settings_get_default (_fun -> _GtkSettings))
94-
(define-gobj g_object_get/int (_fun _GtkSettings _string (r : (_ptr o _int)) (_pointer = #f)
94+
(define-gobj g_object_get/int (_fun #:varargs-after 2
95+
_GtkSettings _string (r : (_ptr o _int)) (_pointer = #f)
9596
-> _void
9697
-> r)
9798
#:c-id g_object_get)
98-
(define-gobj g_object_get/string (_fun _GtkSettings _string (r : (_ptr o _pointer)) (_pointer = #f)
99+
(define-gobj g_object_get/string (_fun #:varargs-after 2
100+
_GtkSettings _string (r : (_ptr o _pointer)) (_pointer = #f)
99101
-> _void
100102
-> r)
101103
#:c-id g_object_get)

gui-lib/mred/private/wx/gtk/style.rkt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,8 @@
104104

105105
(define _GtkSettings (_cpointer 'GtkSettings))
106106
(define-gtk gtk_settings_get_default (_fun -> _GtkSettings))
107-
(define-gobj g_object_get/string (_fun _GtkSettings _string (r : (_ptr o _pointer)) (_pointer = #f)
107+
(define-gobj g_object_get/string (_fun #:varargs-after 2
108+
_GtkSettings _string (r : (_ptr o _pointer)) (_pointer = #f)
108109
-> _void
109110
-> r)
110111
#:c-id g_object_get)

0 commit comments

Comments
 (0)