detached 7393052

fix(glib): keep callbacks alive to avoid GC

Generated Connect*/callback wrappers now retain the Go closure in the callback registry so signal handlers don't silently stop working after GC runs.
commit
73930527faa379378658da6e1dbecdcd4677de6d
author
brice · · 2025-12-22 17:44 UTC
parent
edac14b
signature
unsigned
265 files · +1051 -1007
M templates/glib +24 -2
@@ -11,9 +11,11 @@ import (
11 11
12 var callbacks = struct {12 var callbacks = struct {
13 sync.RWMutex13 sync.RWMutex
14- refs map[uintptr]uintptr14+ refs map[uintptr]uintptr
15+ closures map[uintptr]interface{}
15 }{16 }{
16- refs: make(map[uintptr]uintptr),17+ refs: make(map[uintptr]uintptr),
18+ closures: make(map[uintptr]interface{}),
17 }19 }
18 20
19 // GetCallback retrives a callback reference by value.21 // GetCallback retrives a callback reference by value.
@@ -33,6 +35,26 @@ func SaveCallback(cbPtr uintptr, refPtr uintptr) {
33 callbacks.Unlock()35 callbacks.Unlock()
34 }36 }
35 37
38+// SaveCallbackWithClosure saves a reference to the callback value and retains the
39+// provided closure to prevent it from being garbage collected.
40+// Users should not need to call this.
41+func SaveCallbackWithClosure(cbPtr uintptr, refPtr uintptr, closure interface{}) {
42+ callbacks.Lock()
43+ callbacks.refs[cbPtr] = refPtr
44+ callbacks.closures[cbPtr] = closure
45+ callbacks.Unlock()
46+}
47+
48+// RemoveCallback removes a callback from the registry, allowing it to be garbage
49+// collected.
50+// Users should not need to call this.
51+func RemoveCallback(cbPtr uintptr) {
52+ callbacks.Lock()
53+ delete(callbacks.refs, cbPtr)
54+ delete(callbacks.closures, cbPtr)
55+ callbacks.Unlock()
56+}
57+
36 // UnrefCallbackValue unreferences the provided callback by reflect.value to free a purego slot58 // UnrefCallbackValue unreferences the provided callback by reflect.value to free a purego slot
37 //59 //
38 // NOTE: Windows does not support unreferencing callbacks, so on that platform this operation is60 // NOTE: Windows does not support unreferencing callbacks, so on that platform this operation is
M templates/go +8 -8
@@ -92,7 +92,7 @@ func {{.Name}}({{conv .Args.API.Full}}) {{.Ret.Return}} {
92 {{if .RetRaw}}return {{end}}cbFn({{range $i, $t := .PureTypes}}{{if $i}}, {{end}}arg{{$i}}{{end}})92 {{if .RetRaw}}return {{end}}cbFn({{range $i, $t := .PureTypes}}{{if $i}}, {{end}}arg{{$i}}{{end}})
93 }93 }
94 {{.Name}}Ref = purego.NewCallback(fcb)94 {{.Name}}Ref = purego.NewCallback(fcb)
95- {{if $NotGLib}}glib.{{end}}SaveCallback({{.Name}}Ptr, {{.Name}}Ref)95+ {{if $NotGLib}}glib.{{end}}SaveCallbackWithClosure({{.Name}}Ptr, {{.Name}}Ref, {{.Name}})
96 }96 }
97 }97 }
98 {{end}}98 {{end}}
@@ -126,7 +126,7 @@ func (x *{{$outer.Name}}) {{.Name}}({{conv .Args.API.Full}}) {{.Ret.Return}} {
126 {{if .RetRaw}}return {{end}}cbFn({{range $i, $t := .PureTypes}}{{if $i}}, {{end}}arg{{$i}}{{end}})126 {{if .RetRaw}}return {{end}}cbFn({{range $i, $t := .PureTypes}}{{if $i}}, {{end}}arg{{$i}}{{end}})
127 }127 }
128 {{.Name}}Ref = purego.NewCallback(fcb)128 {{.Name}}Ref = purego.NewCallback(fcb)
129- {{if $NotGLib}}glib.{{end}}SaveCallback({{.Name}}Ptr, {{.Name}}Ref)129+ {{if $NotGLib}}glib.{{end}}SaveCallbackWithClosure({{.Name}}Ptr, {{.Name}}Ref, {{.Name}})
130 }130 }
131 }131 }
132 {{end}}132 {{end}}
@@ -315,7 +315,7 @@ func {{.Name}}({{conv .Args.API.Full}}) {{.Ret.Return}} {
315 {{if .RetRaw}}return {{end}}cbFn({{range $i, $t := .PureTypes}}{{if $i}}, {{end}}arg{{$i}}{{end}})315 {{if .RetRaw}}return {{end}}cbFn({{range $i, $t := .PureTypes}}{{if $i}}, {{end}}arg{{$i}}{{end}})
316 }316 }
317 {{.Name}}Ref = purego.NewCallback(fcb)317 {{.Name}}Ref = purego.NewCallback(fcb)
318- {{if $NotGLib}}glib.{{end}}SaveCallback({{.Name}}Ptr, {{.Name}}Ref)318+ {{if $NotGLib}}glib.{{end}}SaveCallbackWithClosure({{.Name}}Ptr, {{.Name}}Ref, {{.Name}})
319 }319 }
320 }320 }
321 {{end}}321 {{end}}
@@ -372,7 +372,7 @@ func {{.Name}}({{conv .Args.API.Full}}) {{.Ret.Return}} {
372 {{if .RetRaw}}return {{end}}cbFn({{range $i, $t := .PureTypes}}{{if $i}}, {{end}}arg{{$i}}{{end}})372 {{if .RetRaw}}return {{end}}cbFn({{range $i, $t := .PureTypes}}{{if $i}}, {{end}}arg{{$i}}{{end}})
373 }373 }
374 {{.Name}}Ref = purego.NewCallback(fcb)374 {{.Name}}Ref = purego.NewCallback(fcb)
375- {{if $NotGLib}}glib.{{end}}SaveCallback({{.Name}}Ptr, {{.Name}}Ref)375+ {{if $NotGLib}}glib.{{end}}SaveCallbackWithClosure({{.Name}}Ptr, {{.Name}}Ref, {{.Name}})
376 }376 }
377 }377 }
378 {{end}}378 {{end}}
@@ -406,7 +406,7 @@ func (x *{{$outer.Name}}) {{.Name}}({{conv .Args.API.Full}}) {{.Ret.Return}} {
406 {{if .RetRaw}}return {{end}}cbFn({{range $i, $t := .PureTypes}}{{if $i}}, {{end}}arg{{$i}}{{end}})406 {{if .RetRaw}}return {{end}}cbFn({{range $i, $t := .PureTypes}}{{if $i}}, {{end}}arg{{$i}}{{end}})
407 }407 }
408 {{.Name}}Ref = purego.NewCallback(fcb)408 {{.Name}}Ref = purego.NewCallback(fcb)
409- {{if $NotGLib}}glib.{{end}}SaveCallback({{.Name}}Ptr, {{.Name}}Ref)409+ {{if $NotGLib}}glib.{{end}}SaveCallbackWithClosure({{.Name}}Ptr, {{.Name}}Ref, {{.Name}})
410 }410 }
411 }411 }
412 {{end}}412 {{end}}
@@ -477,7 +477,7 @@ func (x *{{$outer.Name}}) Connect{{.Name}}(cb *func({{$outer.Name}} {{convc .Arg
477 {{end}}477 {{end}}
478 }478 }
479 cbRefPtr := purego.NewCallback(fcb)479 cbRefPtr := purego.NewCallback(fcb)
480- {{if $NotGLib}}glib.{{end}}SaveCallback(cbPtr, cbRefPtr)480+ {{if $NotGLib}}glib.{{end}}SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
481 return {{if $NotGObject}}gobject.{{end}}SignalConnect(x.GoPointer(), "{{.CName}}", cbRefPtr)481 return {{if $NotGObject}}gobject.{{end}}SignalConnect(x.GoPointer(), "{{.CName}}", cbRefPtr)
482 }482 }
483 {{if .Detailed}}483 {{if .Detailed}}
@@ -504,7 +504,7 @@ func (x *{{$outer.Name}}) Connect{{.Name}}WithDetail(detail string, cb *func({{$
504 {{end}}504 {{end}}
505 }505 }
506 cbRefPtr := purego.NewCallback(fcb)506 cbRefPtr := purego.NewCallback(fcb)
507- {{if $NotGLib}}glib.{{end}}SaveCallback(cbPtr, cbRefPtr)507+ {{if $NotGLib}}glib.{{end}}SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
508 return {{if $NotGObject}}gobject.{{end}}SignalConnect(x.GoPointer(), signalName, cbRefPtr)508 return {{if $NotGObject}}gobject.{{end}}SignalConnect(x.GoPointer(), signalName, cbRefPtr)
509 }509 }
510 {{end}}510 {{end}}
@@ -545,7 +545,7 @@ func {{.Name}}({{conv .Args.API.Full}}) {{.Ret.Return}} {
545 {{if .RetRaw}}return {{end}}cbFn({{range $i, $t := .PureTypes}}{{if $i}}, {{end}}arg{{$i}}{{end}})545 {{if .RetRaw}}return {{end}}cbFn({{range $i, $t := .PureTypes}}{{if $i}}, {{end}}arg{{$i}}{{end}})
546 }546 }
547 {{.Name}}Ref = purego.NewCallback(fcb)547 {{.Name}}Ref = purego.NewCallback(fcb)
548- {{if $NotGLib}}glib.{{end}}SaveCallback({{.Name}}Ptr, {{.Name}}Ref)548+ {{if $NotGLib}}glib.{{end}}SaveCallbackWithClosure({{.Name}}Ptr, {{.Name}}Ref, {{.Name}})
549 }549 }
550 }550 }
551 {{end}}551 {{end}}
M v4/adw/adw-about-dialog.go +1 -1
@@ -1736,7 +1736,7 @@ func (x *AboutDialog) ConnectActivateLink(cb *func(AboutDialog, string) bool) ui
1736 1736
1737 }1737 }
1738 cbRefPtr := purego.NewCallback(fcb)1738 cbRefPtr := purego.NewCallback(fcb)
1739- glib.SaveCallback(cbPtr, cbRefPtr)1739+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1740 return gobject.SignalConnect(x.GoPointer(), "activate-link", cbRefPtr)1740 return gobject.SignalConnect(x.GoPointer(), "activate-link", cbRefPtr)
1741 }1741 }
1742 1742
M v4/adw/adw-about-window.go +1 -1
@@ -1706,7 +1706,7 @@ func (x *AboutWindow) ConnectActivateLink(cb *func(AboutWindow, string) bool) ui
1706 1706
1707 }1707 }
1708 cbRefPtr := purego.NewCallback(fcb)1708 cbRefPtr := purego.NewCallback(fcb)
1709- glib.SaveCallback(cbPtr, cbRefPtr)1709+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1710 return gobject.SignalConnect(x.GoPointer(), "activate-link", cbRefPtr)1710 return gobject.SignalConnect(x.GoPointer(), "activate-link", cbRefPtr)
1711 }1711 }
1712 1712
M v4/adw/adw-action-row.go +1 -1
@@ -451,7 +451,7 @@ func (x *ActionRow) ConnectActivated(cb *func(ActionRow)) uint32 {
451 451
452 }452 }
453 cbRefPtr := purego.NewCallback(fcb)453 cbRefPtr := purego.NewCallback(fcb)
454- glib.SaveCallback(cbPtr, cbRefPtr)454+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
455 return gobject.SignalConnect(x.GoPointer(), "activated", cbRefPtr)455 return gobject.SignalConnect(x.GoPointer(), "activated", cbRefPtr)
456 }456 }
457 457
M v4/adw/adw-alert-dialog.go +3 -3
@@ -342,7 +342,7 @@ func (x *AlertDialog) Choose(ParentVar *gtk.Widget, CancellableVar *gio.Cancella
342 cbFn(arg0, arg1, arg2)342 cbFn(arg0, arg1, arg2)
343 }343 }
344 CallbackVarRef = purego.NewCallback(fcb)344 CallbackVarRef = purego.NewCallback(fcb)
345- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)345+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
346 }346 }
347 }347 }
348 348
@@ -916,7 +916,7 @@ func (x *AlertDialog) ConnectResponse(cb *func(AlertDialog, string)) uint32 {
916 916
917 }917 }
918 cbRefPtr := purego.NewCallback(fcb)918 cbRefPtr := purego.NewCallback(fcb)
919- glib.SaveCallback(cbPtr, cbRefPtr)919+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
920 return gobject.SignalConnect(x.GoPointer(), "response", cbRefPtr)920 return gobject.SignalConnect(x.GoPointer(), "response", cbRefPtr)
921 }921 }
922 922
@@ -938,7 +938,7 @@ func (x *AlertDialog) ConnectResponseWithDetail(detail string, cb *func(AlertDia
938 938
939 }939 }
940 cbRefPtr := purego.NewCallback(fcb)940 cbRefPtr := purego.NewCallback(fcb)
941- glib.SaveCallback(cbPtr, cbRefPtr)941+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
942 return gobject.SignalConnect(x.GoPointer(), signalName, cbRefPtr)942 return gobject.SignalConnect(x.GoPointer(), signalName, cbRefPtr)
943 }943 }
944 944
M v4/adw/adw-animation-target.go +2 -2
@@ -103,7 +103,7 @@ func NewCallbackAnimationTarget(CallbackVar *AnimationTargetFunc, UserDataVar ui
103 cbFn(arg0, arg1)103 cbFn(arg0, arg1)
104 }104 }
105 CallbackVarRef = purego.NewCallback(fcb)105 CallbackVarRef = purego.NewCallback(fcb)
106- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)106+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
107 }107 }
108 }108 }
109 109
@@ -118,7 +118,7 @@ func NewCallbackAnimationTarget(CallbackVar *AnimationTargetFunc, UserDataVar ui
118 cbFn(arg0)118 cbFn(arg0)
119 }119 }
120 DestroyVarRef = purego.NewCallback(fcb)120 DestroyVarRef = purego.NewCallback(fcb)
121- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)121+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
122 }122 }
123 }123 }
124 124
M v4/adw/adw-animation.go +1 -1
@@ -363,7 +363,7 @@ func (x *Animation) ConnectDone(cb *func(Animation)) uint32 {
363 363
364 }364 }
365 cbRefPtr := purego.NewCallback(fcb)365 cbRefPtr := purego.NewCallback(fcb)
366- glib.SaveCallback(cbPtr, cbRefPtr)366+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
367 return gobject.SignalConnect(x.GoPointer(), "done", cbRefPtr)367 return gobject.SignalConnect(x.GoPointer(), "done", cbRefPtr)
368 }368 }
369 369
M v4/adw/adw-banner.go +1 -1
@@ -343,7 +343,7 @@ func (x *Banner) ConnectButtonClicked(cb *func(Banner)) uint32 {
343 343
344 }344 }
345 cbRefPtr := purego.NewCallback(fcb)345 cbRefPtr := purego.NewCallback(fcb)
346- glib.SaveCallback(cbPtr, cbRefPtr)346+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
347 return gobject.SignalConnect(x.GoPointer(), "button-clicked", cbRefPtr)347 return gobject.SignalConnect(x.GoPointer(), "button-clicked", cbRefPtr)
348 }348 }
349 349
M v4/adw/adw-bottom-sheet.go +1 -1
@@ -692,7 +692,7 @@ func (x *BottomSheet) ConnectCloseAttempt(cb *func(BottomSheet)) uint32 {
692 692
693 }693 }
694 cbRefPtr := purego.NewCallback(fcb)694 cbRefPtr := purego.NewCallback(fcb)
695- glib.SaveCallback(cbPtr, cbRefPtr)695+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
696 return gobject.SignalConnect(x.GoPointer(), "close-attempt", cbRefPtr)696 return gobject.SignalConnect(x.GoPointer(), "close-attempt", cbRefPtr)
697 }697 }
698 698
M v4/adw/adw-breakpoint.go +2 -2
@@ -474,7 +474,7 @@ func (x *Breakpoint) ConnectApply(cb *func(Breakpoint)) uint32 {
474 474
475 }475 }
476 cbRefPtr := purego.NewCallback(fcb)476 cbRefPtr := purego.NewCallback(fcb)
477- glib.SaveCallback(cbPtr, cbRefPtr)477+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
478 return gobject.SignalConnect(x.GoPointer(), "apply", cbRefPtr)478 return gobject.SignalConnect(x.GoPointer(), "apply", cbRefPtr)
479 }479 }
480 480
@@ -496,7 +496,7 @@ func (x *Breakpoint) ConnectUnapply(cb *func(Breakpoint)) uint32 {
496 496
497 }497 }
498 cbRefPtr := purego.NewCallback(fcb)498 cbRefPtr := purego.NewCallback(fcb)
499- glib.SaveCallback(cbPtr, cbRefPtr)499+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
500 return gobject.SignalConnect(x.GoPointer(), "unapply", cbRefPtr)500 return gobject.SignalConnect(x.GoPointer(), "unapply", cbRefPtr)
501 }501 }
502 502
M v4/adw/adw-button-row.go +1 -1
@@ -214,7 +214,7 @@ func (x *ButtonRow) ConnectActivated(cb *func(ButtonRow)) uint32 {
214 214
215 }215 }
216 cbRefPtr := purego.NewCallback(fcb)216 cbRefPtr := purego.NewCallback(fcb)
217- glib.SaveCallback(cbPtr, cbRefPtr)217+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
218 return gobject.SignalConnect(x.GoPointer(), "activated", cbRefPtr)218 return gobject.SignalConnect(x.GoPointer(), "activated", cbRefPtr)
219 }219 }
220 220
M v4/adw/adw-carousel.go +1 -1
@@ -532,7 +532,7 @@ func (x *Carousel) ConnectPageChanged(cb *func(Carousel, uint)) uint32 {
532 532
533 }533 }
534 cbRefPtr := purego.NewCallback(fcb)534 cbRefPtr := purego.NewCallback(fcb)
535- glib.SaveCallback(cbPtr, cbRefPtr)535+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
536 return gobject.SignalConnect(x.GoPointer(), "page-changed", cbRefPtr)536 return gobject.SignalConnect(x.GoPointer(), "page-changed", cbRefPtr)
537 }537 }
538 538
M v4/adw/adw-dialog.go +2 -2
@@ -642,7 +642,7 @@ func (x *Dialog) ConnectCloseAttempt(cb *func(Dialog)) uint32 {
642 642
643 }643 }
644 cbRefPtr := purego.NewCallback(fcb)644 cbRefPtr := purego.NewCallback(fcb)
645- glib.SaveCallback(cbPtr, cbRefPtr)645+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
646 return gobject.SignalConnect(x.GoPointer(), "close-attempt", cbRefPtr)646 return gobject.SignalConnect(x.GoPointer(), "close-attempt", cbRefPtr)
647 }647 }
648 648
@@ -662,7 +662,7 @@ func (x *Dialog) ConnectClosed(cb *func(Dialog)) uint32 {
662 662
663 }663 }
664 cbRefPtr := purego.NewCallback(fcb)664 cbRefPtr := purego.NewCallback(fcb)
665- glib.SaveCallback(cbPtr, cbRefPtr)665+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
666 return gobject.SignalConnect(x.GoPointer(), "closed", cbRefPtr)666 return gobject.SignalConnect(x.GoPointer(), "closed", cbRefPtr)
667 }667 }
668 668
M v4/adw/adw-entry-row.go +2 -2
@@ -443,7 +443,7 @@ func (x *EntryRow) ConnectApply(cb *func(EntryRow)) uint32 {
443 443
444 }444 }
445 cbRefPtr := purego.NewCallback(fcb)445 cbRefPtr := purego.NewCallback(fcb)
446- glib.SaveCallback(cbPtr, cbRefPtr)446+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
447 return gobject.SignalConnect(x.GoPointer(), "apply", cbRefPtr)447 return gobject.SignalConnect(x.GoPointer(), "apply", cbRefPtr)
448 }448 }
449 449
@@ -463,7 +463,7 @@ func (x *EntryRow) ConnectEntryActivated(cb *func(EntryRow)) uint32 {
463 463
464 }464 }
465 cbRefPtr := purego.NewCallback(fcb)465 cbRefPtr := purego.NewCallback(fcb)
466- glib.SaveCallback(cbPtr, cbRefPtr)466+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
467 return gobject.SignalConnect(x.GoPointer(), "entry-activated", cbRefPtr)467 return gobject.SignalConnect(x.GoPointer(), "entry-activated", cbRefPtr)
468 }468 }
469 469
M v4/adw/adw-message-dialog.go +3 -3
@@ -315,7 +315,7 @@ func (x *MessageDialog) Choose(CancellableVar *gio.Cancellable, CallbackVar *gio
315 cbFn(arg0, arg1, arg2)315 cbFn(arg0, arg1, arg2)
316 }316 }
317 CallbackVarRef = purego.NewCallback(fcb)317 CallbackVarRef = purego.NewCallback(fcb)
318- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)318+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
319 }319 }
320 }320 }
321 321
@@ -855,7 +855,7 @@ func (x *MessageDialog) ConnectResponse(cb *func(MessageDialog, string)) uint32
855 855
856 }856 }
857 cbRefPtr := purego.NewCallback(fcb)857 cbRefPtr := purego.NewCallback(fcb)
858- glib.SaveCallback(cbPtr, cbRefPtr)858+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
859 return gobject.SignalConnect(x.GoPointer(), "response", cbRefPtr)859 return gobject.SignalConnect(x.GoPointer(), "response", cbRefPtr)
860 }860 }
861 861
@@ -877,7 +877,7 @@ func (x *MessageDialog) ConnectResponseWithDetail(detail string, cb *func(Messag
877 877
878 }878 }
879 cbRefPtr := purego.NewCallback(fcb)879 cbRefPtr := purego.NewCallback(fcb)
880- glib.SaveCallback(cbPtr, cbRefPtr)880+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
881 return gobject.SignalConnect(x.GoPointer(), signalName, cbRefPtr)881 return gobject.SignalConnect(x.GoPointer(), signalName, cbRefPtr)
882 }882 }
883 883
M v4/adw/adw-navigation-view.go +8 -8
@@ -446,7 +446,7 @@ func (x *NavigationPage) ConnectHidden(cb *func(NavigationPage)) uint32 {
446 446
447 }447 }
448 cbRefPtr := purego.NewCallback(fcb)448 cbRefPtr := purego.NewCallback(fcb)
449- glib.SaveCallback(cbPtr, cbRefPtr)449+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
450 return gobject.SignalConnect(x.GoPointer(), "hidden", cbRefPtr)450 return gobject.SignalConnect(x.GoPointer(), "hidden", cbRefPtr)
451 }451 }
452 452
@@ -470,7 +470,7 @@ func (x *NavigationPage) ConnectHiding(cb *func(NavigationPage)) uint32 {
470 470
471 }471 }
472 cbRefPtr := purego.NewCallback(fcb)472 cbRefPtr := purego.NewCallback(fcb)
473- glib.SaveCallback(cbPtr, cbRefPtr)473+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
474 return gobject.SignalConnect(x.GoPointer(), "hiding", cbRefPtr)474 return gobject.SignalConnect(x.GoPointer(), "hiding", cbRefPtr)
475 }475 }
476 476
@@ -494,7 +494,7 @@ func (x *NavigationPage) ConnectShowing(cb *func(NavigationPage)) uint32 {
494 494
495 }495 }
496 cbRefPtr := purego.NewCallback(fcb)496 cbRefPtr := purego.NewCallback(fcb)
497- glib.SaveCallback(cbPtr, cbRefPtr)497+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
498 return gobject.SignalConnect(x.GoPointer(), "showing", cbRefPtr)498 return gobject.SignalConnect(x.GoPointer(), "showing", cbRefPtr)
499 }499 }
500 500
@@ -518,7 +518,7 @@ func (x *NavigationPage) ConnectShown(cb *func(NavigationPage)) uint32 {
518 518
519 }519 }
520 cbRefPtr := purego.NewCallback(fcb)520 cbRefPtr := purego.NewCallback(fcb)
521- glib.SaveCallback(cbPtr, cbRefPtr)521+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
522 return gobject.SignalConnect(x.GoPointer(), "shown", cbRefPtr)522 return gobject.SignalConnect(x.GoPointer(), "shown", cbRefPtr)
523 }523 }
524 524
@@ -1496,7 +1496,7 @@ func (x *NavigationView) ConnectGetNextPage(cb *func(NavigationView) NavigationP
1496 1496
1497 }1497 }
1498 cbRefPtr := purego.NewCallback(fcb)1498 cbRefPtr := purego.NewCallback(fcb)
1499- glib.SaveCallback(cbPtr, cbRefPtr)1499+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1500 return gobject.SignalConnect(x.GoPointer(), "get-next-page", cbRefPtr)1500 return gobject.SignalConnect(x.GoPointer(), "get-next-page", cbRefPtr)
1501 }1501 }
1502 1502
@@ -1522,7 +1522,7 @@ func (x *NavigationView) ConnectPopped(cb *func(NavigationView, uintptr)) uint32
1522 1522
1523 }1523 }
1524 cbRefPtr := purego.NewCallback(fcb)1524 cbRefPtr := purego.NewCallback(fcb)
1525- glib.SaveCallback(cbPtr, cbRefPtr)1525+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1526 return gobject.SignalConnect(x.GoPointer(), "popped", cbRefPtr)1526 return gobject.SignalConnect(x.GoPointer(), "popped", cbRefPtr)
1527 }1527 }
1528 1528
@@ -1544,7 +1544,7 @@ func (x *NavigationView) ConnectPushed(cb *func(NavigationView)) uint32 {
1544 1544
1545 }1545 }
1546 cbRefPtr := purego.NewCallback(fcb)1546 cbRefPtr := purego.NewCallback(fcb)
1547- glib.SaveCallback(cbPtr, cbRefPtr)1547+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1548 return gobject.SignalConnect(x.GoPointer(), "pushed", cbRefPtr)1548 return gobject.SignalConnect(x.GoPointer(), "pushed", cbRefPtr)
1549 }1549 }
1550 1550
@@ -1566,7 +1566,7 @@ func (x *NavigationView) ConnectReplaced(cb *func(NavigationView)) uint32 {
1566 1566
1567 }1567 }
1568 cbRefPtr := purego.NewCallback(fcb)1568 cbRefPtr := purego.NewCallback(fcb)
1569- glib.SaveCallback(cbPtr, cbRefPtr)1569+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1570 return gobject.SignalConnect(x.GoPointer(), "replaced", cbRefPtr)1570 return gobject.SignalConnect(x.GoPointer(), "replaced", cbRefPtr)
1571 }1571 }
1572 1572
M v4/adw/adw-preferences-group.go +2 -2
@@ -125,7 +125,7 @@ func (x *PreferencesGroup) BindModel(ModelVar gio.ListModel, CreateRowFuncVar *g
125 return cbFn(arg0, arg1)125 return cbFn(arg0, arg1)
126 }126 }
127 CreateRowFuncVarRef = purego.NewCallback(fcb)127 CreateRowFuncVarRef = purego.NewCallback(fcb)
128- glib.SaveCallback(CreateRowFuncVarPtr, CreateRowFuncVarRef)128+ glib.SaveCallbackWithClosure(CreateRowFuncVarPtr, CreateRowFuncVarRef, CreateRowFuncVar)
129 }129 }
130 }130 }
131 131
@@ -140,7 +140,7 @@ func (x *PreferencesGroup) BindModel(ModelVar gio.ListModel, CreateRowFuncVar *g
140 cbFn(arg0)140 cbFn(arg0)
141 }141 }
142 UserDataFreeFuncVarRef = purego.NewCallback(fcb)142 UserDataFreeFuncVarRef = purego.NewCallback(fcb)
143- glib.SaveCallback(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef)143+ glib.SaveCallbackWithClosure(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef, UserDataFreeFuncVar)
144 }144 }
145 }145 }
146 146
M v4/adw/adw-spin-row.go +3 -3
@@ -454,7 +454,7 @@ func (x *SpinRow) ConnectInput(cb *func(SpinRow, *float64) int) uint32 {
454 454
455 }455 }
456 cbRefPtr := purego.NewCallback(fcb)456 cbRefPtr := purego.NewCallback(fcb)
457- glib.SaveCallback(cbPtr, cbRefPtr)457+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
458 return gobject.SignalConnect(x.GoPointer(), "input", cbRefPtr)458 return gobject.SignalConnect(x.GoPointer(), "input", cbRefPtr)
459 }459 }
460 460
@@ -476,7 +476,7 @@ func (x *SpinRow) ConnectOutput(cb *func(SpinRow) bool) uint32 {
476 476
477 }477 }
478 cbRefPtr := purego.NewCallback(fcb)478 cbRefPtr := purego.NewCallback(fcb)
479- glib.SaveCallback(cbPtr, cbRefPtr)479+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
480 return gobject.SignalConnect(x.GoPointer(), "output", cbRefPtr)480 return gobject.SignalConnect(x.GoPointer(), "output", cbRefPtr)
481 }481 }
482 482
@@ -498,7 +498,7 @@ func (x *SpinRow) ConnectWrapped(cb *func(SpinRow)) uint32 {
498 498
499 }499 }
500 cbRefPtr := purego.NewCallback(fcb)500 cbRefPtr := purego.NewCallback(fcb)
501- glib.SaveCallback(cbPtr, cbRefPtr)501+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
502 return gobject.SignalConnect(x.GoPointer(), "wrapped", cbRefPtr)502 return gobject.SignalConnect(x.GoPointer(), "wrapped", cbRefPtr)
503 }503 }
504 504
M v4/adw/adw-split-button.go +2 -2
@@ -503,7 +503,7 @@ func (x *SplitButton) ConnectActivate(cb *func(SplitButton)) uint32 {
503 503
504 }504 }
505 cbRefPtr := purego.NewCallback(fcb)505 cbRefPtr := purego.NewCallback(fcb)
506- glib.SaveCallback(cbPtr, cbRefPtr)506+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
507 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)507 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
508 }508 }
509 509
@@ -523,7 +523,7 @@ func (x *SplitButton) ConnectClicked(cb *func(SplitButton)) uint32 {
523 523
524 }524 }
525 cbRefPtr := purego.NewCallback(fcb)525 cbRefPtr := purego.NewCallback(fcb)
526- glib.SaveCallback(cbPtr, cbRefPtr)526+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
527 return gobject.SignalConnect(x.GoPointer(), "clicked", cbRefPtr)527 return gobject.SignalConnect(x.GoPointer(), "clicked", cbRefPtr)
528 }528 }
529 529
M v4/adw/adw-swipe-tracker.go +4 -4
@@ -408,7 +408,7 @@ func (x *SwipeTracker) ConnectBeginSwipe(cb *func(SwipeTracker)) uint32 {
408 408
409 }409 }
410 cbRefPtr := purego.NewCallback(fcb)410 cbRefPtr := purego.NewCallback(fcb)
411- glib.SaveCallback(cbPtr, cbRefPtr)411+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
412 return gobject.SignalConnect(x.GoPointer(), "begin-swipe", cbRefPtr)412 return gobject.SignalConnect(x.GoPointer(), "begin-swipe", cbRefPtr)
413 }413 }
414 414
@@ -433,7 +433,7 @@ func (x *SwipeTracker) ConnectEndSwipe(cb *func(SwipeTracker, float64, float64))
433 433
434 }434 }
435 cbRefPtr := purego.NewCallback(fcb)435 cbRefPtr := purego.NewCallback(fcb)
436- glib.SaveCallback(cbPtr, cbRefPtr)436+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
437 return gobject.SignalConnect(x.GoPointer(), "end-swipe", cbRefPtr)437 return gobject.SignalConnect(x.GoPointer(), "end-swipe", cbRefPtr)
438 }438 }
439 439
@@ -456,7 +456,7 @@ func (x *SwipeTracker) ConnectPrepare(cb *func(SwipeTracker, NavigationDirection
456 456
457 }457 }
458 cbRefPtr := purego.NewCallback(fcb)458 cbRefPtr := purego.NewCallback(fcb)
459- glib.SaveCallback(cbPtr, cbRefPtr)459+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
460 return gobject.SignalConnect(x.GoPointer(), "prepare", cbRefPtr)460 return gobject.SignalConnect(x.GoPointer(), "prepare", cbRefPtr)
461 }461 }
462 462
@@ -476,7 +476,7 @@ func (x *SwipeTracker) ConnectUpdateSwipe(cb *func(SwipeTracker, float64)) uint3
476 476
477 }477 }
478 cbRefPtr := purego.NewCallback(fcb)478 cbRefPtr := purego.NewCallback(fcb)
479- glib.SaveCallback(cbPtr, cbRefPtr)479+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
480 return gobject.SignalConnect(x.GoPointer(), "update-swipe", cbRefPtr)480 return gobject.SignalConnect(x.GoPointer(), "update-swipe", cbRefPtr)
481 }481 }
482 482
M v4/adw/adw-tab-bar.go +2 -2
@@ -459,7 +459,7 @@ func (x *TabBar) ConnectExtraDragDrop(cb *func(TabBar, uintptr, uintptr) bool) u
459 459
460 }460 }
461 cbRefPtr := purego.NewCallback(fcb)461 cbRefPtr := purego.NewCallback(fcb)
462- glib.SaveCallback(cbPtr, cbRefPtr)462+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
463 return gobject.SignalConnect(x.GoPointer(), "extra-drag-drop", cbRefPtr)463 return gobject.SignalConnect(x.GoPointer(), "extra-drag-drop", cbRefPtr)
464 }464 }
465 465
@@ -487,7 +487,7 @@ func (x *TabBar) ConnectExtraDragValue(cb *func(TabBar, uintptr, uintptr) gdk.Dr
487 487
488 }488 }
489 cbRefPtr := purego.NewCallback(fcb)489 cbRefPtr := purego.NewCallback(fcb)
490- glib.SaveCallback(cbPtr, cbRefPtr)490+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
491 return gobject.SignalConnect(x.GoPointer(), "extra-drag-value", cbRefPtr)491 return gobject.SignalConnect(x.GoPointer(), "extra-drag-value", cbRefPtr)
492 }492 }
493 493
M v4/adw/adw-tab-button.go +2 -2
@@ -145,7 +145,7 @@ func (x *TabButton) ConnectActivate(cb *func(TabButton)) uint32 {
145 145
146 }146 }
147 cbRefPtr := purego.NewCallback(fcb)147 cbRefPtr := purego.NewCallback(fcb)
148- glib.SaveCallback(cbPtr, cbRefPtr)148+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
149 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)149 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
150 }150 }
151 151
@@ -165,7 +165,7 @@ func (x *TabButton) ConnectClicked(cb *func(TabButton)) uint32 {
165 165
166 }166 }
167 cbRefPtr := purego.NewCallback(fcb)167 cbRefPtr := purego.NewCallback(fcb)
168- glib.SaveCallback(cbPtr, cbRefPtr)168+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
169 return gobject.SignalConnect(x.GoPointer(), "clicked", cbRefPtr)169 return gobject.SignalConnect(x.GoPointer(), "clicked", cbRefPtr)
170 }170 }
171 171
M v4/adw/adw-tab-overview.go +3 -3
@@ -596,7 +596,7 @@ func (x *TabOverview) ConnectCreateTab(cb *func(TabOverview) TabPage) uint32 {
596 596
597 }597 }
598 cbRefPtr := purego.NewCallback(fcb)598 cbRefPtr := purego.NewCallback(fcb)
599- glib.SaveCallback(cbPtr, cbRefPtr)599+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
600 return gobject.SignalConnect(x.GoPointer(), "create-tab", cbRefPtr)600 return gobject.SignalConnect(x.GoPointer(), "create-tab", cbRefPtr)
601 }601 }
602 602
@@ -621,7 +621,7 @@ func (x *TabOverview) ConnectExtraDragDrop(cb *func(TabOverview, uintptr, uintpt
621 621
622 }622 }
623 cbRefPtr := purego.NewCallback(fcb)623 cbRefPtr := purego.NewCallback(fcb)
624- glib.SaveCallback(cbPtr, cbRefPtr)624+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
625 return gobject.SignalConnect(x.GoPointer(), "extra-drag-drop", cbRefPtr)625 return gobject.SignalConnect(x.GoPointer(), "extra-drag-drop", cbRefPtr)
626 }626 }
627 627
@@ -649,7 +649,7 @@ func (x *TabOverview) ConnectExtraDragValue(cb *func(TabOverview, uintptr, uintp
649 649
650 }650 }
651 cbRefPtr := purego.NewCallback(fcb)651 cbRefPtr := purego.NewCallback(fcb)
652- glib.SaveCallback(cbPtr, cbRefPtr)652+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
653 return gobject.SignalConnect(x.GoPointer(), "extra-drag-value", cbRefPtr)653 return gobject.SignalConnect(x.GoPointer(), "extra-drag-value", cbRefPtr)
654 }654 }
655 655
M v4/adw/adw-tab-view.go +7 -7
@@ -1867,7 +1867,7 @@ func (x *TabView) ConnectClosePage(cb *func(TabView, uintptr) bool) uint32 {
1867 1867
1868 }1868 }
1869 cbRefPtr := purego.NewCallback(fcb)1869 cbRefPtr := purego.NewCallback(fcb)
1870- glib.SaveCallback(cbPtr, cbRefPtr)1870+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1871 return gobject.SignalConnect(x.GoPointer(), "close-page", cbRefPtr)1871 return gobject.SignalConnect(x.GoPointer(), "close-page", cbRefPtr)
1872 }1872 }
1873 1873
@@ -1893,7 +1893,7 @@ func (x *TabView) ConnectCreateWindow(cb *func(TabView) TabView) uint32 {
1893 1893
1894 }1894 }
1895 cbRefPtr := purego.NewCallback(fcb)1895 cbRefPtr := purego.NewCallback(fcb)
1896- glib.SaveCallback(cbPtr, cbRefPtr)1896+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1897 return gobject.SignalConnect(x.GoPointer(), "create-window", cbRefPtr)1897 return gobject.SignalConnect(x.GoPointer(), "create-window", cbRefPtr)
1898 }1898 }
1899 1899
@@ -1916,7 +1916,7 @@ func (x *TabView) ConnectIndicatorActivated(cb *func(TabView, uintptr)) uint32 {
1916 1916
1917 }1917 }
1918 cbRefPtr := purego.NewCallback(fcb)1918 cbRefPtr := purego.NewCallback(fcb)
1919- glib.SaveCallback(cbPtr, cbRefPtr)1919+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1920 return gobject.SignalConnect(x.GoPointer(), "indicator-activated", cbRefPtr)1920 return gobject.SignalConnect(x.GoPointer(), "indicator-activated", cbRefPtr)
1921 }1921 }
1922 1922
@@ -1939,7 +1939,7 @@ func (x *TabView) ConnectPageAttached(cb *func(TabView, uintptr, int)) uint32 {
1939 1939
1940 }1940 }
1941 cbRefPtr := purego.NewCallback(fcb)1941 cbRefPtr := purego.NewCallback(fcb)
1942- glib.SaveCallback(cbPtr, cbRefPtr)1942+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1943 return gobject.SignalConnect(x.GoPointer(), "page-attached", cbRefPtr)1943 return gobject.SignalConnect(x.GoPointer(), "page-attached", cbRefPtr)
1944 }1944 }
1945 1945
@@ -1967,7 +1967,7 @@ func (x *TabView) ConnectPageDetached(cb *func(TabView, uintptr, int)) uint32 {
1967 1967
1968 }1968 }
1969 cbRefPtr := purego.NewCallback(fcb)1969 cbRefPtr := purego.NewCallback(fcb)
1970- glib.SaveCallback(cbPtr, cbRefPtr)1970+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1971 return gobject.SignalConnect(x.GoPointer(), "page-detached", cbRefPtr)1971 return gobject.SignalConnect(x.GoPointer(), "page-detached", cbRefPtr)
1972 }1972 }
1973 1973
@@ -1987,7 +1987,7 @@ func (x *TabView) ConnectPageReordered(cb *func(TabView, uintptr, int)) uint32 {
1987 1987
1988 }1988 }
1989 cbRefPtr := purego.NewCallback(fcb)1989 cbRefPtr := purego.NewCallback(fcb)
1990- glib.SaveCallback(cbPtr, cbRefPtr)1990+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1991 return gobject.SignalConnect(x.GoPointer(), "page-reordered", cbRefPtr)1991 return gobject.SignalConnect(x.GoPointer(), "page-reordered", cbRefPtr)
1992 }1992 }
1993 1993
@@ -2012,7 +2012,7 @@ func (x *TabView) ConnectSetupMenu(cb *func(TabView, uintptr)) uint32 {
2012 2012
2013 }2013 }
2014 cbRefPtr := purego.NewCallback(fcb)2014 cbRefPtr := purego.NewCallback(fcb)
2015- glib.SaveCallback(cbPtr, cbRefPtr)2015+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2016 return gobject.SignalConnect(x.GoPointer(), "setup-menu", cbRefPtr)2016 return gobject.SignalConnect(x.GoPointer(), "setup-menu", cbRefPtr)
2017 }2017 }
2018 2018
M v4/adw/adw-toast.go +2 -2
@@ -671,7 +671,7 @@ func (x *Toast) ConnectButtonClicked(cb *func(Toast)) uint32 {
671 671
672 }672 }
673 cbRefPtr := purego.NewCallback(fcb)673 cbRefPtr := purego.NewCallback(fcb)
674- glib.SaveCallback(cbPtr, cbRefPtr)674+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
675 return gobject.SignalConnect(x.GoPointer(), "button-clicked", cbRefPtr)675 return gobject.SignalConnect(x.GoPointer(), "button-clicked", cbRefPtr)
676 }676 }
677 677
@@ -691,7 +691,7 @@ func (x *Toast) ConnectDismissed(cb *func(Toast)) uint32 {
691 691
692 }692 }
693 cbRefPtr := purego.NewCallback(fcb)693 cbRefPtr := purego.NewCallback(fcb)
694- glib.SaveCallback(cbPtr, cbRefPtr)694+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
695 return gobject.SignalConnect(x.GoPointer(), "dismissed", cbRefPtr)695 return gobject.SignalConnect(x.GoPointer(), "dismissed", cbRefPtr)
696 }696 }
697 697
M v4/gdk/gdkclipboard.go +6 -6
@@ -127,7 +127,7 @@ func (x *Clipboard) ReadAsync(MimeTypesVar []string, IoPriorityVar int, Cancella
127 cbFn(arg0, arg1, arg2)127 cbFn(arg0, arg1, arg2)
128 }128 }
129 CallbackVarRef = purego.NewCallback(fcb)129 CallbackVarRef = purego.NewCallback(fcb)
130- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)130+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
131 }131 }
132 }132 }
133 133
@@ -178,7 +178,7 @@ func (x *Clipboard) ReadTextAsync(CancellableVar *gio.Cancellable, CallbackVar *
178 cbFn(arg0, arg1, arg2)178 cbFn(arg0, arg1, arg2)
179 }179 }
180 CallbackVarRef = purego.NewCallback(fcb)180 CallbackVarRef = purego.NewCallback(fcb)
181- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)181+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
182 }182 }
183 }183 }
184 184
@@ -223,7 +223,7 @@ func (x *Clipboard) ReadTextureAsync(CancellableVar *gio.Cancellable, CallbackVa
223 cbFn(arg0, arg1, arg2)223 cbFn(arg0, arg1, arg2)
224 }224 }
225 CallbackVarRef = purego.NewCallback(fcb)225 CallbackVarRef = purego.NewCallback(fcb)
226- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)226+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
227 }227 }
228 }228 }
229 229
@@ -275,7 +275,7 @@ func (x *Clipboard) ReadValueAsync(TypeVar types.GType, IoPriorityVar int, Cance
275 cbFn(arg0, arg1, arg2)275 cbFn(arg0, arg1, arg2)
276 }276 }
277 CallbackVarRef = purego.NewCallback(fcb)277 CallbackVarRef = purego.NewCallback(fcb)
278- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)278+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
279 }279 }
280 }280 }
281 281
@@ -403,7 +403,7 @@ func (x *Clipboard) StoreAsync(IoPriorityVar int, CancellableVar *gio.Cancellabl
403 cbFn(arg0, arg1, arg2)403 cbFn(arg0, arg1, arg2)
404 }404 }
405 CallbackVarRef = purego.NewCallback(fcb)405 CallbackVarRef = purego.NewCallback(fcb)
406- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)406+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
407 }407 }
408 }408 }
409 409
@@ -471,7 +471,7 @@ func (x *Clipboard) ConnectChanged(cb *func(Clipboard)) uint32 {
471 471
472 }472 }
473 cbRefPtr := purego.NewCallback(fcb)473 cbRefPtr := purego.NewCallback(fcb)
474- glib.SaveCallback(cbPtr, cbRefPtr)474+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
475 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)475 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
476 }476 }
477 477
M v4/gdk/gdkcontentdeserializer.go +4 -4
@@ -38,7 +38,7 @@ func ContentDeserializeAsync(StreamVar *gio.InputStream, MimeTypeVar string, Typ
38 cbFn(arg0, arg1, arg2)38 cbFn(arg0, arg1, arg2)
39 }39 }
40 CallbackVarRef = purego.NewCallback(fcb)40 CallbackVarRef = purego.NewCallback(fcb)
41- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)41+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
42 }42 }
43 }43 }
44 44
@@ -81,7 +81,7 @@ func ContentRegisterDeserializer(MimeTypeVar string, TypeVar types.GType, Deseri
81 cbFn(arg0)81 cbFn(arg0)
82 }82 }
83 DeserializeVarRef = purego.NewCallback(fcb)83 DeserializeVarRef = purego.NewCallback(fcb)
84- glib.SaveCallback(DeserializeVarPtr, DeserializeVarRef)84+ glib.SaveCallbackWithClosure(DeserializeVarPtr, DeserializeVarRef, DeserializeVar)
85 }85 }
86 }86 }
87 87
@@ -96,7 +96,7 @@ func ContentRegisterDeserializer(MimeTypeVar string, TypeVar types.GType, Deseri
96 cbFn(arg0)96 cbFn(arg0)
97 }97 }
98 NotifyVarRef = purego.NewCallback(fcb)98 NotifyVarRef = purego.NewCallback(fcb)
99- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)99+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
100 }100 }
101 }101 }
102 102
@@ -268,7 +268,7 @@ func (x *ContentDeserializer) SetTaskData(DataVar uintptr, NotifyVar *glib.Destr
268 cbFn(arg0)268 cbFn(arg0)
269 }269 }
270 NotifyVarRef = purego.NewCallback(fcb)270 NotifyVarRef = purego.NewCallback(fcb)
271- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)271+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
272 }272 }
273 }273 }
274 274
M v4/gdk/gdkcontentprovider.go +2 -2
@@ -416,7 +416,7 @@ func (x *ContentProvider) WriteMimeTypeAsync(MimeTypeVar string, StreamVar *gio.
416 cbFn(arg0, arg1, arg2)416 cbFn(arg0, arg1, arg2)
417 }417 }
418 CallbackVarRef = purego.NewCallback(fcb)418 CallbackVarRef = purego.NewCallback(fcb)
419- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)419+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
420 }420 }
421 }421 }
422 422
@@ -484,7 +484,7 @@ func (x *ContentProvider) ConnectContentChanged(cb *func(ContentProvider)) uint3
484 484
485 }485 }
486 cbRefPtr := purego.NewCallback(fcb)486 cbRefPtr := purego.NewCallback(fcb)
487- glib.SaveCallback(cbPtr, cbRefPtr)487+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
488 return gobject.SignalConnect(x.GoPointer(), "content-changed", cbRefPtr)488 return gobject.SignalConnect(x.GoPointer(), "content-changed", cbRefPtr)
489 }489 }
490 490
M v4/gdk/gdkcontentserializer.go +4 -4
@@ -39,7 +39,7 @@ func ContentRegisterSerializer(TypeVar types.GType, MimeTypeVar string, Serializ
39 cbFn(arg0)39 cbFn(arg0)
40 }40 }
41 SerializeVarRef = purego.NewCallback(fcb)41 SerializeVarRef = purego.NewCallback(fcb)
42- glib.SaveCallback(SerializeVarPtr, SerializeVarRef)42+ glib.SaveCallbackWithClosure(SerializeVarPtr, SerializeVarRef, SerializeVar)
43 }43 }
44 }44 }
45 45
@@ -54,7 +54,7 @@ func ContentRegisterSerializer(TypeVar types.GType, MimeTypeVar string, Serializ
54 cbFn(arg0)54 cbFn(arg0)
55 }55 }
56 NotifyVarRef = purego.NewCallback(fcb)56 NotifyVarRef = purego.NewCallback(fcb)
57- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)57+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
58 }58 }
59 }59 }
60 60
@@ -81,7 +81,7 @@ func ContentSerializeAsync(StreamVar *gio.OutputStream, MimeTypeVar string, Valu
81 cbFn(arg0, arg1, arg2)81 cbFn(arg0, arg1, arg2)
82 }82 }
83 CallbackVarRef = purego.NewCallback(fcb)83 CallbackVarRef = purego.NewCallback(fcb)
84- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)84+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
85 }85 }
86 }86 }
87 87
@@ -269,7 +269,7 @@ func (x *ContentSerializer) SetTaskData(DataVar uintptr, NotifyVar *glib.Destroy
269 cbFn(arg0)269 cbFn(arg0)
270 }270 }
271 NotifyVarRef = purego.NewCallback(fcb)271 NotifyVarRef = purego.NewCallback(fcb)
272- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)272+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
273 }273 }
274 }274 }
275 275
M v4/gdk/gdkcursor.go +2 -2
@@ -95,7 +95,7 @@ func NewCursorFromCallback(CallbackVar *CursorGetTextureCallback, DataVar uintpt
95 return cbFn(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7)95 return cbFn(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7)
96 }96 }
97 CallbackVarRef = purego.NewCallback(fcb)97 CallbackVarRef = purego.NewCallback(fcb)
98- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)98+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
99 }99 }
100 }100 }
101 101
@@ -110,7 +110,7 @@ func NewCursorFromCallback(CallbackVar *CursorGetTextureCallback, DataVar uintpt
110 cbFn(arg0)110 cbFn(arg0)
111 }111 }
112 DestroyVarRef = purego.NewCallback(fcb)112 DestroyVarRef = purego.NewCallback(fcb)
113- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)113+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
114 }114 }
115 }115 }
116 116
M v4/gdk/gdkdevice.go +2 -2
@@ -570,7 +570,7 @@ func (x *Device) ConnectChanged(cb *func(Device)) uint32 {
570 570
571 }571 }
572 cbRefPtr := purego.NewCallback(fcb)572 cbRefPtr := purego.NewCallback(fcb)
573- glib.SaveCallback(cbPtr, cbRefPtr)573+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
574 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)574 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
575 }575 }
576 576
@@ -590,7 +590,7 @@ func (x *Device) ConnectToolChanged(cb *func(Device, uintptr)) uint32 {
590 590
591 }591 }
592 cbRefPtr := purego.NewCallback(fcb)592 cbRefPtr := purego.NewCallback(fcb)
593- glib.SaveCallback(cbPtr, cbRefPtr)593+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
594 return gobject.SignalConnect(x.GoPointer(), "tool-changed", cbRefPtr)594 return gobject.SignalConnect(x.GoPointer(), "tool-changed", cbRefPtr)
595 }595 }
596 596
M v4/gdk/gdkdisplay.go +5 -5
@@ -581,7 +581,7 @@ func (x *Display) ConnectClosed(cb *func(Display, bool)) uint32 {
581 581
582 }582 }
583 cbRefPtr := purego.NewCallback(fcb)583 cbRefPtr := purego.NewCallback(fcb)
584- glib.SaveCallback(cbPtr, cbRefPtr)584+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
585 return gobject.SignalConnect(x.GoPointer(), "closed", cbRefPtr)585 return gobject.SignalConnect(x.GoPointer(), "closed", cbRefPtr)
586 }586 }
587 587
@@ -601,7 +601,7 @@ func (x *Display) ConnectOpened(cb *func(Display)) uint32 {
601 601
602 }602 }
603 cbRefPtr := purego.NewCallback(fcb)603 cbRefPtr := purego.NewCallback(fcb)
604- glib.SaveCallback(cbPtr, cbRefPtr)604+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
605 return gobject.SignalConnect(x.GoPointer(), "opened", cbRefPtr)605 return gobject.SignalConnect(x.GoPointer(), "opened", cbRefPtr)
606 }606 }
607 607
@@ -621,7 +621,7 @@ func (x *Display) ConnectSeatAdded(cb *func(Display, uintptr)) uint32 {
621 621
622 }622 }
623 cbRefPtr := purego.NewCallback(fcb)623 cbRefPtr := purego.NewCallback(fcb)
624- glib.SaveCallback(cbPtr, cbRefPtr)624+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
625 return gobject.SignalConnect(x.GoPointer(), "seat-added", cbRefPtr)625 return gobject.SignalConnect(x.GoPointer(), "seat-added", cbRefPtr)
626 }626 }
627 627
@@ -641,7 +641,7 @@ func (x *Display) ConnectSeatRemoved(cb *func(Display, uintptr)) uint32 {
641 641
642 }642 }
643 cbRefPtr := purego.NewCallback(fcb)643 cbRefPtr := purego.NewCallback(fcb)
644- glib.SaveCallback(cbPtr, cbRefPtr)644+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
645 return gobject.SignalConnect(x.GoPointer(), "seat-removed", cbRefPtr)645 return gobject.SignalConnect(x.GoPointer(), "seat-removed", cbRefPtr)
646 }646 }
647 647
@@ -661,7 +661,7 @@ func (x *Display) ConnectSettingChanged(cb *func(Display, string)) uint32 {
661 661
662 }662 }
663 cbRefPtr := purego.NewCallback(fcb)663 cbRefPtr := purego.NewCallback(fcb)
664- glib.SaveCallback(cbPtr, cbRefPtr)664+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
665 return gobject.SignalConnect(x.GoPointer(), "setting-changed", cbRefPtr)665 return gobject.SignalConnect(x.GoPointer(), "setting-changed", cbRefPtr)
666 }666 }
667 667
M v4/gdk/gdkdisplaymanager.go +1 -1
@@ -202,7 +202,7 @@ func (x *DisplayManager) ConnectDisplayOpened(cb *func(DisplayManager, uintptr))
202 202
203 }203 }
204 cbRefPtr := purego.NewCallback(fcb)204 cbRefPtr := purego.NewCallback(fcb)
205- glib.SaveCallback(cbPtr, cbRefPtr)205+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
206 return gobject.SignalConnect(x.GoPointer(), "display-opened", cbRefPtr)206 return gobject.SignalConnect(x.GoPointer(), "display-opened", cbRefPtr)
207 }207 }
208 208
M v4/gdk/gdkdmabuftexturebuilder.go +1 -1
@@ -142,7 +142,7 @@ func (x *DmabufTextureBuilder) Build(DestroyVar *glib.DestroyNotify, DataVar uin
142 cbFn(arg0)142 cbFn(arg0)
143 }143 }
144 DestroyVarRef = purego.NewCallback(fcb)144 DestroyVarRef = purego.NewCallback(fcb)
145- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)145+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
146 }146 }
147 }147 }
148 148
M v4/gdk/gdkdrag.go +3 -3
@@ -266,7 +266,7 @@ func (x *Drag) ConnectCancel(cb *func(Drag, DragCancelReason)) uint32 {
266 266
267 }267 }
268 cbRefPtr := purego.NewCallback(fcb)268 cbRefPtr := purego.NewCallback(fcb)
269- glib.SaveCallback(cbPtr, cbRefPtr)269+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
270 return gobject.SignalConnect(x.GoPointer(), "cancel", cbRefPtr)270 return gobject.SignalConnect(x.GoPointer(), "cancel", cbRefPtr)
271 }271 }
272 272
@@ -288,7 +288,7 @@ func (x *Drag) ConnectDndFinished(cb *func(Drag)) uint32 {
288 288
289 }289 }
290 cbRefPtr := purego.NewCallback(fcb)290 cbRefPtr := purego.NewCallback(fcb)
291- glib.SaveCallback(cbPtr, cbRefPtr)291+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
292 return gobject.SignalConnect(x.GoPointer(), "dnd-finished", cbRefPtr)292 return gobject.SignalConnect(x.GoPointer(), "dnd-finished", cbRefPtr)
293 }293 }
294 294
@@ -308,7 +308,7 @@ func (x *Drag) ConnectDropPerformed(cb *func(Drag)) uint32 {
308 308
309 }309 }
310 cbRefPtr := purego.NewCallback(fcb)310 cbRefPtr := purego.NewCallback(fcb)
311- glib.SaveCallback(cbPtr, cbRefPtr)311+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
312 return gobject.SignalConnect(x.GoPointer(), "drop-performed", cbRefPtr)312 return gobject.SignalConnect(x.GoPointer(), "drop-performed", cbRefPtr)
313 }313 }
314 314
M v4/gdk/gdkdrop.go +2 -2
@@ -176,7 +176,7 @@ func (x *Drop) ReadAsync(MimeTypesVar []string, IoPriorityVar int, CancellableVa
176 cbFn(arg0, arg1, arg2)176 cbFn(arg0, arg1, arg2)
177 }177 }
178 CallbackVarRef = purego.NewCallback(fcb)178 CallbackVarRef = purego.NewCallback(fcb)
179- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)179+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
180 }180 }
181 }181 }
182 182
@@ -233,7 +233,7 @@ func (x *Drop) ReadValueAsync(TypeVar types.GType, IoPriorityVar int, Cancellabl
233 cbFn(arg0, arg1, arg2)233 cbFn(arg0, arg1, arg2)
234 }234 }
235 CallbackVarRef = purego.NewCallback(fcb)235 CallbackVarRef = purego.NewCallback(fcb)
236- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)236+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
237 }237 }
238 }238 }
239 239
M v4/gdk/gdkframeclock.go +7 -7
@@ -276,7 +276,7 @@ func (x *FrameClock) ConnectAfterPaint(cb *func(FrameClock)) uint32 {
276 276
277 }277 }
278 cbRefPtr := purego.NewCallback(fcb)278 cbRefPtr := purego.NewCallback(fcb)
279- glib.SaveCallback(cbPtr, cbRefPtr)279+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
280 return gobject.SignalConnect(x.GoPointer(), "after-paint", cbRefPtr)280 return gobject.SignalConnect(x.GoPointer(), "after-paint", cbRefPtr)
281 }281 }
282 282
@@ -298,7 +298,7 @@ func (x *FrameClock) ConnectBeforePaint(cb *func(FrameClock)) uint32 {
298 298
299 }299 }
300 cbRefPtr := purego.NewCallback(fcb)300 cbRefPtr := purego.NewCallback(fcb)
301- glib.SaveCallback(cbPtr, cbRefPtr)301+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
302 return gobject.SignalConnect(x.GoPointer(), "before-paint", cbRefPtr)302 return gobject.SignalConnect(x.GoPointer(), "before-paint", cbRefPtr)
303 }303 }
304 304
@@ -321,7 +321,7 @@ func (x *FrameClock) ConnectFlushEvents(cb *func(FrameClock)) uint32 {
321 321
322 }322 }
323 cbRefPtr := purego.NewCallback(fcb)323 cbRefPtr := purego.NewCallback(fcb)
324- glib.SaveCallback(cbPtr, cbRefPtr)324+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
325 return gobject.SignalConnect(x.GoPointer(), "flush-events", cbRefPtr)325 return gobject.SignalConnect(x.GoPointer(), "flush-events", cbRefPtr)
326 }326 }
327 327
@@ -345,7 +345,7 @@ func (x *FrameClock) ConnectLayout(cb *func(FrameClock)) uint32 {
345 345
346 }346 }
347 cbRefPtr := purego.NewCallback(fcb)347 cbRefPtr := purego.NewCallback(fcb)
348- glib.SaveCallback(cbPtr, cbRefPtr)348+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
349 return gobject.SignalConnect(x.GoPointer(), "layout", cbRefPtr)349 return gobject.SignalConnect(x.GoPointer(), "layout", cbRefPtr)
350 }350 }
351 351
@@ -371,7 +371,7 @@ func (x *FrameClock) ConnectPaint(cb *func(FrameClock)) uint32 {
371 371
372 }372 }
373 cbRefPtr := purego.NewCallback(fcb)373 cbRefPtr := purego.NewCallback(fcb)
374- glib.SaveCallback(cbPtr, cbRefPtr)374+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
375 return gobject.SignalConnect(x.GoPointer(), "paint", cbRefPtr)375 return gobject.SignalConnect(x.GoPointer(), "paint", cbRefPtr)
376 }376 }
377 377
@@ -394,7 +394,7 @@ func (x *FrameClock) ConnectResumeEvents(cb *func(FrameClock)) uint32 {
394 394
395 }395 }
396 cbRefPtr := purego.NewCallback(fcb)396 cbRefPtr := purego.NewCallback(fcb)
397- glib.SaveCallback(cbPtr, cbRefPtr)397+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
398 return gobject.SignalConnect(x.GoPointer(), "resume-events", cbRefPtr)398 return gobject.SignalConnect(x.GoPointer(), "resume-events", cbRefPtr)
399 }399 }
400 400
@@ -420,7 +420,7 @@ func (x *FrameClock) ConnectUpdate(cb *func(FrameClock)) uint32 {
420 420
421 }421 }
422 cbRefPtr := purego.NewCallback(fcb)422 cbRefPtr := purego.NewCallback(fcb)
423- glib.SaveCallback(cbPtr, cbRefPtr)423+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
424 return gobject.SignalConnect(x.GoPointer(), "update", cbRefPtr)424 return gobject.SignalConnect(x.GoPointer(), "update", cbRefPtr)
425 }425 }
426 426
M v4/gdk/gdkgltexture.go +1 -1
@@ -58,7 +58,7 @@ func NewGLTexture(ContextVar *GLContext, IdVar uint, WidthVar int, HeightVar int
58 cbFn(arg0)58 cbFn(arg0)
59 }59 }
60 DestroyVarRef = purego.NewCallback(fcb)60 DestroyVarRef = purego.NewCallback(fcb)
61- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)61+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
62 }62 }
63 }63 }
64 64
M v4/gdk/gdkgltexturebuilder.go +1 -1
@@ -92,7 +92,7 @@ func (x *GLTextureBuilder) Build(DestroyVar *glib.DestroyNotify, DataVar uintptr
92 cbFn(arg0)92 cbFn(arg0)
93 }93 }
94 DestroyVarRef = purego.NewCallback(fcb)94 DestroyVarRef = purego.NewCallback(fcb)
95- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)95+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
96 }96 }
97 }97 }
98 98
M v4/gdk/gdkmonitor.go +1 -1
@@ -359,7 +359,7 @@ func (x *Monitor) ConnectInvalidate(cb *func(Monitor)) uint32 {
359 359
360 }360 }
361 cbRefPtr := purego.NewCallback(fcb)361 cbRefPtr := purego.NewCallback(fcb)
362- glib.SaveCallback(cbPtr, cbRefPtr)362+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
363 return gobject.SignalConnect(x.GoPointer(), "invalidate", cbRefPtr)363 return gobject.SignalConnect(x.GoPointer(), "invalidate", cbRefPtr)
364 }364 }
365 365
M v4/gdk/gdkseat.go +4 -4
@@ -165,7 +165,7 @@ func (x *Seat) ConnectDeviceAdded(cb *func(Seat, uintptr)) uint32 {
165 165
166 }166 }
167 cbRefPtr := purego.NewCallback(fcb)167 cbRefPtr := purego.NewCallback(fcb)
168- glib.SaveCallback(cbPtr, cbRefPtr)168+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
169 return gobject.SignalConnect(x.GoPointer(), "device-added", cbRefPtr)169 return gobject.SignalConnect(x.GoPointer(), "device-added", cbRefPtr)
170 }170 }
171 171
@@ -185,7 +185,7 @@ func (x *Seat) ConnectDeviceRemoved(cb *func(Seat, uintptr)) uint32 {
185 185
186 }186 }
187 cbRefPtr := purego.NewCallback(fcb)187 cbRefPtr := purego.NewCallback(fcb)
188- glib.SaveCallback(cbPtr, cbRefPtr)188+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
189 return gobject.SignalConnect(x.GoPointer(), "device-removed", cbRefPtr)189 return gobject.SignalConnect(x.GoPointer(), "device-removed", cbRefPtr)
190 }190 }
191 191
@@ -211,7 +211,7 @@ func (x *Seat) ConnectToolAdded(cb *func(Seat, uintptr)) uint32 {
211 211
212 }212 }
213 cbRefPtr := purego.NewCallback(fcb)213 cbRefPtr := purego.NewCallback(fcb)
214- glib.SaveCallback(cbPtr, cbRefPtr)214+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
215 return gobject.SignalConnect(x.GoPointer(), "tool-added", cbRefPtr)215 return gobject.SignalConnect(x.GoPointer(), "tool-added", cbRefPtr)
216 }216 }
217 217
@@ -231,7 +231,7 @@ func (x *Seat) ConnectToolRemoved(cb *func(Seat, uintptr)) uint32 {
231 231
232 }232 }
233 cbRefPtr := purego.NewCallback(fcb)233 cbRefPtr := purego.NewCallback(fcb)
234- glib.SaveCallback(cbPtr, cbRefPtr)234+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
235 return gobject.SignalConnect(x.GoPointer(), "tool-removed", cbRefPtr)235 return gobject.SignalConnect(x.GoPointer(), "tool-removed", cbRefPtr)
236 }236 }
237 237
M v4/gdk/gdksurface.go +5 -5
@@ -579,7 +579,7 @@ func (x *Surface) ConnectEnterMonitor(cb *func(Surface, uintptr)) uint32 {
579 579
580 }580 }
581 cbRefPtr := purego.NewCallback(fcb)581 cbRefPtr := purego.NewCallback(fcb)
582- glib.SaveCallback(cbPtr, cbRefPtr)582+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
583 return gobject.SignalConnect(x.GoPointer(), "enter-monitor", cbRefPtr)583 return gobject.SignalConnect(x.GoPointer(), "enter-monitor", cbRefPtr)
584 }584 }
585 585
@@ -599,7 +599,7 @@ func (x *Surface) ConnectEvent(cb *func(Surface, *Event) bool) uint32 {
599 599
600 }600 }
601 cbRefPtr := purego.NewCallback(fcb)601 cbRefPtr := purego.NewCallback(fcb)
602- glib.SaveCallback(cbPtr, cbRefPtr)602+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
603 return gobject.SignalConnect(x.GoPointer(), "event", cbRefPtr)603 return gobject.SignalConnect(x.GoPointer(), "event", cbRefPtr)
604 }604 }
605 605
@@ -623,7 +623,7 @@ func (x *Surface) ConnectLayout(cb *func(Surface, int, int)) uint32 {
623 623
624 }624 }
625 cbRefPtr := purego.NewCallback(fcb)625 cbRefPtr := purego.NewCallback(fcb)
626- glib.SaveCallback(cbPtr, cbRefPtr)626+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
627 return gobject.SignalConnect(x.GoPointer(), "layout", cbRefPtr)627 return gobject.SignalConnect(x.GoPointer(), "layout", cbRefPtr)
628 }628 }
629 629
@@ -643,7 +643,7 @@ func (x *Surface) ConnectLeaveMonitor(cb *func(Surface, uintptr)) uint32 {
643 643
644 }644 }
645 cbRefPtr := purego.NewCallback(fcb)645 cbRefPtr := purego.NewCallback(fcb)
646- glib.SaveCallback(cbPtr, cbRefPtr)646+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
647 return gobject.SignalConnect(x.GoPointer(), "leave-monitor", cbRefPtr)647 return gobject.SignalConnect(x.GoPointer(), "leave-monitor", cbRefPtr)
648 }648 }
649 649
@@ -663,7 +663,7 @@ func (x *Surface) ConnectRender(cb *func(Surface, uintptr) bool) uint32 {
663 663
664 }664 }
665 cbRefPtr := purego.NewCallback(fcb)665 cbRefPtr := purego.NewCallback(fcb)
666- glib.SaveCallback(cbPtr, cbRefPtr)666+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
667 return gobject.SignalConnect(x.GoPointer(), "render", cbRefPtr)667 return gobject.SignalConnect(x.GoPointer(), "render", cbRefPtr)
668 }668 }
669 669
M v4/gdk/gdkvulkancontext.go +1 -1
@@ -75,7 +75,7 @@ func (x *VulkanContext) ConnectImagesUpdated(cb *func(VulkanContext)) uint32 {
75 75
76 }76 }
77 cbRefPtr := purego.NewCallback(fcb)77 cbRefPtr := purego.NewCallback(fcb)
78- glib.SaveCallback(cbPtr, cbRefPtr)78+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
79 return gobject.SignalConnect(x.GoPointer(), "images-updated", cbRefPtr)79 return gobject.SignalConnect(x.GoPointer(), "images-updated", cbRefPtr)
80 }80 }
81 81
M v4/gdkpixbuf/gdk-pixbuf-animation.go +1 -1
@@ -602,7 +602,7 @@ func PixbufAnimationNewFromStreamAsync(StreamVar *gio.InputStream, CancellableVa
602 cbFn(arg0, arg1, arg2)602 cbFn(arg0, arg1, arg2)
603 }603 }
604 CallbackVarRef = purego.NewCallback(fcb)604 CallbackVarRef = purego.NewCallback(fcb)
605- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)605+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
606 }606 }
607 }607 }
608 608
M v4/gdkpixbuf/gdk-pixbuf-loader.go +4 -4
@@ -441,7 +441,7 @@ func (x *PixbufLoader) ConnectAreaPrepared(cb *func(PixbufLoader)) uint32 {
441 441
442 }442 }
443 cbRefPtr := purego.NewCallback(fcb)443 cbRefPtr := purego.NewCallback(fcb)
444- glib.SaveCallback(cbPtr, cbRefPtr)444+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
445 return gobject.SignalConnect(x.GoPointer(), "area-prepared", cbRefPtr)445 return gobject.SignalConnect(x.GoPointer(), "area-prepared", cbRefPtr)
446 }446 }
447 447
@@ -468,7 +468,7 @@ func (x *PixbufLoader) ConnectAreaUpdated(cb *func(PixbufLoader, int, int, int,
468 468
469 }469 }
470 cbRefPtr := purego.NewCallback(fcb)470 cbRefPtr := purego.NewCallback(fcb)
471- glib.SaveCallback(cbPtr, cbRefPtr)471+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
472 return gobject.SignalConnect(x.GoPointer(), "area-updated", cbRefPtr)472 return gobject.SignalConnect(x.GoPointer(), "area-updated", cbRefPtr)
473 }473 }
474 474
@@ -492,7 +492,7 @@ func (x *PixbufLoader) ConnectClosed(cb *func(PixbufLoader)) uint32 {
492 492
493 }493 }
494 cbRefPtr := purego.NewCallback(fcb)494 cbRefPtr := purego.NewCallback(fcb)
495- glib.SaveCallback(cbPtr, cbRefPtr)495+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
496 return gobject.SignalConnect(x.GoPointer(), "closed", cbRefPtr)496 return gobject.SignalConnect(x.GoPointer(), "closed", cbRefPtr)
497 }497 }
498 498
@@ -518,7 +518,7 @@ func (x *PixbufLoader) ConnectSizePrepared(cb *func(PixbufLoader, int, int)) uin
518 518
519 }519 }
520 cbRefPtr := purego.NewCallback(fcb)520 cbRefPtr := purego.NewCallback(fcb)
521- glib.SaveCallback(cbPtr, cbRefPtr)521+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
522 return gobject.SignalConnect(x.GoPointer(), "size-prepared", cbRefPtr)522 return gobject.SignalConnect(x.GoPointer(), "size-prepared", cbRefPtr)
523 }523 }
524 524
M v4/gdkpixbuf/gdk-pixbuf.go +8 -8
@@ -232,7 +232,7 @@ func NewPixbufFromData(DataVar []byte, ColorspaceVar Colorspace, HasAlphaVar boo
232 cbFn(arg0, arg1)232 cbFn(arg0, arg1)
233 }233 }
234 DestroyFnVarRef = purego.NewCallback(fcb)234 DestroyFnVarRef = purego.NewCallback(fcb)
235- glib.SaveCallback(DestroyFnVarPtr, DestroyFnVarRef)235+ glib.SaveCallbackWithClosure(DestroyFnVarPtr, DestroyFnVarRef, DestroyFnVar)
236 }236 }
237 }237 }
238 238
@@ -1191,7 +1191,7 @@ func (x *Pixbuf) SaveToCallback(SaveFuncVar *PixbufSaveFunc, UserDataVar uintptr
1191 return cbFn(arg0, arg1, arg2, arg3)1191 return cbFn(arg0, arg1, arg2, arg3)
1192 }1192 }
1193 SaveFuncVarRef = purego.NewCallback(fcb)1193 SaveFuncVarRef = purego.NewCallback(fcb)
1194- glib.SaveCallback(SaveFuncVarPtr, SaveFuncVarRef)1194+ glib.SaveCallbackWithClosure(SaveFuncVarPtr, SaveFuncVarRef, SaveFuncVar)
1195 }1195 }
1196 }1196 }
1197 1197
@@ -1224,7 +1224,7 @@ func (x *Pixbuf) SaveToCallbackv(SaveFuncVar *PixbufSaveFunc, UserDataVar uintpt
1224 return cbFn(arg0, arg1, arg2, arg3)1224 return cbFn(arg0, arg1, arg2, arg3)
1225 }1225 }
1226 SaveFuncVarRef = purego.NewCallback(fcb)1226 SaveFuncVarRef = purego.NewCallback(fcb)
1227- glib.SaveCallback(SaveFuncVarPtr, SaveFuncVarRef)1227+ glib.SaveCallbackWithClosure(SaveFuncVarPtr, SaveFuncVarRef, SaveFuncVar)
1228 }1228 }
1229 }1229 }
1230 1230
@@ -1281,7 +1281,7 @@ func (x *Pixbuf) SaveToStreamAsync(StreamVar *gio.OutputStream, TypeVar string,
1281 cbFn(arg0, arg1, arg2)1281 cbFn(arg0, arg1, arg2)
1282 }1282 }
1283 CallbackVarRef = purego.NewCallback(fcb)1283 CallbackVarRef = purego.NewCallback(fcb)
1284- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)1284+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
1285 }1285 }
1286 }1286 }
1287 1287
@@ -1333,7 +1333,7 @@ func (x *Pixbuf) SaveToStreamvAsync(StreamVar *gio.OutputStream, TypeVar string,
1333 cbFn(arg0, arg1, arg2)1333 cbFn(arg0, arg1, arg2)
1334 }1334 }
1335 CallbackVarRef = purego.NewCallback(fcb)1335 CallbackVarRef = purego.NewCallback(fcb)
1336- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)1336+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
1337 }1337 }
1338 }1338 }
1339 1339
@@ -1746,7 +1746,7 @@ func PixbufGetFileInfoAsync(FilenameVar string, CancellableVar *gio.Cancellable,
1746 cbFn(arg0, arg1, arg2)1746 cbFn(arg0, arg1, arg2)
1747 }1747 }
1748 CallbackVarRef = purego.NewCallback(fcb)1748 CallbackVarRef = purego.NewCallback(fcb)
1749- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)1749+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
1750 }1750 }
1751 }1751 }
1752 1752
@@ -1831,7 +1831,7 @@ func PixbufNewFromStreamAsync(StreamVar *gio.InputStream, CancellableVar *gio.Ca
1831 cbFn(arg0, arg1, arg2)1831 cbFn(arg0, arg1, arg2)
1832 }1832 }
1833 CallbackVarRef = purego.NewCallback(fcb)1833 CallbackVarRef = purego.NewCallback(fcb)
1834- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)1834+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
1835 }1835 }
1836 }1836 }
1837 1837
@@ -1861,7 +1861,7 @@ func PixbufNewFromStreamAtScaleAsync(StreamVar *gio.InputStream, WidthVar int, H
1861 cbFn(arg0, arg1, arg2)1861 cbFn(arg0, arg1, arg2)
1862 }1862 }
1863 CallbackVarRef = purego.NewCallback(fcb)1863 CallbackVarRef = purego.NewCallback(fcb)
1864- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)1864+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
1865 }1865 }
1866 }1866 }
1867 1867
M v4/gio/gappinfo.go +7 -7
@@ -1559,7 +1559,7 @@ func AppInfoGetDefaultForTypeAsync(ContentTypeVar string, MustSupportUrisVar boo
1559 cbFn(arg0, arg1, arg2)1559 cbFn(arg0, arg1, arg2)
1560 }1560 }
1561 CallbackVarRef = purego.NewCallback(fcb)1561 CallbackVarRef = purego.NewCallback(fcb)
1562- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)1562+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
1563 }1563 }
1564 }1564 }
1565 1565
@@ -1630,7 +1630,7 @@ func AppInfoGetDefaultForUriSchemeAsync(UriSchemeVar string, CancellableVar *Can
1630 cbFn(arg0, arg1, arg2)1630 cbFn(arg0, arg1, arg2)
1631 }1631 }
1632 CallbackVarRef = purego.NewCallback(fcb)1632 CallbackVarRef = purego.NewCallback(fcb)
1633- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)1633+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
1634 }1634 }
1635 }1635 }
1636 1636
@@ -1736,7 +1736,7 @@ func AppInfoLaunchDefaultForUriAsync(UriVar string, ContextVar *AppLaunchContext
1736 cbFn(arg0, arg1, arg2)1736 cbFn(arg0, arg1, arg2)
1737 }1737 }
1738 CallbackVarRef = purego.NewCallback(fcb)1738 CallbackVarRef = purego.NewCallback(fcb)
1739- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)1739+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
1740 }1740 }
1741 }1741 }
1742 1742
@@ -1855,7 +1855,7 @@ func (x *AppInfoMonitor) ConnectChanged(cb *func(AppInfoMonitor)) uint32 {
1855 1855
1856 }1856 }
1857 cbRefPtr := purego.NewCallback(fcb)1857 cbRefPtr := purego.NewCallback(fcb)
1858- glib.SaveCallback(cbPtr, cbRefPtr)1858+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1859 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)1859 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
1860 }1860 }
1861 1861
@@ -2037,7 +2037,7 @@ func (x *AppLaunchContext) ConnectLaunchFailed(cb *func(AppLaunchContext, string
2037 2037
2038 }2038 }
2039 cbRefPtr := purego.NewCallback(fcb)2039 cbRefPtr := purego.NewCallback(fcb)
2040- glib.SaveCallback(cbPtr, cbRefPtr)2040+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2041 return gobject.SignalConnect(x.GoPointer(), "launch-failed", cbRefPtr)2041 return gobject.SignalConnect(x.GoPointer(), "launch-failed", cbRefPtr)
2042 }2042 }
2043 2043
@@ -2075,7 +2075,7 @@ func (x *AppLaunchContext) ConnectLaunchStarted(cb *func(AppLaunchContext, uintp
2075 2075
2076 }2076 }
2077 cbRefPtr := purego.NewCallback(fcb)2077 cbRefPtr := purego.NewCallback(fcb)
2078- glib.SaveCallback(cbPtr, cbRefPtr)2078+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2079 return gobject.SignalConnect(x.GoPointer(), "launch-started", cbRefPtr)2079 return gobject.SignalConnect(x.GoPointer(), "launch-started", cbRefPtr)
2080 }2080 }
2081 2081
@@ -2115,7 +2115,7 @@ func (x *AppLaunchContext) ConnectLaunched(cb *func(AppLaunchContext, uintptr, u
2115 2115
2116 }2116 }
2117 cbRefPtr := purego.NewCallback(fcb)2117 cbRefPtr := purego.NewCallback(fcb)
2118- glib.SaveCallback(cbPtr, cbRefPtr)2118+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2119 return gobject.SignalConnect(x.GoPointer(), "launched", cbRefPtr)2119 return gobject.SignalConnect(x.GoPointer(), "launched", cbRefPtr)
2120 }2120 }
2121 2121
M v4/gio/gapplication.go +7 -7
@@ -1586,7 +1586,7 @@ func (x *Application) ConnectActivate(cb *func(Application)) uint32 {
1586 1586
1587 }1587 }
1588 cbRefPtr := purego.NewCallback(fcb)1588 cbRefPtr := purego.NewCallback(fcb)
1589- glib.SaveCallback(cbPtr, cbRefPtr)1589+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1590 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)1590 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
1591 }1591 }
1592 1592
@@ -1608,7 +1608,7 @@ func (x *Application) ConnectCommandLine(cb *func(Application, uintptr) int) uin
1608 1608
1609 }1609 }
1610 cbRefPtr := purego.NewCallback(fcb)1610 cbRefPtr := purego.NewCallback(fcb)
1611- glib.SaveCallback(cbPtr, cbRefPtr)1611+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1612 return gobject.SignalConnect(x.GoPointer(), "command-line", cbRefPtr)1612 return gobject.SignalConnect(x.GoPointer(), "command-line", cbRefPtr)
1613 }1613 }
1614 1614
@@ -1668,7 +1668,7 @@ func (x *Application) ConnectHandleLocalOptions(cb *func(Application, uintptr) i
1668 1668
1669 }1669 }
1670 cbRefPtr := purego.NewCallback(fcb)1670 cbRefPtr := purego.NewCallback(fcb)
1671- glib.SaveCallback(cbPtr, cbRefPtr)1671+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1672 return gobject.SignalConnect(x.GoPointer(), "handle-local-options", cbRefPtr)1672 return gobject.SignalConnect(x.GoPointer(), "handle-local-options", cbRefPtr)
1673 }1673 }
1674 1674
@@ -1692,7 +1692,7 @@ func (x *Application) ConnectNameLost(cb *func(Application) bool) uint32 {
1692 1692
1693 }1693 }
1694 cbRefPtr := purego.NewCallback(fcb)1694 cbRefPtr := purego.NewCallback(fcb)
1695- glib.SaveCallback(cbPtr, cbRefPtr)1695+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1696 return gobject.SignalConnect(x.GoPointer(), "name-lost", cbRefPtr)1696 return gobject.SignalConnect(x.GoPointer(), "name-lost", cbRefPtr)
1697 }1697 }
1698 1698
@@ -1713,7 +1713,7 @@ func (x *Application) ConnectOpen(cb *func(Application, uintptr, int, string)) u
1713 1713
1714 }1714 }
1715 cbRefPtr := purego.NewCallback(fcb)1715 cbRefPtr := purego.NewCallback(fcb)
1716- glib.SaveCallback(cbPtr, cbRefPtr)1716+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1717 return gobject.SignalConnect(x.GoPointer(), "open", cbRefPtr)1717 return gobject.SignalConnect(x.GoPointer(), "open", cbRefPtr)
1718 }1718 }
1719 1719
@@ -1734,7 +1734,7 @@ func (x *Application) ConnectShutdown(cb *func(Application)) uint32 {
1734 1734
1735 }1735 }
1736 cbRefPtr := purego.NewCallback(fcb)1736 cbRefPtr := purego.NewCallback(fcb)
1737- glib.SaveCallback(cbPtr, cbRefPtr)1737+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1738 return gobject.SignalConnect(x.GoPointer(), "shutdown", cbRefPtr)1738 return gobject.SignalConnect(x.GoPointer(), "shutdown", cbRefPtr)
1739 }1739 }
1740 1740
@@ -1755,7 +1755,7 @@ func (x *Application) ConnectStartup(cb *func(Application)) uint32 {
1755 1755
1756 }1756 }
1757 cbRefPtr := purego.NewCallback(fcb)1757 cbRefPtr := purego.NewCallback(fcb)
1758- glib.SaveCallback(cbPtr, cbRefPtr)1758+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1759 return gobject.SignalConnect(x.GoPointer(), "startup", cbRefPtr)1759 return gobject.SignalConnect(x.GoPointer(), "startup", cbRefPtr)
1760 }1760 }
1761 1761
M v4/gio/gasyncinitable.go +1 -1
@@ -318,7 +318,7 @@ func AsyncInitableNewvAsync(ObjectTypeVar types.GType, NParametersVar uint, Para
318 cbFn(arg0, arg1, arg2)318 cbFn(arg0, arg1, arg2)
319 }319 }
320 CallbackVarRef = purego.NewCallback(fcb)320 CallbackVarRef = purego.NewCallback(fcb)
321- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)321+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
322 }322 }
323 }323 }
324 324
M v4/gio/gbufferedinputstream.go +1 -1
@@ -353,7 +353,7 @@ func (x *BufferedInputStream) FillAsync(CountVar int, IoPriorityVar int, Cancell
353 cbFn(arg0, arg1, arg2)353 cbFn(arg0, arg1, arg2)
354 }354 }
355 CallbackVarRef = purego.NewCallback(fcb)355 CallbackVarRef = purego.NewCallback(fcb)
356- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)356+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
357 }357 }
358 }358 }
359 359
M v4/gio/gcancellable.go +3 -3
@@ -301,7 +301,7 @@ func (x *Cancellable) Connect(CallbackVar *gobject.Callback, DataVar uintptr, Da
301 cbFn()301 cbFn()
302 }302 }
303 CallbackVarRef = purego.NewCallback(fcb)303 CallbackVarRef = purego.NewCallback(fcb)
304- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)304+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
305 }305 }
306 }306 }
307 307
@@ -316,7 +316,7 @@ func (x *Cancellable) Connect(CallbackVar *gobject.Callback, DataVar uintptr, Da
316 cbFn(arg0)316 cbFn(arg0)
317 }317 }
318 DataDestroyFuncVarRef = purego.NewCallback(fcb)318 DataDestroyFuncVarRef = purego.NewCallback(fcb)
319- glib.SaveCallback(DataDestroyFuncVarPtr, DataDestroyFuncVarRef)319+ glib.SaveCallbackWithClosure(DataDestroyFuncVarPtr, DataDestroyFuncVarRef, DataDestroyFuncVar)
320 }320 }
321 }321 }
322 322
@@ -596,7 +596,7 @@ func (x *Cancellable) ConnectCancelled(cb *func(Cancellable)) uint32 {
596 596
597 }597 }
598 cbRefPtr := purego.NewCallback(fcb)598 cbRefPtr := purego.NewCallback(fcb)
599- glib.SaveCallback(cbPtr, cbRefPtr)599+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
600 return gobject.SignalConnect(x.GoPointer(), "cancelled", cbRefPtr)600 return gobject.SignalConnect(x.GoPointer(), "cancelled", cbRefPtr)
601 }601 }
602 602
M v4/gio/gdatainputstream.go +3 -3
@@ -327,7 +327,7 @@ func (x *DataInputStream) ReadLineAsync(IoPriorityVar int, CancellableVar *Cance
327 cbFn(arg0, arg1, arg2)327 cbFn(arg0, arg1, arg2)
328 }328 }
329 CallbackVarRef = purego.NewCallback(fcb)329 CallbackVarRef = purego.NewCallback(fcb)
330- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)330+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
331 }331 }
332 }332 }
333 333
@@ -505,7 +505,7 @@ func (x *DataInputStream) ReadUntilAsync(StopCharsVar string, IoPriorityVar int,
505 cbFn(arg0, arg1, arg2)505 cbFn(arg0, arg1, arg2)
506 }506 }
507 CallbackVarRef = purego.NewCallback(fcb)507 CallbackVarRef = purego.NewCallback(fcb)
508- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)508+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
509 }509 }
510 }510 }
511 511
@@ -584,7 +584,7 @@ func (x *DataInputStream) ReadUptoAsync(StopCharsVar string, StopCharsLenVar int
584 cbFn(arg0, arg1, arg2)584 cbFn(arg0, arg1, arg2)
585 }585 }
586 CallbackVarRef = purego.NewCallback(fcb)586 CallbackVarRef = purego.NewCallback(fcb)
587- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)587+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
588 }588 }
589 }589 }
590 590
M v4/gio/gdbusaddress.go +1 -1
@@ -71,7 +71,7 @@ func DbusAddressGetStream(AddressVar string, CancellableVar *Cancellable, Callba
71 cbFn(arg0, arg1, arg2)71 cbFn(arg0, arg1, arg2)
72 }72 }
73 CallbackVarRef = purego.NewCallback(fcb)73 CallbackVarRef = purego.NewCallback(fcb)
74- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)74+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
75 }75 }
76 }76 }
77 77
M v4/gio/gdbusauthobserver.go +2 -2
@@ -159,7 +159,7 @@ func (x *DBusAuthObserver) ConnectAllowMechanism(cb *func(DBusAuthObserver, stri
159 159
160 }160 }
161 cbRefPtr := purego.NewCallback(fcb)161 cbRefPtr := purego.NewCallback(fcb)
162- glib.SaveCallback(cbPtr, cbRefPtr)162+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
163 return gobject.SignalConnect(x.GoPointer(), "allow-mechanism", cbRefPtr)163 return gobject.SignalConnect(x.GoPointer(), "allow-mechanism", cbRefPtr)
164 }164 }
165 165
@@ -180,7 +180,7 @@ func (x *DBusAuthObserver) ConnectAuthorizeAuthenticatedPeer(cb *func(DBusAuthOb
180 180
181 }181 }
182 cbRefPtr := purego.NewCallback(fcb)182 cbRefPtr := purego.NewCallback(fcb)
183- glib.SaveCallback(cbPtr, cbRefPtr)183+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
184 return gobject.SignalConnect(x.GoPointer(), "authorize-authenticated-peer", cbRefPtr)184 return gobject.SignalConnect(x.GoPointer(), "authorize-authenticated-peer", cbRefPtr)
185 }185 }
186 186
M v4/gio/gdbusconnection.go +15 -15
@@ -237,7 +237,7 @@ func BusGet(BusTypeVar BusType, CancellableVar *Cancellable, CallbackVar *AsyncR
237 cbFn(arg0, arg1, arg2)237 cbFn(arg0, arg1, arg2)
238 }238 }
239 CallbackVarRef = purego.NewCallback(fcb)239 CallbackVarRef = purego.NewCallback(fcb)
240- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)240+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
241 }241 }
242 }242 }
243 243
@@ -543,7 +543,7 @@ func (x *DBusConnection) AddFilter(FilterFunctionVar *DBusMessageFilterFunction,
543 return cbFn(arg0, arg1, arg2, arg3)543 return cbFn(arg0, arg1, arg2, arg3)
544 }544 }
545 FilterFunctionVarRef = purego.NewCallback(fcb)545 FilterFunctionVarRef = purego.NewCallback(fcb)
546- glib.SaveCallback(FilterFunctionVarPtr, FilterFunctionVarRef)546+ glib.SaveCallbackWithClosure(FilterFunctionVarPtr, FilterFunctionVarRef, FilterFunctionVar)
547 }547 }
548 }548 }
549 549
@@ -558,7 +558,7 @@ func (x *DBusConnection) AddFilter(FilterFunctionVar *DBusMessageFilterFunction,
558 cbFn(arg0)558 cbFn(arg0)
559 }559 }
560 UserDataFreeFuncVarRef = purego.NewCallback(fcb)560 UserDataFreeFuncVarRef = purego.NewCallback(fcb)
561- glib.SaveCallback(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef)561+ glib.SaveCallbackWithClosure(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef, UserDataFreeFuncVar)
562 }562 }
563 }563 }
564 564
@@ -629,7 +629,7 @@ func (x *DBusConnection) Call(BusNameVar *string, ObjectPathVar string, Interfac
629 cbFn(arg0, arg1, arg2)629 cbFn(arg0, arg1, arg2)
630 }630 }
631 CallbackVarRef = purego.NewCallback(fcb)631 CallbackVarRef = purego.NewCallback(fcb)
632- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)632+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
633 }633 }
634 }634 }
635 635
@@ -742,7 +742,7 @@ func (x *DBusConnection) CallWithUnixFdList(BusNameVar *string, ObjectPathVar st
742 cbFn(arg0, arg1, arg2)742 cbFn(arg0, arg1, arg2)
743 }743 }
744 CallbackVarRef = purego.NewCallback(fcb)744 CallbackVarRef = purego.NewCallback(fcb)
745- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)745+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
746 }746 }
747 }747 }
748 748
@@ -842,7 +842,7 @@ func (x *DBusConnection) Close(CancellableVar *Cancellable, CallbackVar *AsyncRe
842 cbFn(arg0, arg1, arg2)842 cbFn(arg0, arg1, arg2)
843 }843 }
844 CallbackVarRef = purego.NewCallback(fcb)844 CallbackVarRef = purego.NewCallback(fcb)
845- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)845+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
846 }846 }
847 }847 }
848 848
@@ -1002,7 +1002,7 @@ func (x *DBusConnection) Flush(CancellableVar *Cancellable, CallbackVar *AsyncRe
1002 cbFn(arg0, arg1, arg2)1002 cbFn(arg0, arg1, arg2)
1003 }1003 }
1004 CallbackVarRef = purego.NewCallback(fcb)1004 CallbackVarRef = purego.NewCallback(fcb)
1005- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)1005+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
1006 }1006 }
1007 }1007 }
1008 1008
@@ -1223,7 +1223,7 @@ func (x *DBusConnection) RegisterObject(ObjectPathVar string, InterfaceInfoVar *
1223 cbFn(arg0)1223 cbFn(arg0)
1224 }1224 }
1225 UserDataFreeFuncVarRef = purego.NewCallback(fcb)1225 UserDataFreeFuncVarRef = purego.NewCallback(fcb)
1226- glib.SaveCallback(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef)1226+ glib.SaveCallbackWithClosure(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef, UserDataFreeFuncVar)
1227 }1227 }
1228 }1228 }
1229 1229
@@ -1333,7 +1333,7 @@ func (x *DBusConnection) RegisterSubtree(ObjectPathVar string, VtableVar *DBusSu
1333 cbFn(arg0)1333 cbFn(arg0)
1334 }1334 }
1335 UserDataFreeFuncVarRef = purego.NewCallback(fcb)1335 UserDataFreeFuncVarRef = purego.NewCallback(fcb)
1336- glib.SaveCallback(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef)1336+ glib.SaveCallbackWithClosure(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef, UserDataFreeFuncVar)
1337 }1337 }
1338 }1338 }
1339 1339
@@ -1443,7 +1443,7 @@ func (x *DBusConnection) SendMessageWithReply(MessageVar *DBusMessage, FlagsVar
1443 cbFn(arg0, arg1, arg2)1443 cbFn(arg0, arg1, arg2)
1444 }1444 }
1445 CallbackVarRef = purego.NewCallback(fcb)1445 CallbackVarRef = purego.NewCallback(fcb)
1446- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)1446+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
1447 }1447 }
1448 }1448 }
1449 1449
@@ -1615,7 +1615,7 @@ func (x *DBusConnection) SignalSubscribe(SenderVar *string, InterfaceNameVar *st
1615 cbFn(arg0, arg1, arg2, arg3, arg4, arg5, arg6)1615 cbFn(arg0, arg1, arg2, arg3, arg4, arg5, arg6)
1616 }1616 }
1617 CallbackVarRef = purego.NewCallback(fcb)1617 CallbackVarRef = purego.NewCallback(fcb)
1618- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)1618+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
1619 }1619 }
1620 }1620 }
1621 1621
@@ -1630,7 +1630,7 @@ func (x *DBusConnection) SignalSubscribe(SenderVar *string, InterfaceNameVar *st
1630 cbFn(arg0)1630 cbFn(arg0)
1631 }1631 }
1632 UserDataFreeFuncVarRef = purego.NewCallback(fcb)1632 UserDataFreeFuncVarRef = purego.NewCallback(fcb)
1633- glib.SaveCallback(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef)1633+ glib.SaveCallbackWithClosure(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef, UserDataFreeFuncVar)
1634 }1634 }
1635 }1635 }
1636 1636
@@ -1894,7 +1894,7 @@ func (x *DBusConnection) ConnectClosed(cb *func(DBusConnection, bool, uintptr))
1894 1894
1895 }1895 }
1896 cbRefPtr := purego.NewCallback(fcb)1896 cbRefPtr := purego.NewCallback(fcb)
1897- glib.SaveCallback(cbPtr, cbRefPtr)1897+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1898 return gobject.SignalConnect(x.GoPointer(), "closed", cbRefPtr)1898 return gobject.SignalConnect(x.GoPointer(), "closed", cbRefPtr)
1899 }1899 }
1900 1900
@@ -2059,7 +2059,7 @@ func DBusConnectionNew(StreamVar *IOStream, GuidVar *string, FlagsVar DBusConnec
2059 cbFn(arg0, arg1, arg2)2059 cbFn(arg0, arg1, arg2)
2060 }2060 }
2061 CallbackVarRef = purego.NewCallback(fcb)2061 CallbackVarRef = purego.NewCallback(fcb)
2062- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)2062+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
2063 }2063 }
2064 }2064 }
2065 2065
@@ -2108,7 +2108,7 @@ func DBusConnectionNewForAddress(AddressVar string, FlagsVar DBusConnectionFlags
2108 cbFn(arg0, arg1, arg2)2108 cbFn(arg0, arg1, arg2)
2109 }2109 }
2110 CallbackVarRef = purego.NewCallback(fcb)2110 CallbackVarRef = purego.NewCallback(fcb)
2111- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)2111+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
2112 }2112 }
2113 }2113 }
2114 2114
M v4/gio/gdbusinterfaceskeleton.go +1 -1
@@ -407,7 +407,7 @@ func (x *DBusInterfaceSkeleton) ConnectGAuthorizeMethod(cb *func(DBusInterfaceSk
407 407
408 }408 }
409 cbRefPtr := purego.NewCallback(fcb)409 cbRefPtr := purego.NewCallback(fcb)
410- glib.SaveCallback(cbPtr, cbRefPtr)410+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
411 return gobject.SignalConnect(x.GoPointer(), "g-authorize-method", cbRefPtr)411 return gobject.SignalConnect(x.GoPointer(), "g-authorize-method", cbRefPtr)
412 }412 }
413 413
M v4/gio/gdbusnameowning.go +7 -7
@@ -84,7 +84,7 @@ func BusOwnName(BusTypeVar BusType, NameVar string, FlagsVar BusNameOwnerFlags,
84 cbFn(arg0, arg1, arg2)84 cbFn(arg0, arg1, arg2)
85 }85 }
86 BusAcquiredHandlerVarRef = purego.NewCallback(fcb)86 BusAcquiredHandlerVarRef = purego.NewCallback(fcb)
87- glib.SaveCallback(BusAcquiredHandlerVarPtr, BusAcquiredHandlerVarRef)87+ glib.SaveCallbackWithClosure(BusAcquiredHandlerVarPtr, BusAcquiredHandlerVarRef, BusAcquiredHandlerVar)
88 }88 }
89 }89 }
90 90
@@ -99,7 +99,7 @@ func BusOwnName(BusTypeVar BusType, NameVar string, FlagsVar BusNameOwnerFlags,
99 cbFn(arg0, arg1, arg2)99 cbFn(arg0, arg1, arg2)
100 }100 }
101 NameAcquiredHandlerVarRef = purego.NewCallback(fcb)101 NameAcquiredHandlerVarRef = purego.NewCallback(fcb)
102- glib.SaveCallback(NameAcquiredHandlerVarPtr, NameAcquiredHandlerVarRef)102+ glib.SaveCallbackWithClosure(NameAcquiredHandlerVarPtr, NameAcquiredHandlerVarRef, NameAcquiredHandlerVar)
103 }103 }
104 }104 }
105 105
@@ -114,7 +114,7 @@ func BusOwnName(BusTypeVar BusType, NameVar string, FlagsVar BusNameOwnerFlags,
114 cbFn(arg0, arg1, arg2)114 cbFn(arg0, arg1, arg2)
115 }115 }
116 NameLostHandlerVarRef = purego.NewCallback(fcb)116 NameLostHandlerVarRef = purego.NewCallback(fcb)
117- glib.SaveCallback(NameLostHandlerVarPtr, NameLostHandlerVarRef)117+ glib.SaveCallbackWithClosure(NameLostHandlerVarPtr, NameLostHandlerVarRef, NameLostHandlerVar)
118 }118 }
119 }119 }
120 120
@@ -129,7 +129,7 @@ func BusOwnName(BusTypeVar BusType, NameVar string, FlagsVar BusNameOwnerFlags,
129 cbFn(arg0)129 cbFn(arg0)
130 }130 }
131 UserDataFreeFuncVarRef = purego.NewCallback(fcb)131 UserDataFreeFuncVarRef = purego.NewCallback(fcb)
132- glib.SaveCallback(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef)132+ glib.SaveCallbackWithClosure(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef, UserDataFreeFuncVar)
133 }133 }
134 }134 }
135 135
@@ -155,7 +155,7 @@ func BusOwnNameOnConnection(ConnectionVar *DBusConnection, NameVar string, Flags
155 cbFn(arg0, arg1, arg2)155 cbFn(arg0, arg1, arg2)
156 }156 }
157 NameAcquiredHandlerVarRef = purego.NewCallback(fcb)157 NameAcquiredHandlerVarRef = purego.NewCallback(fcb)
158- glib.SaveCallback(NameAcquiredHandlerVarPtr, NameAcquiredHandlerVarRef)158+ glib.SaveCallbackWithClosure(NameAcquiredHandlerVarPtr, NameAcquiredHandlerVarRef, NameAcquiredHandlerVar)
159 }159 }
160 }160 }
161 161
@@ -170,7 +170,7 @@ func BusOwnNameOnConnection(ConnectionVar *DBusConnection, NameVar string, Flags
170 cbFn(arg0, arg1, arg2)170 cbFn(arg0, arg1, arg2)
171 }171 }
172 NameLostHandlerVarRef = purego.NewCallback(fcb)172 NameLostHandlerVarRef = purego.NewCallback(fcb)
173- glib.SaveCallback(NameLostHandlerVarPtr, NameLostHandlerVarRef)173+ glib.SaveCallbackWithClosure(NameLostHandlerVarPtr, NameLostHandlerVarRef, NameLostHandlerVar)
174 }174 }
175 }175 }
176 176
@@ -185,7 +185,7 @@ func BusOwnNameOnConnection(ConnectionVar *DBusConnection, NameVar string, Flags
185 cbFn(arg0)185 cbFn(arg0)
186 }186 }
187 UserDataFreeFuncVarRef = purego.NewCallback(fcb)187 UserDataFreeFuncVarRef = purego.NewCallback(fcb)
188- glib.SaveCallback(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef)188+ glib.SaveCallbackWithClosure(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef, UserDataFreeFuncVar)
189 }189 }
190 }190 }
191 191
M v4/gio/gdbusnamewatching.go +6 -6
@@ -80,7 +80,7 @@ func BusWatchName(BusTypeVar BusType, NameVar string, FlagsVar BusNameWatcherFla
80 cbFn(arg0, arg1, arg2, arg3)80 cbFn(arg0, arg1, arg2, arg3)
81 }81 }
82 NameAppearedHandlerVarRef = purego.NewCallback(fcb)82 NameAppearedHandlerVarRef = purego.NewCallback(fcb)
83- glib.SaveCallback(NameAppearedHandlerVarPtr, NameAppearedHandlerVarRef)83+ glib.SaveCallbackWithClosure(NameAppearedHandlerVarPtr, NameAppearedHandlerVarRef, NameAppearedHandlerVar)
84 }84 }
85 }85 }
86 86
@@ -95,7 +95,7 @@ func BusWatchName(BusTypeVar BusType, NameVar string, FlagsVar BusNameWatcherFla
95 cbFn(arg0, arg1, arg2)95 cbFn(arg0, arg1, arg2)
96 }96 }
97 NameVanishedHandlerVarRef = purego.NewCallback(fcb)97 NameVanishedHandlerVarRef = purego.NewCallback(fcb)
98- glib.SaveCallback(NameVanishedHandlerVarPtr, NameVanishedHandlerVarRef)98+ glib.SaveCallbackWithClosure(NameVanishedHandlerVarPtr, NameVanishedHandlerVarRef, NameVanishedHandlerVar)
99 }99 }
100 }100 }
101 101
@@ -110,7 +110,7 @@ func BusWatchName(BusTypeVar BusType, NameVar string, FlagsVar BusNameWatcherFla
110 cbFn(arg0)110 cbFn(arg0)
111 }111 }
112 UserDataFreeFuncVarRef = purego.NewCallback(fcb)112 UserDataFreeFuncVarRef = purego.NewCallback(fcb)
113- glib.SaveCallback(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef)113+ glib.SaveCallbackWithClosure(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef, UserDataFreeFuncVar)
114 }114 }
115 }115 }
116 116
@@ -136,7 +136,7 @@ func BusWatchNameOnConnection(ConnectionVar *DBusConnection, NameVar string, Fla
136 cbFn(arg0, arg1, arg2, arg3)136 cbFn(arg0, arg1, arg2, arg3)
137 }137 }
138 NameAppearedHandlerVarRef = purego.NewCallback(fcb)138 NameAppearedHandlerVarRef = purego.NewCallback(fcb)
139- glib.SaveCallback(NameAppearedHandlerVarPtr, NameAppearedHandlerVarRef)139+ glib.SaveCallbackWithClosure(NameAppearedHandlerVarPtr, NameAppearedHandlerVarRef, NameAppearedHandlerVar)
140 }140 }
141 }141 }
142 142
@@ -151,7 +151,7 @@ func BusWatchNameOnConnection(ConnectionVar *DBusConnection, NameVar string, Fla
151 cbFn(arg0, arg1, arg2)151 cbFn(arg0, arg1, arg2)
152 }152 }
153 NameVanishedHandlerVarRef = purego.NewCallback(fcb)153 NameVanishedHandlerVarRef = purego.NewCallback(fcb)
154- glib.SaveCallback(NameVanishedHandlerVarPtr, NameVanishedHandlerVarRef)154+ glib.SaveCallbackWithClosure(NameVanishedHandlerVarPtr, NameVanishedHandlerVarRef, NameVanishedHandlerVar)
155 }155 }
156 }156 }
157 157
@@ -166,7 +166,7 @@ func BusWatchNameOnConnection(ConnectionVar *DBusConnection, NameVar string, Fla
166 cbFn(arg0)166 cbFn(arg0)
167 }167 }
168 UserDataFreeFuncVarRef = purego.NewCallback(fcb)168 UserDataFreeFuncVarRef = purego.NewCallback(fcb)
169- glib.SaveCallback(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef)169+ glib.SaveCallbackWithClosure(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef, UserDataFreeFuncVar)
170 }170 }
171 }171 }
172 172
M v4/gio/gdbusobjectmanagerclient.go +12 -12
@@ -247,7 +247,7 @@ func NewDBusObjectManagerClientForBusSync(BusTypeVar BusType, FlagsVar DBusObjec
247 return cbFn(arg0, arg1, arg2, arg3)247 return cbFn(arg0, arg1, arg2, arg3)
248 }248 }
249 GetProxyTypeFuncVarRef = purego.NewCallback(fcb)249 GetProxyTypeFuncVarRef = purego.NewCallback(fcb)
250- glib.SaveCallback(GetProxyTypeFuncVarPtr, GetProxyTypeFuncVarRef)250+ glib.SaveCallbackWithClosure(GetProxyTypeFuncVarPtr, GetProxyTypeFuncVarRef, GetProxyTypeFuncVar)
251 }251 }
252 }252 }
253 253
@@ -262,7 +262,7 @@ func NewDBusObjectManagerClientForBusSync(BusTypeVar BusType, FlagsVar DBusObjec
262 cbFn(arg0)262 cbFn(arg0)
263 }263 }
264 GetProxyTypeDestroyNotifyVarRef = purego.NewCallback(fcb)264 GetProxyTypeDestroyNotifyVarRef = purego.NewCallback(fcb)
265- glib.SaveCallback(GetProxyTypeDestroyNotifyVarPtr, GetProxyTypeDestroyNotifyVarRef)265+ glib.SaveCallbackWithClosure(GetProxyTypeDestroyNotifyVarPtr, GetProxyTypeDestroyNotifyVarRef, GetProxyTypeDestroyNotifyVar)
266 }266 }
267 }267 }
268 268
@@ -302,7 +302,7 @@ func NewDBusObjectManagerClientSync(ConnectionVar *DBusConnection, FlagsVar DBus
302 return cbFn(arg0, arg1, arg2, arg3)302 return cbFn(arg0, arg1, arg2, arg3)
303 }303 }
304 GetProxyTypeFuncVarRef = purego.NewCallback(fcb)304 GetProxyTypeFuncVarRef = purego.NewCallback(fcb)
305- glib.SaveCallback(GetProxyTypeFuncVarPtr, GetProxyTypeFuncVarRef)305+ glib.SaveCallbackWithClosure(GetProxyTypeFuncVarPtr, GetProxyTypeFuncVarRef, GetProxyTypeFuncVar)
306 }306 }
307 }307 }
308 308
@@ -317,7 +317,7 @@ func NewDBusObjectManagerClientSync(ConnectionVar *DBusConnection, FlagsVar DBus
317 cbFn(arg0)317 cbFn(arg0)
318 }318 }
319 GetProxyTypeDestroyNotifyVarRef = purego.NewCallback(fcb)319 GetProxyTypeDestroyNotifyVarRef = purego.NewCallback(fcb)
320- glib.SaveCallback(GetProxyTypeDestroyNotifyVarPtr, GetProxyTypeDestroyNotifyVarRef)320+ glib.SaveCallbackWithClosure(GetProxyTypeDestroyNotifyVarPtr, GetProxyTypeDestroyNotifyVarRef, GetProxyTypeDestroyNotifyVar)
321 }321 }
322 }322 }
323 323
@@ -524,7 +524,7 @@ func (x *DBusObjectManagerClient) ConnectInterfaceProxyPropertiesChanged(cb *fun
524 524
525 }525 }
526 cbRefPtr := purego.NewCallback(fcb)526 cbRefPtr := purego.NewCallback(fcb)
527- glib.SaveCallback(cbPtr, cbRefPtr)527+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
528 return gobject.SignalConnect(x.GoPointer(), "interface-proxy-properties-changed", cbRefPtr)528 return gobject.SignalConnect(x.GoPointer(), "interface-proxy-properties-changed", cbRefPtr)
529 }529 }
530 530
@@ -551,7 +551,7 @@ func (x *DBusObjectManagerClient) ConnectInterfaceProxySignal(cb *func(DBusObjec
551 551
552 }552 }
553 cbRefPtr := purego.NewCallback(fcb)553 cbRefPtr := purego.NewCallback(fcb)
554- glib.SaveCallback(cbPtr, cbRefPtr)554+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
555 return gobject.SignalConnect(x.GoPointer(), "interface-proxy-signal", cbRefPtr)555 return gobject.SignalConnect(x.GoPointer(), "interface-proxy-signal", cbRefPtr)
556 }556 }
557 557
@@ -749,7 +749,7 @@ func DBusObjectManagerClientNew(ConnectionVar *DBusConnection, FlagsVar DBusObje
749 return cbFn(arg0, arg1, arg2, arg3)749 return cbFn(arg0, arg1, arg2, arg3)
750 }750 }
751 GetProxyTypeFuncVarRef = purego.NewCallback(fcb)751 GetProxyTypeFuncVarRef = purego.NewCallback(fcb)
752- glib.SaveCallback(GetProxyTypeFuncVarPtr, GetProxyTypeFuncVarRef)752+ glib.SaveCallbackWithClosure(GetProxyTypeFuncVarPtr, GetProxyTypeFuncVarRef, GetProxyTypeFuncVar)
753 }753 }
754 }754 }
755 755
@@ -764,7 +764,7 @@ func DBusObjectManagerClientNew(ConnectionVar *DBusConnection, FlagsVar DBusObje
764 cbFn(arg0)764 cbFn(arg0)
765 }765 }
766 GetProxyTypeDestroyNotifyVarRef = purego.NewCallback(fcb)766 GetProxyTypeDestroyNotifyVarRef = purego.NewCallback(fcb)
767- glib.SaveCallback(GetProxyTypeDestroyNotifyVarPtr, GetProxyTypeDestroyNotifyVarRef)767+ glib.SaveCallbackWithClosure(GetProxyTypeDestroyNotifyVarPtr, GetProxyTypeDestroyNotifyVarRef, GetProxyTypeDestroyNotifyVar)
768 }768 }
769 }769 }
770 770
@@ -779,7 +779,7 @@ func DBusObjectManagerClientNew(ConnectionVar *DBusConnection, FlagsVar DBusObje
779 cbFn(arg0, arg1, arg2)779 cbFn(arg0, arg1, arg2)
780 }780 }
781 CallbackVarRef = purego.NewCallback(fcb)781 CallbackVarRef = purego.NewCallback(fcb)
782- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)782+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
783 }783 }
784 }784 }
785 785
@@ -811,7 +811,7 @@ func DBusObjectManagerClientNewForBus(BusTypeVar BusType, FlagsVar DBusObjectMan
811 return cbFn(arg0, arg1, arg2, arg3)811 return cbFn(arg0, arg1, arg2, arg3)
812 }812 }
813 GetProxyTypeFuncVarRef = purego.NewCallback(fcb)813 GetProxyTypeFuncVarRef = purego.NewCallback(fcb)
814- glib.SaveCallback(GetProxyTypeFuncVarPtr, GetProxyTypeFuncVarRef)814+ glib.SaveCallbackWithClosure(GetProxyTypeFuncVarPtr, GetProxyTypeFuncVarRef, GetProxyTypeFuncVar)
815 }815 }
816 }816 }
817 817
@@ -826,7 +826,7 @@ func DBusObjectManagerClientNewForBus(BusTypeVar BusType, FlagsVar DBusObjectMan
826 cbFn(arg0)826 cbFn(arg0)
827 }827 }
828 GetProxyTypeDestroyNotifyVarRef = purego.NewCallback(fcb)828 GetProxyTypeDestroyNotifyVarRef = purego.NewCallback(fcb)
829- glib.SaveCallback(GetProxyTypeDestroyNotifyVarPtr, GetProxyTypeDestroyNotifyVarRef)829+ glib.SaveCallbackWithClosure(GetProxyTypeDestroyNotifyVarPtr, GetProxyTypeDestroyNotifyVarRef, GetProxyTypeDestroyNotifyVar)
830 }830 }
831 }831 }
832 832
@@ -841,7 +841,7 @@ func DBusObjectManagerClientNewForBus(BusTypeVar BusType, FlagsVar DBusObjectMan
841 cbFn(arg0, arg1, arg2)841 cbFn(arg0, arg1, arg2)
842 }842 }
843 CallbackVarRef = purego.NewCallback(fcb)843 CallbackVarRef = purego.NewCallback(fcb)
844- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)844+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
845 }845 }
846 }846 }
847 847
M v4/gio/gdbusobjectskeleton.go +1 -1
@@ -204,7 +204,7 @@ func (x *DBusObjectSkeleton) ConnectAuthorizeMethod(cb *func(DBusObjectSkeleton,
204 204
205 }205 }
206 cbRefPtr := purego.NewCallback(fcb)206 cbRefPtr := purego.NewCallback(fcb)
207- glib.SaveCallback(cbPtr, cbRefPtr)207+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
208 return gobject.SignalConnect(x.GoPointer(), "authorize-method", cbRefPtr)208 return gobject.SignalConnect(x.GoPointer(), "authorize-method", cbRefPtr)
209 }209 }
210 210
M v4/gio/gdbusproxy.go +7 -7
@@ -322,7 +322,7 @@ func (x *DBusProxy) Call(MethodNameVar string, ParametersVar *glib.Variant, Flag
322 cbFn(arg0, arg1, arg2)322 cbFn(arg0, arg1, arg2)
323 }323 }
324 CallbackVarRef = purego.NewCallback(fcb)324 CallbackVarRef = purego.NewCallback(fcb)
325- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)325+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
326 }326 }
327 }327 }
328 328
@@ -413,7 +413,7 @@ func (x *DBusProxy) CallWithUnixFdList(MethodNameVar string, ParametersVar *glib
413 cbFn(arg0, arg1, arg2)413 cbFn(arg0, arg1, arg2)
414 }414 }
415 CallbackVarRef = purego.NewCallback(fcb)415 CallbackVarRef = purego.NewCallback(fcb)
416- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)416+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
417 }417 }
418 }418 }
419 419
@@ -840,7 +840,7 @@ func (x *DBusProxy) ConnectGPropertiesChanged(cb *func(DBusProxy, uintptr, []str
840 840
841 }841 }
842 cbRefPtr := purego.NewCallback(fcb)842 cbRefPtr := purego.NewCallback(fcb)
843- glib.SaveCallback(cbPtr, cbRefPtr)843+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
844 return gobject.SignalConnect(x.GoPointer(), "g-properties-changed", cbRefPtr)844 return gobject.SignalConnect(x.GoPointer(), "g-properties-changed", cbRefPtr)
845 }845 }
846 846
@@ -864,7 +864,7 @@ func (x *DBusProxy) ConnectGSignal(cb *func(DBusProxy, string, string, uintptr))
864 864
865 }865 }
866 cbRefPtr := purego.NewCallback(fcb)866 cbRefPtr := purego.NewCallback(fcb)
867- glib.SaveCallback(cbPtr, cbRefPtr)867+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
868 return gobject.SignalConnect(x.GoPointer(), "g-signal", cbRefPtr)868 return gobject.SignalConnect(x.GoPointer(), "g-signal", cbRefPtr)
869 }869 }
870 870
@@ -886,7 +886,7 @@ func (x *DBusProxy) ConnectGSignalWithDetail(detail string, cb *func(DBusProxy,
886 886
887 }887 }
888 cbRefPtr := purego.NewCallback(fcb)888 cbRefPtr := purego.NewCallback(fcb)
889- glib.SaveCallback(cbPtr, cbRefPtr)889+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
890 return gobject.SignalConnect(x.GoPointer(), signalName, cbRefPtr)890 return gobject.SignalConnect(x.GoPointer(), signalName, cbRefPtr)
891 }891 }
892 892
@@ -1109,7 +1109,7 @@ func DBusProxyNew(ConnectionVar *DBusConnection, FlagsVar DBusProxyFlags, InfoVa
1109 cbFn(arg0, arg1, arg2)1109 cbFn(arg0, arg1, arg2)
1110 }1110 }
1111 CallbackVarRef = purego.NewCallback(fcb)1111 CallbackVarRef = purego.NewCallback(fcb)
1112- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)1112+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
1113 }1113 }
1114 }1114 }
1115 1115
@@ -1139,7 +1139,7 @@ func DBusProxyNewForBus(BusTypeVar BusType, FlagsVar DBusProxyFlags, InfoVar *DB
1139 cbFn(arg0, arg1, arg2)1139 cbFn(arg0, arg1, arg2)
1140 }1140 }
1141 CallbackVarRef = purego.NewCallback(fcb)1141 CallbackVarRef = purego.NewCallback(fcb)
1142- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)1142+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
1143 }1143 }
1144 }1144 }
1145 1145
M v4/gio/gdbusserver.go +1 -1
@@ -250,7 +250,7 @@ func (x *DBusServer) ConnectNewConnection(cb *func(DBusServer, uintptr) bool) ui
250 250
251 }251 }
252 cbRefPtr := purego.NewCallback(fcb)252 cbRefPtr := purego.NewCallback(fcb)
253- glib.SaveCallback(cbPtr, cbRefPtr)253+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
254 return gobject.SignalConnect(x.GoPointer(), "new-connection", cbRefPtr)254 return gobject.SignalConnect(x.GoPointer(), "new-connection", cbRefPtr)
255 }255 }
256 256
M v4/gio/gdebugcontrollerdbus.go +1 -1
@@ -278,7 +278,7 @@ func (x *DebugControllerDBus) ConnectAuthorize(cb *func(DebugControllerDBus, uin
278 278
279 }279 }
280 cbRefPtr := purego.NewCallback(fcb)280 cbRefPtr := purego.NewCallback(fcb)
281- glib.SaveCallback(cbPtr, cbRefPtr)281+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
282 return gobject.SignalConnect(x.GoPointer(), "authorize", cbRefPtr)282 return gobject.SignalConnect(x.GoPointer(), "authorize", cbRefPtr)
283 }283 }
284 284
M v4/gio/gfile.go +2 -2
@@ -6299,7 +6299,7 @@ func FileNewTmpAsync(TmplVar *string, IoPriorityVar int, CancellableVar *Cancell
6299 cbFn(arg0, arg1, arg2)6299 cbFn(arg0, arg1, arg2)
6300 }6300 }
6301 CallbackVarRef = purego.NewCallback(fcb)6301 CallbackVarRef = purego.NewCallback(fcb)
6302- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)6302+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
6303 }6303 }
6304 }6304 }
6305 6305
@@ -6332,7 +6332,7 @@ func FileNewTmpDirAsync(TmplVar *string, IoPriorityVar int, CancellableVar *Canc
6332 cbFn(arg0, arg1, arg2)6332 cbFn(arg0, arg1, arg2)
6333 }6333 }
6334 CallbackVarRef = purego.NewCallback(fcb)6334 CallbackVarRef = purego.NewCallback(fcb)
6335- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)6335+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
6336 }6336 }
6337 }6337 }
6338 6338
M v4/gio/gfileenumerator.go +2 -2
@@ -448,7 +448,7 @@ func (x *FileEnumerator) CloseAsync(IoPriorityVar int, CancellableVar *Cancellab
448 cbFn(arg0, arg1, arg2)448 cbFn(arg0, arg1, arg2)
449 }449 }
450 CallbackVarRef = purego.NewCallback(fcb)450 CallbackVarRef = purego.NewCallback(fcb)
451- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)451+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
452 }452 }
453 }453 }
454 454
@@ -719,7 +719,7 @@ func (x *FileEnumerator) NextFilesAsync(NumFilesVar int, IoPriorityVar int, Canc
719 cbFn(arg0, arg1, arg2)719 cbFn(arg0, arg1, arg2)
720 }720 }
721 CallbackVarRef = purego.NewCallback(fcb)721 CallbackVarRef = purego.NewCallback(fcb)
722- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)722+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
723 }723 }
724 }724 }
725 725
M v4/gio/gfileinputstream.go +1 -1
@@ -400,7 +400,7 @@ func (x *FileInputStream) QueryInfoAsync(AttributesVar string, IoPriorityVar int
400 cbFn(arg0, arg1, arg2)400 cbFn(arg0, arg1, arg2)
401 }401 }
402 CallbackVarRef = purego.NewCallback(fcb)402 CallbackVarRef = purego.NewCallback(fcb)
403- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)403+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
404 }404 }
405 }405 }
406 406
M v4/gio/gfileiostream.go +1 -1
@@ -504,7 +504,7 @@ func (x *FileIOStream) QueryInfoAsync(AttributesVar string, IoPriorityVar int, C
504 cbFn(arg0, arg1, arg2)504 cbFn(arg0, arg1, arg2)
505 }505 }
506 CallbackVarRef = purego.NewCallback(fcb)506 CallbackVarRef = purego.NewCallback(fcb)
507- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)507+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
508 }508 }
509 }509 }
510 510
M v4/gio/gfilemonitor.go +1 -1
@@ -358,7 +358,7 @@ func (x *FileMonitor) ConnectChanged(cb *func(FileMonitor, uintptr, uintptr, Fil
358 358
359 }359 }
360 cbRefPtr := purego.NewCallback(fcb)360 cbRefPtr := purego.NewCallback(fcb)
361- glib.SaveCallback(cbPtr, cbRefPtr)361+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
362 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)362 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
363 }363 }
364 364
M v4/gio/gfilenamecompleter.go +1 -1
@@ -220,7 +220,7 @@ func (x *FilenameCompleter) ConnectGotCompletionData(cb *func(FilenameCompleter)
220 220
221 }221 }
222 cbRefPtr := purego.NewCallback(fcb)222 cbRefPtr := purego.NewCallback(fcb)
223- glib.SaveCallback(cbPtr, cbRefPtr)223+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
224 return gobject.SignalConnect(x.GoPointer(), "got-completion-data", cbRefPtr)224 return gobject.SignalConnect(x.GoPointer(), "got-completion-data", cbRefPtr)
225 }225 }
226 226
M v4/gio/gfileoutputstream.go +1 -1
@@ -499,7 +499,7 @@ func (x *FileOutputStream) QueryInfoAsync(AttributesVar string, IoPriorityVar in
499 cbFn(arg0, arg1, arg2)499 cbFn(arg0, arg1, arg2)
500 }500 }
501 CallbackVarRef = purego.NewCallback(fcb)501 CallbackVarRef = purego.NewCallback(fcb)
502- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)502+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
503 }503 }
504 }504 }
505 505
M v4/gio/ginputstream.go +5 -5
@@ -480,7 +480,7 @@ func (x *InputStream) CloseAsync(IoPriorityVar int, CancellableVar *Cancellable,
480 cbFn(arg0, arg1, arg2)480 cbFn(arg0, arg1, arg2)
481 }481 }
482 CallbackVarRef = purego.NewCallback(fcb)482 CallbackVarRef = purego.NewCallback(fcb)
483- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)483+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
484 }484 }
485 }485 }
486 486
@@ -616,7 +616,7 @@ func (x *InputStream) ReadAllAsync(BufferVar *[]byte, CountVar uint, IoPriorityV
616 cbFn(arg0, arg1, arg2)616 cbFn(arg0, arg1, arg2)
617 }617 }
618 CallbackVarRef = purego.NewCallback(fcb)618 CallbackVarRef = purego.NewCallback(fcb)
619- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)619+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
620 }620 }
621 }621 }
622 622
@@ -685,7 +685,7 @@ func (x *InputStream) ReadAsync(BufferVar *[]byte, CountVar uint, IoPriorityVar
685 cbFn(arg0, arg1, arg2)685 cbFn(arg0, arg1, arg2)
686 }686 }
687 CallbackVarRef = purego.NewCallback(fcb)687 CallbackVarRef = purego.NewCallback(fcb)
688- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)688+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
689 }689 }
690 }690 }
691 691
@@ -765,7 +765,7 @@ func (x *InputStream) ReadBytesAsync(CountVar uint, IoPriorityVar int, Cancellab
765 cbFn(arg0, arg1, arg2)765 cbFn(arg0, arg1, arg2)
766 }766 }
767 CallbackVarRef = purego.NewCallback(fcb)767 CallbackVarRef = purego.NewCallback(fcb)
768- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)768+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
769 }769 }
770 }770 }
771 771
@@ -886,7 +886,7 @@ func (x *InputStream) SkipAsync(CountVar uint, IoPriorityVar int, CancellableVar
886 cbFn(arg0, arg1, arg2)886 cbFn(arg0, arg1, arg2)
887 }887 }
888 CallbackVarRef = purego.NewCallback(fcb)888 CallbackVarRef = purego.NewCallback(fcb)
889- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)889+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
890 }890 }
891 }891 }
892 892
M v4/gio/gioscheduler.go +2 -2
@@ -44,7 +44,7 @@ func IoSchedulerPushJob(JobFuncVar *IOSchedulerJobFunc, UserDataVar uintptr, Not
44 return cbFn(arg0, arg1, arg2)44 return cbFn(arg0, arg1, arg2)
45 }45 }
46 JobFuncVarRef = purego.NewCallback(fcb)46 JobFuncVarRef = purego.NewCallback(fcb)
47- glib.SaveCallback(JobFuncVarPtr, JobFuncVarRef)47+ glib.SaveCallbackWithClosure(JobFuncVarPtr, JobFuncVarRef, JobFuncVar)
48 }48 }
49 }49 }
50 50
@@ -59,7 +59,7 @@ func IoSchedulerPushJob(JobFuncVar *IOSchedulerJobFunc, UserDataVar uintptr, Not
59 cbFn(arg0)59 cbFn(arg0)
60 }60 }
61 NotifyVarRef = purego.NewCallback(fcb)61 NotifyVarRef = purego.NewCallback(fcb)
62- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)62+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
63 }63 }
64 }64 }
65 65
M v4/gio/giostream.go +2 -2
@@ -570,7 +570,7 @@ func (x *IOStream) CloseAsync(IoPriorityVar int, CancellableVar *Cancellable, Ca
570 cbFn(arg0, arg1, arg2)570 cbFn(arg0, arg1, arg2)
571 }571 }
572 CallbackVarRef = purego.NewCallback(fcb)572 CallbackVarRef = purego.NewCallback(fcb)
573- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)573+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
574 }574 }
575 }575 }
576 576
@@ -688,7 +688,7 @@ func (x *IOStream) SpliceAsync(Stream2Var *IOStream, FlagsVar IOStreamSpliceFlag
688 cbFn(arg0, arg1, arg2)688 cbFn(arg0, arg1, arg2)
689 }689 }
690 CallbackVarRef = purego.NewCallback(fcb)690 CallbackVarRef = purego.NewCallback(fcb)
691- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)691+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
692 }692 }
693 }693 }
694 694
M v4/gio/giotypes.go +4 -4
@@ -426,7 +426,7 @@ func (x *IOSchedulerJob) SendToMainloop(FuncVar *glib.SourceFunc, UserDataVar ui
426 return cbFn(arg0)426 return cbFn(arg0)
427 }427 }
428 FuncVarRef = purego.NewCallback(fcb)428 FuncVarRef = purego.NewCallback(fcb)
429- glib.SaveCallback(FuncVarPtr, FuncVarRef)429+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
430 }430 }
431 }431 }
432 432
@@ -441,7 +441,7 @@ func (x *IOSchedulerJob) SendToMainloop(FuncVar *glib.SourceFunc, UserDataVar ui
441 cbFn(arg0)441 cbFn(arg0)
442 }442 }
443 NotifyVarRef = purego.NewCallback(fcb)443 NotifyVarRef = purego.NewCallback(fcb)
444- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)444+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
445 }445 }
446 }446 }
447 447
@@ -474,7 +474,7 @@ func (x *IOSchedulerJob) SendToMainloopAsync(FuncVar *glib.SourceFunc, UserDataV
474 return cbFn(arg0)474 return cbFn(arg0)
475 }475 }
476 FuncVarRef = purego.NewCallback(fcb)476 FuncVarRef = purego.NewCallback(fcb)
477- glib.SaveCallback(FuncVarPtr, FuncVarRef)477+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
478 }478 }
479 }479 }
480 480
@@ -489,7 +489,7 @@ func (x *IOSchedulerJob) SendToMainloopAsync(FuncVar *glib.SourceFunc, UserDataV
489 cbFn(arg0)489 cbFn(arg0)
490 }490 }
491 NotifyVarRef = purego.NewCallback(fcb)491 NotifyVarRef = purego.NewCallback(fcb)
492- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)492+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
493 }493 }
494 }494 }
495 495
M v4/gio/gliststore.go +4 -4
@@ -112,7 +112,7 @@ func (x *ListStore) FindWithEqualFunc(ItemVar *gobject.Object, EqualFuncVar *gli
112 return cbFn(arg0, arg1)112 return cbFn(arg0, arg1)
113 }113 }
114 EqualFuncVarRef = purego.NewCallback(fcb)114 EqualFuncVarRef = purego.NewCallback(fcb)
115- glib.SaveCallback(EqualFuncVarPtr, EqualFuncVarRef)115+ glib.SaveCallbackWithClosure(EqualFuncVarPtr, EqualFuncVarRef, EqualFuncVar)
116 }116 }
117 }117 }
118 118
@@ -142,7 +142,7 @@ func (x *ListStore) FindWithEqualFuncFull(ItemVar *gobject.Object, EqualFuncVar
142 return cbFn(arg0, arg1, arg2)142 return cbFn(arg0, arg1, arg2)
143 }143 }
144 EqualFuncVarRef = purego.NewCallback(fcb)144 EqualFuncVarRef = purego.NewCallback(fcb)
145- glib.SaveCallback(EqualFuncVarPtr, EqualFuncVarRef)145+ glib.SaveCallbackWithClosure(EqualFuncVarPtr, EqualFuncVarRef, EqualFuncVar)
146 }146 }
147 }147 }
148 148
@@ -190,7 +190,7 @@ func (x *ListStore) InsertSorted(ItemVar *gobject.Object, CompareFuncVar *glib.C
190 return cbFn(arg0, arg1, arg2)190 return cbFn(arg0, arg1, arg2)
191 }191 }
192 CompareFuncVarRef = purego.NewCallback(fcb)192 CompareFuncVarRef = purego.NewCallback(fcb)
193- glib.SaveCallback(CompareFuncVarPtr, CompareFuncVarRef)193+ glib.SaveCallbackWithClosure(CompareFuncVarPtr, CompareFuncVarRef, CompareFuncVar)
194 }194 }
195 }195 }
196 196
@@ -237,7 +237,7 @@ func (x *ListStore) Sort(CompareFuncVar *glib.CompareDataFunc, UserDataVar uintp
237 return cbFn(arg0, arg1, arg2)237 return cbFn(arg0, arg1, arg2)
238 }238 }
239 CompareFuncVarRef = purego.NewCallback(fcb)239 CompareFuncVarRef = purego.NewCallback(fcb)
240- glib.SaveCallback(CompareFuncVarPtr, CompareFuncVarRef)240+ glib.SaveCallbackWithClosure(CompareFuncVarPtr, CompareFuncVarRef, CompareFuncVar)
241 }241 }
242 }242 }
243 243
M v4/gio/gmemoryinputstream.go +2 -2
@@ -224,7 +224,7 @@ func NewMemoryInputStreamFromData(DataVar []byte, LenVar int, DestroyVar *glib.D
224 cbFn(arg0)224 cbFn(arg0)
225 }225 }
226 DestroyVarRef = purego.NewCallback(fcb)226 DestroyVarRef = purego.NewCallback(fcb)
227- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)227+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
228 }228 }
229 }229 }
230 230
@@ -263,7 +263,7 @@ func (x *MemoryInputStream) AddData(DataVar []byte, LenVar int, DestroyVar *glib
263 cbFn(arg0)263 cbFn(arg0)
264 }264 }
265 DestroyVarRef = purego.NewCallback(fcb)265 DestroyVarRef = purego.NewCallback(fcb)
266- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)266+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
267 }267 }
268 }268 }
269 269
M v4/gio/gmemoryoutputstream.go +2 -2
@@ -239,7 +239,7 @@ func NewMemoryOutputStream(DataVar uintptr, SizeVar uint, ReallocFunctionVar *Re
239 return cbFn(arg0, arg1)239 return cbFn(arg0, arg1)
240 }240 }
241 ReallocFunctionVarRef = purego.NewCallback(fcb)241 ReallocFunctionVarRef = purego.NewCallback(fcb)
242- glib.SaveCallback(ReallocFunctionVarPtr, ReallocFunctionVarRef)242+ glib.SaveCallbackWithClosure(ReallocFunctionVarPtr, ReallocFunctionVarRef, ReallocFunctionVar)
243 }243 }
244 }244 }
245 245
@@ -254,7 +254,7 @@ func NewMemoryOutputStream(DataVar uintptr, SizeVar uint, ReallocFunctionVar *Re
254 cbFn(arg0)254 cbFn(arg0)
255 }255 }
256 DestroyFunctionVarRef = purego.NewCallback(fcb)256 DestroyFunctionVarRef = purego.NewCallback(fcb)
257- glib.SaveCallback(DestroyFunctionVarPtr, DestroyFunctionVarRef)257+ glib.SaveCallbackWithClosure(DestroyFunctionVarPtr, DestroyFunctionVarRef, DestroyFunctionVar)
258 }258 }
259 }259 }
260 260
M v4/gio/gmenumodel.go +1 -1
@@ -911,7 +911,7 @@ func (x *MenuModel) ConnectItemsChanged(cb *func(MenuModel, int, int, int)) uint
911 911
912 }912 }
913 cbRefPtr := purego.NewCallback(fcb)913 cbRefPtr := purego.NewCallback(fcb)
914- glib.SaveCallback(cbPtr, cbRefPtr)914+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
915 return gobject.SignalConnect(x.GoPointer(), "items-changed", cbRefPtr)915 return gobject.SignalConnect(x.GoPointer(), "items-changed", cbRefPtr)
916 }916 }
917 917
M v4/gio/gmountoperation.go +6 -6
@@ -840,7 +840,7 @@ func (x *MountOperation) ConnectAborted(cb *func(MountOperation)) uint32 {
840 840
841 }841 }
842 cbRefPtr := purego.NewCallback(fcb)842 cbRefPtr := purego.NewCallback(fcb)
843- glib.SaveCallback(cbPtr, cbRefPtr)843+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
844 return gobject.SignalConnect(x.GoPointer(), "aborted", cbRefPtr)844 return gobject.SignalConnect(x.GoPointer(), "aborted", cbRefPtr)
845 }845 }
846 846
@@ -864,7 +864,7 @@ func (x *MountOperation) ConnectAskPassword(cb *func(MountOperation, string, str
864 864
865 }865 }
866 cbRefPtr := purego.NewCallback(fcb)866 cbRefPtr := purego.NewCallback(fcb)
867- glib.SaveCallback(cbPtr, cbRefPtr)867+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
868 return gobject.SignalConnect(x.GoPointer(), "ask-password", cbRefPtr)868 return gobject.SignalConnect(x.GoPointer(), "ask-password", cbRefPtr)
869 }869 }
870 870
@@ -889,7 +889,7 @@ func (x *MountOperation) ConnectAskQuestion(cb *func(MountOperation, string, []s
889 889
890 }890 }
891 cbRefPtr := purego.NewCallback(fcb)891 cbRefPtr := purego.NewCallback(fcb)
892- glib.SaveCallback(cbPtr, cbRefPtr)892+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
893 return gobject.SignalConnect(x.GoPointer(), "ask-question", cbRefPtr)893 return gobject.SignalConnect(x.GoPointer(), "ask-question", cbRefPtr)
894 }894 }
895 895
@@ -909,7 +909,7 @@ func (x *MountOperation) ConnectReply(cb *func(MountOperation, MountOperationRes
909 909
910 }910 }
911 cbRefPtr := purego.NewCallback(fcb)911 cbRefPtr := purego.NewCallback(fcb)
912- glib.SaveCallback(cbPtr, cbRefPtr)912+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
913 return gobject.SignalConnect(x.GoPointer(), "reply", cbRefPtr)913 return gobject.SignalConnect(x.GoPointer(), "reply", cbRefPtr)
914 }914 }
915 915
@@ -940,7 +940,7 @@ func (x *MountOperation) ConnectShowProcesses(cb *func(MountOperation, string, [
940 940
941 }941 }
942 cbRefPtr := purego.NewCallback(fcb)942 cbRefPtr := purego.NewCallback(fcb)
943- glib.SaveCallback(cbPtr, cbRefPtr)943+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
944 return gobject.SignalConnect(x.GoPointer(), "show-processes", cbRefPtr)944 return gobject.SignalConnect(x.GoPointer(), "show-processes", cbRefPtr)
945 }945 }
946 946
@@ -975,7 +975,7 @@ func (x *MountOperation) ConnectShowUnmountProgress(cb *func(MountOperation, str
975 975
976 }976 }
977 cbRefPtr := purego.NewCallback(fcb)977 cbRefPtr := purego.NewCallback(fcb)
978- glib.SaveCallback(cbPtr, cbRefPtr)978+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
979 return gobject.SignalConnect(x.GoPointer(), "show-unmount-progress", cbRefPtr)979 return gobject.SignalConnect(x.GoPointer(), "show-unmount-progress", cbRefPtr)
980 }980 }
981 981
M v4/gio/goutputstream.go +8 -8
@@ -640,7 +640,7 @@ func (x *OutputStream) CloseAsync(IoPriorityVar int, CancellableVar *Cancellable
640 cbFn(arg0, arg1, arg2)640 cbFn(arg0, arg1, arg2)
641 }641 }
642 CallbackVarRef = purego.NewCallback(fcb)642 CallbackVarRef = purego.NewCallback(fcb)
643- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)643+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
644 }644 }
645 }645 }
646 646
@@ -708,7 +708,7 @@ func (x *OutputStream) FlushAsync(IoPriorityVar int, CancellableVar *Cancellable
708 cbFn(arg0, arg1, arg2)708 cbFn(arg0, arg1, arg2)
709 }709 }
710 CallbackVarRef = purego.NewCallback(fcb)710 CallbackVarRef = purego.NewCallback(fcb)
711- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)711+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
712 }712 }
713 }713 }
714 714
@@ -839,7 +839,7 @@ func (x *OutputStream) SpliceAsync(SourceVar *InputStream, FlagsVar OutputStream
839 cbFn(arg0, arg1, arg2)839 cbFn(arg0, arg1, arg2)
840 }840 }
841 CallbackVarRef = purego.NewCallback(fcb)841 CallbackVarRef = purego.NewCallback(fcb)
842- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)842+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
843 }843 }
844 }844 }
845 845
@@ -980,7 +980,7 @@ func (x *OutputStream) WriteAllAsync(BufferVar []byte, CountVar uint, IoPriority
980 cbFn(arg0, arg1, arg2)980 cbFn(arg0, arg1, arg2)
981 }981 }
982 CallbackVarRef = purego.NewCallback(fcb)982 CallbackVarRef = purego.NewCallback(fcb)
983- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)983+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
984 }984 }
985 }985 }
986 986
@@ -1062,7 +1062,7 @@ func (x *OutputStream) WriteAsync(BufferVar []byte, CountVar uint, IoPriorityVar
1062 cbFn(arg0, arg1, arg2)1062 cbFn(arg0, arg1, arg2)
1063 }1063 }
1064 CallbackVarRef = purego.NewCallback(fcb)1064 CallbackVarRef = purego.NewCallback(fcb)
1065- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)1065+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
1066 }1066 }
1067 }1067 }
1068 1068
@@ -1123,7 +1123,7 @@ func (x *OutputStream) WriteBytesAsync(BytesVar *glib.Bytes, IoPriorityVar int,
1123 cbFn(arg0, arg1, arg2)1123 cbFn(arg0, arg1, arg2)
1124 }1124 }
1125 CallbackVarRef = purego.NewCallback(fcb)1125 CallbackVarRef = purego.NewCallback(fcb)
1126- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)1126+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
1127 }1127 }
1128 }1128 }
1129 1129
@@ -1265,7 +1265,7 @@ func (x *OutputStream) WritevAllAsync(VectorsVar []OutputVector, NVectorsVar uin
1265 cbFn(arg0, arg1, arg2)1265 cbFn(arg0, arg1, arg2)
1266 }1266 }
1267 CallbackVarRef = purego.NewCallback(fcb)1267 CallbackVarRef = purego.NewCallback(fcb)
1268- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)1268+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
1269 }1269 }
1270 }1270 }
1271 1271
@@ -1342,7 +1342,7 @@ func (x *OutputStream) WritevAsync(VectorsVar []OutputVector, NVectorsVar uint,
1342 cbFn(arg0, arg1, arg2)1342 cbFn(arg0, arg1, arg2)
1343 }1343 }
1344 CallbackVarRef = purego.NewCallback(fcb)1344 CallbackVarRef = purego.NewCallback(fcb)
1345- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)1345+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
1346 }1346 }
1347 }1347 }
1348 1348
M v4/gio/gpermission.go +2 -2
@@ -261,7 +261,7 @@ func (x *Permission) AcquireAsync(CancellableVar *Cancellable, CallbackVar *Asyn
261 cbFn(arg0, arg1, arg2)261 cbFn(arg0, arg1, arg2)
262 }262 }
263 CallbackVarRef = purego.NewCallback(fcb)263 CallbackVarRef = purego.NewCallback(fcb)
264- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)264+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
265 }265 }
266 }266 }
267 267
@@ -385,7 +385,7 @@ func (x *Permission) ReleaseAsync(CancellableVar *Cancellable, CallbackVar *Asyn
385 cbFn(arg0, arg1, arg2)385 cbFn(arg0, arg1, arg2)
386 }386 }
387 CallbackVarRef = purego.NewCallback(fcb)387 CallbackVarRef = purego.NewCallback(fcb)
388- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)388+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
389 }389 }
390 }390 }
391 391
M v4/gio/gresolver.go +6 -6
@@ -545,7 +545,7 @@ func (x *Resolver) LookupByAddressAsync(AddressVar *InetAddress, CancellableVar
545 cbFn(arg0, arg1, arg2)545 cbFn(arg0, arg1, arg2)
546 }546 }
547 CallbackVarRef = purego.NewCallback(fcb)547 CallbackVarRef = purego.NewCallback(fcb)
548- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)548+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
549 }549 }
550 }550 }
551 551
@@ -629,7 +629,7 @@ func (x *Resolver) LookupByNameAsync(HostnameVar string, CancellableVar *Cancell
629 cbFn(arg0, arg1, arg2)629 cbFn(arg0, arg1, arg2)
630 }630 }
631 CallbackVarRef = purego.NewCallback(fcb)631 CallbackVarRef = purego.NewCallback(fcb)
632- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)632+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
633 }633 }
634 }634 }
635 635
@@ -693,7 +693,7 @@ func (x *Resolver) LookupByNameWithFlagsAsync(HostnameVar string, FlagsVar Resol
693 cbFn(arg0, arg1, arg2)693 cbFn(arg0, arg1, arg2)
694 }694 }
695 CallbackVarRef = purego.NewCallback(fcb)695 CallbackVarRef = purego.NewCallback(fcb)
696- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)696+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
697 }697 }
698 }698 }
699 699
@@ -764,7 +764,7 @@ func (x *Resolver) LookupRecordsAsync(RrnameVar string, RecordTypeVar ResolverRe
764 cbFn(arg0, arg1, arg2)764 cbFn(arg0, arg1, arg2)
765 }765 }
766 CallbackVarRef = purego.NewCallback(fcb)766 CallbackVarRef = purego.NewCallback(fcb)
767- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)767+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
768 }768 }
769 }769 }
770 770
@@ -849,7 +849,7 @@ func (x *Resolver) LookupServiceAsync(ServiceVar string, ProtocolVar string, Dom
849 cbFn(arg0, arg1, arg2)849 cbFn(arg0, arg1, arg2)
850 }850 }
851 CallbackVarRef = purego.NewCallback(fcb)851 CallbackVarRef = purego.NewCallback(fcb)
852- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)852+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
853 }853 }
854 }854 }
855 855
@@ -966,7 +966,7 @@ func (x *Resolver) ConnectReload(cb *func(Resolver)) uint32 {
966 966
967 }967 }
968 cbRefPtr := purego.NewCallback(fcb)968 cbRefPtr := purego.NewCallback(fcb)
969- glib.SaveCallback(cbPtr, cbRefPtr)969+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
970 return gobject.SignalConnect(x.GoPointer(), "reload", cbRefPtr)970 return gobject.SignalConnect(x.GoPointer(), "reload", cbRefPtr)
971 }971 }
972 972
M v4/gio/gsettings.go +10 -10
@@ -810,7 +810,7 @@ func (x *Settings) BindWithMapping(KeyVar string, ObjectVar *gobject.Object, Pro
810 return cbFn(arg0, arg1, arg2)810 return cbFn(arg0, arg1, arg2)
811 }811 }
812 GetMappingVarRef = purego.NewCallback(fcb)812 GetMappingVarRef = purego.NewCallback(fcb)
813- glib.SaveCallback(GetMappingVarPtr, GetMappingVarRef)813+ glib.SaveCallbackWithClosure(GetMappingVarPtr, GetMappingVarRef, GetMappingVar)
814 }814 }
815 }815 }
816 816
@@ -825,7 +825,7 @@ func (x *Settings) BindWithMapping(KeyVar string, ObjectVar *gobject.Object, Pro
825 return cbFn(arg0, arg1, arg2)825 return cbFn(arg0, arg1, arg2)
826 }826 }
827 SetMappingVarRef = purego.NewCallback(fcb)827 SetMappingVarRef = purego.NewCallback(fcb)
828- glib.SaveCallback(SetMappingVarPtr, SetMappingVarRef)828+ glib.SaveCallbackWithClosure(SetMappingVarPtr, SetMappingVarRef, SetMappingVar)
829 }829 }
830 }830 }
831 831
@@ -840,7 +840,7 @@ func (x *Settings) BindWithMapping(KeyVar string, ObjectVar *gobject.Object, Pro
840 cbFn(arg0)840 cbFn(arg0)
841 }841 }
842 DestroyVarRef = purego.NewCallback(fcb)842 DestroyVarRef = purego.NewCallback(fcb)
843- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)843+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
844 }844 }
845 }845 }
846 846
@@ -1155,7 +1155,7 @@ func (x *Settings) GetMapped(KeyVar string, MappingVar *SettingsGetMapping, User
1155 return cbFn(arg0, arg1, arg2)1155 return cbFn(arg0, arg1, arg2)
1156 }1156 }
1157 MappingVarRef = purego.NewCallback(fcb)1157 MappingVarRef = purego.NewCallback(fcb)
1158- glib.SaveCallback(MappingVarPtr, MappingVarRef)1158+ glib.SaveCallbackWithClosure(MappingVarPtr, MappingVarRef, MappingVar)
1159 }1159 }
1160 }1160 }
1161 1161
@@ -1716,7 +1716,7 @@ func (x *Settings) ConnectChangeEvent(cb *func(Settings, uintptr, int) bool) uin
1716 1716
1717 }1717 }
1718 cbRefPtr := purego.NewCallback(fcb)1718 cbRefPtr := purego.NewCallback(fcb)
1719- glib.SaveCallback(cbPtr, cbRefPtr)1719+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1720 return gobject.SignalConnect(x.GoPointer(), "change-event", cbRefPtr)1720 return gobject.SignalConnect(x.GoPointer(), "change-event", cbRefPtr)
1721 }1721 }
1722 1722
@@ -1746,7 +1746,7 @@ func (x *Settings) ConnectChanged(cb *func(Settings, string)) uint32 {
1746 1746
1747 }1747 }
1748 cbRefPtr := purego.NewCallback(fcb)1748 cbRefPtr := purego.NewCallback(fcb)
1749- glib.SaveCallback(cbPtr, cbRefPtr)1749+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1750 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)1750 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
1751 }1751 }
1752 1752
@@ -1768,7 +1768,7 @@ func (x *Settings) ConnectChangedWithDetail(detail string, cb *func(Settings, st
1768 1768
1769 }1769 }
1770 cbRefPtr := purego.NewCallback(fcb)1770 cbRefPtr := purego.NewCallback(fcb)
1771- glib.SaveCallback(cbPtr, cbRefPtr)1771+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1772 return gobject.SignalConnect(x.GoPointer(), signalName, cbRefPtr)1772 return gobject.SignalConnect(x.GoPointer(), signalName, cbRefPtr)
1773 }1773 }
1774 1774
@@ -1806,7 +1806,7 @@ func (x *Settings) ConnectWritableChangeEvent(cb *func(Settings, uint) bool) uin
1806 1806
1807 }1807 }
1808 cbRefPtr := purego.NewCallback(fcb)1808 cbRefPtr := purego.NewCallback(fcb)
1809- glib.SaveCallback(cbPtr, cbRefPtr)1809+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1810 return gobject.SignalConnect(x.GoPointer(), "writable-change-event", cbRefPtr)1810 return gobject.SignalConnect(x.GoPointer(), "writable-change-event", cbRefPtr)
1811 }1811 }
1812 1812
@@ -1833,7 +1833,7 @@ func (x *Settings) ConnectWritableChanged(cb *func(Settings, string)) uint32 {
1833 1833
1834 }1834 }
1835 cbRefPtr := purego.NewCallback(fcb)1835 cbRefPtr := purego.NewCallback(fcb)
1836- glib.SaveCallback(cbPtr, cbRefPtr)1836+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1837 return gobject.SignalConnect(x.GoPointer(), "writable-changed", cbRefPtr)1837 return gobject.SignalConnect(x.GoPointer(), "writable-changed", cbRefPtr)
1838 }1838 }
1839 1839
@@ -1855,7 +1855,7 @@ func (x *Settings) ConnectWritableChangedWithDetail(detail string, cb *func(Sett
1855 1855
1856 }1856 }
1857 cbRefPtr := purego.NewCallback(fcb)1857 cbRefPtr := purego.NewCallback(fcb)
1858- glib.SaveCallback(cbPtr, cbRefPtr)1858+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1859 return gobject.SignalConnect(x.GoPointer(), signalName, cbRefPtr)1859 return gobject.SignalConnect(x.GoPointer(), signalName, cbRefPtr)
1860 }1860 }
1861 1861
M v4/gio/gsimpleaction.go +2 -2
@@ -241,7 +241,7 @@ func (x *SimpleAction) ConnectActivate(cb *func(SimpleAction, uintptr)) uint32 {
241 241
242 }242 }
243 cbRefPtr := purego.NewCallback(fcb)243 cbRefPtr := purego.NewCallback(fcb)
244- glib.SaveCallback(cbPtr, cbRefPtr)244+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
245 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)245 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
246 }246 }
247 247
@@ -296,7 +296,7 @@ func (x *SimpleAction) ConnectChangeState(cb *func(SimpleAction, uintptr)) uint3
296 296
297 }297 }
298 cbRefPtr := purego.NewCallback(fcb)298 cbRefPtr := purego.NewCallback(fcb)
299- glib.SaveCallback(cbPtr, cbRefPtr)299+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
300 return gobject.SignalConnect(x.GoPointer(), "change-state", cbRefPtr)300 return gobject.SignalConnect(x.GoPointer(), "change-state", cbRefPtr)
301 }301 }
302 302
M v4/gio/gsimpleasyncresult.go +9 -9
@@ -38,7 +38,7 @@ func SimpleAsyncReportErrorInIdle(ObjectVar *gobject.Object, CallbackVar *AsyncR
38 cbFn(arg0, arg1, arg2)38 cbFn(arg0, arg1, arg2)
39 }39 }
40 CallbackVarRef = purego.NewCallback(fcb)40 CallbackVarRef = purego.NewCallback(fcb)
41- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)41+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
42 }42 }
43 }43 }
44 44
@@ -64,7 +64,7 @@ func SimpleAsyncReportGerrorInIdle(ObjectVar *gobject.Object, CallbackVar *Async
64 cbFn(arg0, arg1, arg2)64 cbFn(arg0, arg1, arg2)
65 }65 }
66 CallbackVarRef = purego.NewCallback(fcb)66 CallbackVarRef = purego.NewCallback(fcb)
67- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)67+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
68 }68 }
69 }69 }
70 70
@@ -90,7 +90,7 @@ func SimpleAsyncReportTakeGerrorInIdle(ObjectVar *gobject.Object, CallbackVar *A
90 cbFn(arg0, arg1, arg2)90 cbFn(arg0, arg1, arg2)
91 }91 }
92 CallbackVarRef = purego.NewCallback(fcb)92 CallbackVarRef = purego.NewCallback(fcb)
93- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)93+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
94 }94 }
95 }95 }
96 96
@@ -313,7 +313,7 @@ func NewSimpleAsyncResult(SourceObjectVar *gobject.Object, CallbackVar *AsyncRea
313 cbFn(arg0, arg1, arg2)313 cbFn(arg0, arg1, arg2)
314 }314 }
315 CallbackVarRef = purego.NewCallback(fcb)315 CallbackVarRef = purego.NewCallback(fcb)
316- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)316+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
317 }317 }
318 }318 }
319 319
@@ -344,7 +344,7 @@ func NewSimpleAsyncResultError(SourceObjectVar *gobject.Object, CallbackVar *Asy
344 cbFn(arg0, arg1, arg2)344 cbFn(arg0, arg1, arg2)
345 }345 }
346 CallbackVarRef = purego.NewCallback(fcb)346 CallbackVarRef = purego.NewCallback(fcb)
347- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)347+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
348 }348 }
349 }349 }
350 350
@@ -375,7 +375,7 @@ func NewSimpleAsyncResultFromError(SourceObjectVar *gobject.Object, CallbackVar
375 cbFn(arg0, arg1, arg2)375 cbFn(arg0, arg1, arg2)
376 }376 }
377 CallbackVarRef = purego.NewCallback(fcb)377 CallbackVarRef = purego.NewCallback(fcb)
378- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)378+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
379 }379 }
380 }380 }
381 381
@@ -407,7 +407,7 @@ func NewSimpleAsyncResultTakeError(SourceObjectVar *gobject.Object, CallbackVar
407 cbFn(arg0, arg1, arg2)407 cbFn(arg0, arg1, arg2)
408 }408 }
409 CallbackVarRef = purego.NewCallback(fcb)409 CallbackVarRef = purego.NewCallback(fcb)
410- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)410+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
411 }411 }
412 }412 }
413 413
@@ -532,7 +532,7 @@ func (x *SimpleAsyncResult) RunInThread(FuncVar *SimpleAsyncThreadFunc, IoPriori
532 cbFn(arg0, arg1, arg2)532 cbFn(arg0, arg1, arg2)
533 }533 }
534 FuncVarRef = purego.NewCallback(fcb)534 FuncVarRef = purego.NewCallback(fcb)
535- glib.SaveCallback(FuncVarPtr, FuncVarRef)535+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
536 }536 }
537 }537 }
538 538
@@ -629,7 +629,7 @@ func (x *SimpleAsyncResult) SetOpResGpointer(OpResVar uintptr, DestroyOpResVar *
629 cbFn(arg0)629 cbFn(arg0)
630 }630 }
631 DestroyOpResVarRef = purego.NewCallback(fcb)631 DestroyOpResVarRef = purego.NewCallback(fcb)
632- glib.SaveCallback(DestroyOpResVarPtr, DestroyOpResVarRef)632+ glib.SaveCallbackWithClosure(DestroyOpResVarPtr, DestroyOpResVarRef, DestroyOpResVar)
633 }633 }
634 }634 }
635 635
M v4/gio/gsocketaddressenumerator.go +1 -1
@@ -208,7 +208,7 @@ func (x *SocketAddressEnumerator) NextAsync(CancellableVar *Cancellable, Callbac
208 cbFn(arg0, arg1, arg2)208 cbFn(arg0, arg1, arg2)
209 }209 }
210 CallbackVarRef = purego.NewCallback(fcb)210 CallbackVarRef = purego.NewCallback(fcb)
211- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)211+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
212 }212 }
213 }213 }
214 214
M v4/gio/gsocketclient.go +5 -5
@@ -294,7 +294,7 @@ func (x *SocketClient) ConnectAsync(ConnectableVar SocketConnectable, Cancellabl
294 cbFn(arg0, arg1, arg2)294 cbFn(arg0, arg1, arg2)
295 }295 }
296 CallbackVarRef = purego.NewCallback(fcb)296 CallbackVarRef = purego.NewCallback(fcb)
297- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)297+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
298 }298 }
299 }299 }
300 300
@@ -393,7 +393,7 @@ func (x *SocketClient) ConnectToHostAsync(HostAndPortVar string, DefaultPortVar
393 cbFn(arg0, arg1, arg2)393 cbFn(arg0, arg1, arg2)
394 }394 }
395 CallbackVarRef = purego.NewCallback(fcb)395 CallbackVarRef = purego.NewCallback(fcb)
396- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)396+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
397 }397 }
398 }398 }
399 399
@@ -473,7 +473,7 @@ func (x *SocketClient) ConnectToServiceAsync(DomainVar string, ServiceVar string
473 cbFn(arg0, arg1, arg2)473 cbFn(arg0, arg1, arg2)
474 }474 }
475 CallbackVarRef = purego.NewCallback(fcb)475 CallbackVarRef = purego.NewCallback(fcb)
476- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)476+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
477 }477 }
478 }478 }
479 479
@@ -563,7 +563,7 @@ func (x *SocketClient) ConnectToUriAsync(UriVar string, DefaultPortVar uint16, C
563 cbFn(arg0, arg1, arg2)563 cbFn(arg0, arg1, arg2)
564 }564 }
565 CallbackVarRef = purego.NewCallback(fcb)565 CallbackVarRef = purego.NewCallback(fcb)
566- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)566+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
567 }567 }
568 }568 }
569 569
@@ -982,7 +982,7 @@ func (x *SocketClient) ConnectEvent(cb *func(SocketClient, SocketClientEvent, ui
982 982
983 }983 }
984 cbRefPtr := purego.NewCallback(fcb)984 cbRefPtr := purego.NewCallback(fcb)
985- glib.SaveCallback(cbPtr, cbRefPtr)985+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
986 return gobject.SignalConnect(x.GoPointer(), "event", cbRefPtr)986 return gobject.SignalConnect(x.GoPointer(), "event", cbRefPtr)
987 }987 }
988 988
M v4/gio/gsocketconnection.go +1 -1
@@ -252,7 +252,7 @@ func (x *SocketConnection) ConnectAsync(AddressVar *SocketAddress, CancellableVa
252 cbFn(arg0, arg1, arg2)252 cbFn(arg0, arg1, arg2)
253 }253 }
254 CallbackVarRef = purego.NewCallback(fcb)254 CallbackVarRef = purego.NewCallback(fcb)
255- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)255+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
256 }256 }
257 }257 }
258 258
M v4/gio/gsocketlistener.go +3 -3
@@ -308,7 +308,7 @@ func (x *SocketListener) AcceptAsync(CancellableVar *Cancellable, CallbackVar *A
308 cbFn(arg0, arg1, arg2)308 cbFn(arg0, arg1, arg2)
309 }309 }
310 CallbackVarRef = purego.NewCallback(fcb)310 CallbackVarRef = purego.NewCallback(fcb)
311- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)311+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
312 }312 }
313 }313 }
314 314
@@ -391,7 +391,7 @@ func (x *SocketListener) AcceptSocketAsync(CancellableVar *Cancellable, Callback
391 cbFn(arg0, arg1, arg2)391 cbFn(arg0, arg1, arg2)
392 }392 }
393 CallbackVarRef = purego.NewCallback(fcb)393 CallbackVarRef = purego.NewCallback(fcb)
394- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)394+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
395 }395 }
396 }396 }
397 397
@@ -622,7 +622,7 @@ func (x *SocketListener) ConnectEvent(cb *func(SocketListener, SocketListenerEve
622 622
623 }623 }
624 cbRefPtr := purego.NewCallback(fcb)624 cbRefPtr := purego.NewCallback(fcb)
625- glib.SaveCallback(cbPtr, cbRefPtr)625+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
626 return gobject.SignalConnect(x.GoPointer(), "event", cbRefPtr)626 return gobject.SignalConnect(x.GoPointer(), "event", cbRefPtr)
627 }627 }
628 628
M v4/gio/gsocketservice.go +1 -1
@@ -373,7 +373,7 @@ func (x *SocketService) ConnectIncoming(cb *func(SocketService, uintptr, uintptr
373 373
374 }374 }
375 cbRefPtr := purego.NewCallback(fcb)375 cbRefPtr := purego.NewCallback(fcb)
376- glib.SaveCallback(cbPtr, cbRefPtr)376+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
377 return gobject.SignalConnect(x.GoPointer(), "incoming", cbRefPtr)377 return gobject.SignalConnect(x.GoPointer(), "incoming", cbRefPtr)
378 }378 }
379 379
M v4/gio/gsubprocess.go +4 -4
@@ -208,7 +208,7 @@ func (x *Subprocess) CommunicateAsync(StdinBufVar *glib.Bytes, CancellableVar *C
208 cbFn(arg0, arg1, arg2)208 cbFn(arg0, arg1, arg2)
209 }209 }
210 CallbackVarRef = purego.NewCallback(fcb)210 CallbackVarRef = purego.NewCallback(fcb)
211- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)211+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
212 }212 }
213 }213 }
214 214
@@ -271,7 +271,7 @@ func (x *Subprocess) CommunicateUtf8Async(StdinBufVar *string, CancellableVar *C
271 cbFn(arg0, arg1, arg2)271 cbFn(arg0, arg1, arg2)
272 }272 }
273 CallbackVarRef = purego.NewCallback(fcb)273 CallbackVarRef = purego.NewCallback(fcb)
274- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)274+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
275 }275 }
276 }276 }
277 277
@@ -545,7 +545,7 @@ func (x *Subprocess) WaitAsync(CancellableVar *Cancellable, CallbackVar *AsyncRe
545 cbFn(arg0, arg1, arg2)545 cbFn(arg0, arg1, arg2)
546 }546 }
547 CallbackVarRef = purego.NewCallback(fcb)547 CallbackVarRef = purego.NewCallback(fcb)
548- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)548+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
549 }549 }
550 }550 }
551 551
@@ -586,7 +586,7 @@ func (x *Subprocess) WaitCheckAsync(CancellableVar *Cancellable, CallbackVar *As
586 cbFn(arg0, arg1, arg2)586 cbFn(arg0, arg1, arg2)
587 }587 }
588 CallbackVarRef = purego.NewCallback(fcb)588 CallbackVarRef = purego.NewCallback(fcb)
589- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)589+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
590 }590 }
591 }591 }
592 592
M v4/gio/gsubprocesslauncher.go +2 -2
@@ -116,7 +116,7 @@ func (x *SubprocessLauncher) SetChildSetup(ChildSetupVar *glib.SpawnChildSetupFu
116 cbFn(arg0)116 cbFn(arg0)
117 }117 }
118 ChildSetupVarRef = purego.NewCallback(fcb)118 ChildSetupVarRef = purego.NewCallback(fcb)
119- glib.SaveCallback(ChildSetupVarPtr, ChildSetupVarRef)119+ glib.SaveCallbackWithClosure(ChildSetupVarPtr, ChildSetupVarRef, ChildSetupVar)
120 }120 }
121 }121 }
122 122
@@ -131,7 +131,7 @@ func (x *SubprocessLauncher) SetChildSetup(ChildSetupVar *glib.SpawnChildSetupFu
131 cbFn(arg0)131 cbFn(arg0)
132 }132 }
133 DestroyNotifyVarRef = purego.NewCallback(fcb)133 DestroyNotifyVarRef = purego.NewCallback(fcb)
134- glib.SaveCallback(DestroyNotifyVarPtr, DestroyNotifyVarRef)134+ glib.SaveCallbackWithClosure(DestroyNotifyVarPtr, DestroyNotifyVarRef, DestroyNotifyVar)
135 }135 }
136 }136 }
137 137
M v4/gio/gtask.go +8 -8
@@ -645,7 +645,7 @@ func NewTask(SourceObjectVar *gobject.Object, CancellableVar *Cancellable, Callb
645 cbFn(arg0, arg1, arg2)645 cbFn(arg0, arg1, arg2)
646 }646 }
647 CallbackVarRef = purego.NewCallback(fcb)647 CallbackVarRef = purego.NewCallback(fcb)
648- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)648+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
649 }649 }
650 }650 }
651 651
@@ -685,7 +685,7 @@ func (x *Task) AttachSource(SourceVar *glib.Source, CallbackVar *glib.SourceFunc
685 return cbFn(arg0)685 return cbFn(arg0)
686 }686 }
687 CallbackVarRef = purego.NewCallback(fcb)687 CallbackVarRef = purego.NewCallback(fcb)
688- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)688+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
689 }689 }
690 }690 }
691 691
@@ -1033,7 +1033,7 @@ func (x *Task) ReturnPointer(ResultVar uintptr, ResultDestroyVar *glib.DestroyNo
1033 cbFn(arg0)1033 cbFn(arg0)
1034 }1034 }
1035 ResultDestroyVarRef = purego.NewCallback(fcb)1035 ResultDestroyVarRef = purego.NewCallback(fcb)
1036- glib.SaveCallback(ResultDestroyVarPtr, ResultDestroyVarRef)1036+ glib.SaveCallbackWithClosure(ResultDestroyVarPtr, ResultDestroyVarRef, ResultDestroyVar)
1037 }1037 }
1038 }1038 }
1039 1039
@@ -1111,7 +1111,7 @@ func (x *Task) RunInThread(TaskFuncVar *TaskThreadFunc) {
1111 cbFn(arg0, arg1, arg2, arg3)1111 cbFn(arg0, arg1, arg2, arg3)
1112 }1112 }
1113 TaskFuncVarRef = purego.NewCallback(fcb)1113 TaskFuncVarRef = purego.NewCallback(fcb)
1114- glib.SaveCallback(TaskFuncVarPtr, TaskFuncVarRef)1114+ glib.SaveCallbackWithClosure(TaskFuncVarPtr, TaskFuncVarRef, TaskFuncVar)
1115 }1115 }
1116 }1116 }
1117 1117
@@ -1150,7 +1150,7 @@ func (x *Task) RunInThreadSync(TaskFuncVar *TaskThreadFunc) {
1150 cbFn(arg0, arg1, arg2, arg3)1150 cbFn(arg0, arg1, arg2, arg3)
1151 }1151 }
1152 TaskFuncVarRef = purego.NewCallback(fcb)1152 TaskFuncVarRef = purego.NewCallback(fcb)
1153- glib.SaveCallback(TaskFuncVarPtr, TaskFuncVarRef)1153+ glib.SaveCallbackWithClosure(TaskFuncVarPtr, TaskFuncVarRef, TaskFuncVar)
1154 }1154 }
1155 }1155 }
1156 1156
@@ -1307,7 +1307,7 @@ func (x *Task) SetTaskData(TaskDataVar uintptr, TaskDataDestroyVar *glib.Destroy
1307 cbFn(arg0)1307 cbFn(arg0)
1308 }1308 }
1309 TaskDataDestroyVarRef = purego.NewCallback(fcb)1309 TaskDataDestroyVarRef = purego.NewCallback(fcb)
1310- glib.SaveCallback(TaskDataDestroyVarPtr, TaskDataDestroyVarRef)1310+ glib.SaveCallbackWithClosure(TaskDataDestroyVarPtr, TaskDataDestroyVarRef, TaskDataDestroyVar)
1311 }1311 }
1312 }1312 }
1313 1313
@@ -1425,7 +1425,7 @@ func TaskReportError(SourceObjectVar *gobject.Object, CallbackVar *AsyncReadyCal
1425 cbFn(arg0, arg1, arg2)1425 cbFn(arg0, arg1, arg2)
1426 }1426 }
1427 CallbackVarRef = purego.NewCallback(fcb)1427 CallbackVarRef = purego.NewCallback(fcb)
1428- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)1428+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
1429 }1429 }
1430 }1430 }
1431 1431
@@ -1457,7 +1457,7 @@ func TaskReportNewError(SourceObjectVar *gobject.Object, CallbackVar *AsyncReady
1457 cbFn(arg0, arg1, arg2)1457 cbFn(arg0, arg1, arg2)
1458 }1458 }
1459 CallbackVarRef = purego.NewCallback(fcb)1459 CallbackVarRef = purego.NewCallback(fcb)
1460- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)1460+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
1461 }1461 }
1462 }1462 }
1463 1463
M v4/gio/gthreadedsocketservice.go +1 -1
@@ -276,7 +276,7 @@ func (x *ThreadedSocketService) ConnectRun(cb *func(ThreadedSocketService, uintp
276 276
277 }277 }
278 cbRefPtr := purego.NewCallback(fcb)278 cbRefPtr := purego.NewCallback(fcb)
279- glib.SaveCallback(cbPtr, cbRefPtr)279+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
280 return gobject.SignalConnect(x.GoPointer(), "run", cbRefPtr)280 return gobject.SignalConnect(x.GoPointer(), "run", cbRefPtr)
281 }281 }
282 282
M v4/gio/gtlsconnection.go +2 -2
@@ -506,7 +506,7 @@ func (x *TlsConnection) HandshakeAsync(IoPriorityVar int, CancellableVar *Cancel
506 cbFn(arg0, arg1, arg2)506 cbFn(arg0, arg1, arg2)
507 }507 }
508 CallbackVarRef = purego.NewCallback(fcb)508 CallbackVarRef = purego.NewCallback(fcb)
509- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)509+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
510 }510 }
511 }511 }
512 512
@@ -815,7 +815,7 @@ func (x *TlsConnection) ConnectAcceptCertificate(cb *func(TlsConnection, uintptr
815 815
816 }816 }
817 cbRefPtr := purego.NewCallback(fcb)817 cbRefPtr := purego.NewCallback(fcb)
818- glib.SaveCallback(cbPtr, cbRefPtr)818+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
819 return gobject.SignalConnect(x.GoPointer(), "accept-certificate", cbRefPtr)819 return gobject.SignalConnect(x.GoPointer(), "accept-certificate", cbRefPtr)
820 }820 }
821 821
M v4/gio/gtlsdatabase.go +4 -4
@@ -578,7 +578,7 @@ func (x *TlsDatabase) LookupCertificateForHandleAsync(HandleVar string, Interact
578 cbFn(arg0, arg1, arg2)578 cbFn(arg0, arg1, arg2)
579 }579 }
580 CallbackVarRef = purego.NewCallback(fcb)580 CallbackVarRef = purego.NewCallback(fcb)
581- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)581+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
582 }582 }
583 }583 }
584 584
@@ -668,7 +668,7 @@ func (x *TlsDatabase) LookupCertificateIssuerAsync(CertificateVar *TlsCertificat
668 cbFn(arg0, arg1, arg2)668 cbFn(arg0, arg1, arg2)
669 }669 }
670 CallbackVarRef = purego.NewCallback(fcb)670 CallbackVarRef = purego.NewCallback(fcb)
671- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)671+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
672 }672 }
673 }673 }
674 674
@@ -737,7 +737,7 @@ func (x *TlsDatabase) LookupCertificatesIssuedByAsync(IssuerRawDnVar []byte, Int
737 cbFn(arg0, arg1, arg2)737 cbFn(arg0, arg1, arg2)
738 }738 }
739 CallbackVarRef = purego.NewCallback(fcb)739 CallbackVarRef = purego.NewCallback(fcb)
740- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)740+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
741 }741 }
742 }742 }
743 743
@@ -853,7 +853,7 @@ func (x *TlsDatabase) VerifyChainAsync(ChainVar *TlsCertificate, PurposeVar stri
853 cbFn(arg0, arg1, arg2)853 cbFn(arg0, arg1, arg2)
854 }854 }
855 CallbackVarRef = purego.NewCallback(fcb)855 CallbackVarRef = purego.NewCallback(fcb)
856- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)856+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
857 }857 }
858 }858 }
859 859
M v4/gio/gtlsinteraction.go +2 -2
@@ -333,7 +333,7 @@ func (x *TlsInteraction) AskPasswordAsync(PasswordVar *TlsPassword, CancellableV
333 cbFn(arg0, arg1, arg2)333 cbFn(arg0, arg1, arg2)
334 }334 }
335 CallbackVarRef = purego.NewCallback(fcb)335 CallbackVarRef = purego.NewCallback(fcb)
336- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)336+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
337 }337 }
338 }338 }
339 339
@@ -484,7 +484,7 @@ func (x *TlsInteraction) RequestCertificateAsync(ConnectionVar *TlsConnection, F
484 cbFn(arg0, arg1, arg2)484 cbFn(arg0, arg1, arg2)
485 }485 }
486 CallbackVarRef = purego.NewCallback(fcb)486 CallbackVarRef = purego.NewCallback(fcb)
487- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)487+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
488 }488 }
489 }489 }
490 490
M v4/gio/gtlspassword.go +1 -1
@@ -255,7 +255,7 @@ func (x *TlsPassword) SetValueFull(ValueVar []byte, LengthVar int, DestroyVar *g
255 cbFn(arg0)255 cbFn(arg0)
256 }256 }
257 DestroyVarRef = purego.NewCallback(fcb)257 DestroyVarRef = purego.NewCallback(fcb)
258- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)258+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
259 }259 }
260 }260 }
261 261
M v4/gio/gunixconnection.go +2 -2
@@ -117,7 +117,7 @@ func (x *UnixConnection) ReceiveCredentialsAsync(CancellableVar *Cancellable, Ca
117 cbFn(arg0, arg1, arg2)117 cbFn(arg0, arg1, arg2)
118 }118 }
119 CallbackVarRef = purego.NewCallback(fcb)119 CallbackVarRef = purego.NewCallback(fcb)
120- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)120+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
121 }121 }
122 }122 }
123 123
@@ -223,7 +223,7 @@ func (x *UnixConnection) SendCredentialsAsync(CancellableVar *Cancellable, Callb
223 cbFn(arg0, arg1, arg2)223 cbFn(arg0, arg1, arg2)
224 }224 }
225 CallbackVarRef = purego.NewCallback(fcb)225 CallbackVarRef = purego.NewCallback(fcb)
226- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)226+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
227 }227 }
228 }228 }
229 229
M v4/gio/gvfs.go +4 -4
@@ -627,7 +627,7 @@ func (x *Vfs) RegisterUriScheme(SchemeVar string, UriFuncVar *VfsFileLookupFunc,
627 return cbFn(arg0, arg1, arg2)627 return cbFn(arg0, arg1, arg2)
628 }628 }
629 UriFuncVarRef = purego.NewCallback(fcb)629 UriFuncVarRef = purego.NewCallback(fcb)
630- glib.SaveCallback(UriFuncVarPtr, UriFuncVarRef)630+ glib.SaveCallbackWithClosure(UriFuncVarPtr, UriFuncVarRef, UriFuncVar)
631 }631 }
632 }632 }
633 633
@@ -642,7 +642,7 @@ func (x *Vfs) RegisterUriScheme(SchemeVar string, UriFuncVar *VfsFileLookupFunc,
642 cbFn(arg0)642 cbFn(arg0)
643 }643 }
644 UriDestroyVarRef = purego.NewCallback(fcb)644 UriDestroyVarRef = purego.NewCallback(fcb)
645- glib.SaveCallback(UriDestroyVarPtr, UriDestroyVarRef)645+ glib.SaveCallbackWithClosure(UriDestroyVarPtr, UriDestroyVarRef, UriDestroyVar)
646 }646 }
647 }647 }
648 648
@@ -657,7 +657,7 @@ func (x *Vfs) RegisterUriScheme(SchemeVar string, UriFuncVar *VfsFileLookupFunc,
657 return cbFn(arg0, arg1, arg2)657 return cbFn(arg0, arg1, arg2)
658 }658 }
659 ParseNameFuncVarRef = purego.NewCallback(fcb)659 ParseNameFuncVarRef = purego.NewCallback(fcb)
660- glib.SaveCallback(ParseNameFuncVarPtr, ParseNameFuncVarRef)660+ glib.SaveCallbackWithClosure(ParseNameFuncVarPtr, ParseNameFuncVarRef, ParseNameFuncVar)
661 }661 }
662 }662 }
663 663
@@ -672,7 +672,7 @@ func (x *Vfs) RegisterUriScheme(SchemeVar string, UriFuncVar *VfsFileLookupFunc,
672 cbFn(arg0)672 cbFn(arg0)
673 }673 }
674 ParseNameDestroyVarRef = purego.NewCallback(fcb)674 ParseNameDestroyVarRef = purego.NewCallback(fcb)
675- glib.SaveCallback(ParseNameDestroyVarPtr, ParseNameDestroyVarRef)675+ glib.SaveCallbackWithClosure(ParseNameDestroyVarPtr, ParseNameDestroyVarRef, ParseNameDestroyVar)
676 }676 }
677 }677 }
678 678
M v4/gio/gvolumemonitor.go +12 -12
@@ -808,7 +808,7 @@ func (x *VolumeMonitor) ConnectDriveChanged(cb *func(VolumeMonitor, uintptr)) ui
808 808
809 }809 }
810 cbRefPtr := purego.NewCallback(fcb)810 cbRefPtr := purego.NewCallback(fcb)
811- glib.SaveCallback(cbPtr, cbRefPtr)811+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
812 return gobject.SignalConnect(x.GoPointer(), "drive-changed", cbRefPtr)812 return gobject.SignalConnect(x.GoPointer(), "drive-changed", cbRefPtr)
813 }813 }
814 814
@@ -828,7 +828,7 @@ func (x *VolumeMonitor) ConnectDriveConnected(cb *func(VolumeMonitor, uintptr))
828 828
829 }829 }
830 cbRefPtr := purego.NewCallback(fcb)830 cbRefPtr := purego.NewCallback(fcb)
831- glib.SaveCallback(cbPtr, cbRefPtr)831+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
832 return gobject.SignalConnect(x.GoPointer(), "drive-connected", cbRefPtr)832 return gobject.SignalConnect(x.GoPointer(), "drive-connected", cbRefPtr)
833 }833 }
834 834
@@ -848,7 +848,7 @@ func (x *VolumeMonitor) ConnectDriveDisconnected(cb *func(VolumeMonitor, uintptr
848 848
849 }849 }
850 cbRefPtr := purego.NewCallback(fcb)850 cbRefPtr := purego.NewCallback(fcb)
851- glib.SaveCallback(cbPtr, cbRefPtr)851+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
852 return gobject.SignalConnect(x.GoPointer(), "drive-disconnected", cbRefPtr)852 return gobject.SignalConnect(x.GoPointer(), "drive-disconnected", cbRefPtr)
853 }853 }
854 854
@@ -868,7 +868,7 @@ func (x *VolumeMonitor) ConnectDriveEjectButton(cb *func(VolumeMonitor, uintptr)
868 868
869 }869 }
870 cbRefPtr := purego.NewCallback(fcb)870 cbRefPtr := purego.NewCallback(fcb)
871- glib.SaveCallback(cbPtr, cbRefPtr)871+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
872 return gobject.SignalConnect(x.GoPointer(), "drive-eject-button", cbRefPtr)872 return gobject.SignalConnect(x.GoPointer(), "drive-eject-button", cbRefPtr)
873 }873 }
874 874
@@ -888,7 +888,7 @@ func (x *VolumeMonitor) ConnectDriveStopButton(cb *func(VolumeMonitor, uintptr))
888 888
889 }889 }
890 cbRefPtr := purego.NewCallback(fcb)890 cbRefPtr := purego.NewCallback(fcb)
891- glib.SaveCallback(cbPtr, cbRefPtr)891+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
892 return gobject.SignalConnect(x.GoPointer(), "drive-stop-button", cbRefPtr)892 return gobject.SignalConnect(x.GoPointer(), "drive-stop-button", cbRefPtr)
893 }893 }
894 894
@@ -908,7 +908,7 @@ func (x *VolumeMonitor) ConnectMountAdded(cb *func(VolumeMonitor, uintptr)) uint
908 908
909 }909 }
910 cbRefPtr := purego.NewCallback(fcb)910 cbRefPtr := purego.NewCallback(fcb)
911- glib.SaveCallback(cbPtr, cbRefPtr)911+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
912 return gobject.SignalConnect(x.GoPointer(), "mount-added", cbRefPtr)912 return gobject.SignalConnect(x.GoPointer(), "mount-added", cbRefPtr)
913 }913 }
914 914
@@ -928,7 +928,7 @@ func (x *VolumeMonitor) ConnectMountChanged(cb *func(VolumeMonitor, uintptr)) ui
928 928
929 }929 }
930 cbRefPtr := purego.NewCallback(fcb)930 cbRefPtr := purego.NewCallback(fcb)
931- glib.SaveCallback(cbPtr, cbRefPtr)931+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
932 return gobject.SignalConnect(x.GoPointer(), "mount-changed", cbRefPtr)932 return gobject.SignalConnect(x.GoPointer(), "mount-changed", cbRefPtr)
933 }933 }
934 934
@@ -951,7 +951,7 @@ func (x *VolumeMonitor) ConnectMountPreUnmount(cb *func(VolumeMonitor, uintptr))
951 951
952 }952 }
953 cbRefPtr := purego.NewCallback(fcb)953 cbRefPtr := purego.NewCallback(fcb)
954- glib.SaveCallback(cbPtr, cbRefPtr)954+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
955 return gobject.SignalConnect(x.GoPointer(), "mount-pre-unmount", cbRefPtr)955 return gobject.SignalConnect(x.GoPointer(), "mount-pre-unmount", cbRefPtr)
956 }956 }
957 957
@@ -971,7 +971,7 @@ func (x *VolumeMonitor) ConnectMountRemoved(cb *func(VolumeMonitor, uintptr)) ui
971 971
972 }972 }
973 cbRefPtr := purego.NewCallback(fcb)973 cbRefPtr := purego.NewCallback(fcb)
974- glib.SaveCallback(cbPtr, cbRefPtr)974+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
975 return gobject.SignalConnect(x.GoPointer(), "mount-removed", cbRefPtr)975 return gobject.SignalConnect(x.GoPointer(), "mount-removed", cbRefPtr)
976 }976 }
977 977
@@ -991,7 +991,7 @@ func (x *VolumeMonitor) ConnectVolumeAdded(cb *func(VolumeMonitor, uintptr)) uin
991 991
992 }992 }
993 cbRefPtr := purego.NewCallback(fcb)993 cbRefPtr := purego.NewCallback(fcb)
994- glib.SaveCallback(cbPtr, cbRefPtr)994+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
995 return gobject.SignalConnect(x.GoPointer(), "volume-added", cbRefPtr)995 return gobject.SignalConnect(x.GoPointer(), "volume-added", cbRefPtr)
996 }996 }
997 997
@@ -1011,7 +1011,7 @@ func (x *VolumeMonitor) ConnectVolumeChanged(cb *func(VolumeMonitor, uintptr)) u
1011 1011
1012 }1012 }
1013 cbRefPtr := purego.NewCallback(fcb)1013 cbRefPtr := purego.NewCallback(fcb)
1014- glib.SaveCallback(cbPtr, cbRefPtr)1014+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1015 return gobject.SignalConnect(x.GoPointer(), "volume-changed", cbRefPtr)1015 return gobject.SignalConnect(x.GoPointer(), "volume-changed", cbRefPtr)
1016 }1016 }
1017 1017
@@ -1031,7 +1031,7 @@ func (x *VolumeMonitor) ConnectVolumeRemoved(cb *func(VolumeMonitor, uintptr)) u
1031 1031
1032 }1032 }
1033 cbRefPtr := purego.NewCallback(fcb)1033 cbRefPtr := purego.NewCallback(fcb)
1034- glib.SaveCallback(cbPtr, cbRefPtr)1034+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1035 return gobject.SignalConnect(x.GoPointer(), "volume-removed", cbRefPtr)1035 return gobject.SignalConnect(x.GoPointer(), "volume-removed", cbRefPtr)
1036 }1036 }
1037 1037
M v4/glib/garray.go +10 -10
@@ -161,7 +161,7 @@ func NewBytesWithFreeFunc(DataVar []byte, SizeVar uint, FreeFuncVar *DestroyNoti
161 cbFn(arg0)161 cbFn(arg0)
162 }162 }
163 FreeFuncVarRef = purego.NewCallback(fcb)163 FreeFuncVarRef = purego.NewCallback(fcb)
164- SaveCallback(FreeFuncVarPtr, FreeFuncVarRef)164+ SaveCallbackWithClosure(FreeFuncVarPtr, FreeFuncVarRef, FreeFuncVar)
165 }165 }
166 }166 }
167 167
@@ -607,7 +607,7 @@ func ByteArraySort(ArrayVar []byte, CompareFuncVar *CompareFunc) {
607 return cbFn(arg0, arg1)607 return cbFn(arg0, arg1)
608 }608 }
609 CompareFuncVarRef = purego.NewCallback(fcb)609 CompareFuncVarRef = purego.NewCallback(fcb)
610- SaveCallback(CompareFuncVarPtr, CompareFuncVarRef)610+ SaveCallbackWithClosure(CompareFuncVarPtr, CompareFuncVarRef, CompareFuncVar)
611 }611 }
612 }612 }
613 613
@@ -632,7 +632,7 @@ func ByteArraySortWithData(ArrayVar []byte, CompareFuncVar *CompareDataFunc, Use
632 return cbFn(arg0, arg1, arg2)632 return cbFn(arg0, arg1, arg2)
633 }633 }
634 CompareFuncVarRef = purego.NewCallback(fcb)634 CompareFuncVarRef = purego.NewCallback(fcb)
635- SaveCallback(CompareFuncVarPtr, CompareFuncVarRef)635+ SaveCallbackWithClosure(CompareFuncVarPtr, CompareFuncVarRef, CompareFuncVar)
636 }636 }
637 }637 }
638 638
@@ -705,7 +705,7 @@ func PtrArrayFindWithEqualFunc(HaystackVar []uintptr, NeedleVar uintptr, EqualFu
705 return cbFn(arg0, arg1)705 return cbFn(arg0, arg1)
706 }706 }
707 EqualFuncVarRef = purego.NewCallback(fcb)707 EqualFuncVarRef = purego.NewCallback(fcb)
708- SaveCallback(EqualFuncVarPtr, EqualFuncVarRef)708+ SaveCallbackWithClosure(EqualFuncVarPtr, EqualFuncVarRef, EqualFuncVar)
709 }709 }
710 }710 }
711 711
@@ -746,7 +746,7 @@ func PtrArrayNewFromArray(DataVar []uintptr, LenVar uint, CopyFuncVar *CopyFunc,
746 return cbFn(arg0, arg1)746 return cbFn(arg0, arg1)
747 }747 }
748 CopyFuncVarRef = purego.NewCallback(fcb)748 CopyFuncVarRef = purego.NewCallback(fcb)
749- SaveCallback(CopyFuncVarPtr, CopyFuncVarRef)749+ SaveCallbackWithClosure(CopyFuncVarPtr, CopyFuncVarRef, CopyFuncVar)
750 }750 }
751 }751 }
752 752
@@ -761,7 +761,7 @@ func PtrArrayNewFromArray(DataVar []uintptr, LenVar uint, CopyFuncVar *CopyFunc,
761 cbFn(arg0)761 cbFn(arg0)
762 }762 }
763 ElementFreeFuncVarRef = purego.NewCallback(fcb)763 ElementFreeFuncVarRef = purego.NewCallback(fcb)
764- SaveCallback(ElementFreeFuncVarPtr, ElementFreeFuncVarRef)764+ SaveCallbackWithClosure(ElementFreeFuncVarPtr, ElementFreeFuncVarRef, ElementFreeFuncVar)
765 }765 }
766 }766 }
767 767
@@ -798,7 +798,7 @@ func PtrArrayNewFromNullTerminatedArray(DataVar []uintptr, CopyFuncVar *CopyFunc
798 return cbFn(arg0, arg1)798 return cbFn(arg0, arg1)
799 }799 }
800 CopyFuncVarRef = purego.NewCallback(fcb)800 CopyFuncVarRef = purego.NewCallback(fcb)
801- SaveCallback(CopyFuncVarPtr, CopyFuncVarRef)801+ SaveCallbackWithClosure(CopyFuncVarPtr, CopyFuncVarRef, CopyFuncVar)
802 }802 }
803 }803 }
804 804
@@ -813,7 +813,7 @@ func PtrArrayNewFromNullTerminatedArray(DataVar []uintptr, CopyFuncVar *CopyFunc
813 cbFn(arg0)813 cbFn(arg0)
814 }814 }
815 ElementFreeFuncVarRef = purego.NewCallback(fcb)815 ElementFreeFuncVarRef = purego.NewCallback(fcb)
816- SaveCallback(ElementFreeFuncVarPtr, ElementFreeFuncVarRef)816+ SaveCallbackWithClosure(ElementFreeFuncVarPtr, ElementFreeFuncVarRef, ElementFreeFuncVar)
817 }817 }
818 }818 }
819 819
@@ -853,7 +853,7 @@ func PtrArrayNewTake(DataVar []uintptr, LenVar uint, ElementFreeFuncVar *Destroy
853 cbFn(arg0)853 cbFn(arg0)
854 }854 }
855 ElementFreeFuncVarRef = purego.NewCallback(fcb)855 ElementFreeFuncVarRef = purego.NewCallback(fcb)
856- SaveCallback(ElementFreeFuncVarPtr, ElementFreeFuncVarRef)856+ SaveCallbackWithClosure(ElementFreeFuncVarPtr, ElementFreeFuncVarRef, ElementFreeFuncVar)
857 }857 }
858 }858 }
859 859
@@ -896,7 +896,7 @@ func PtrArrayNewTakeNullTerminated(DataVar []uintptr, ElementFreeFuncVar *Destro
896 cbFn(arg0)896 cbFn(arg0)
897 }897 }
898 ElementFreeFuncVarRef = purego.NewCallback(fcb)898 ElementFreeFuncVarRef = purego.NewCallback(fcb)
899- SaveCallback(ElementFreeFuncVarPtr, ElementFreeFuncVarRef)899+ SaveCallbackWithClosure(ElementFreeFuncVarPtr, ElementFreeFuncVarRef, ElementFreeFuncVar)
900 }900 }
901 }901 }
902 902
M v4/glib/gasyncqueue.go +5 -5
@@ -159,7 +159,7 @@ func (x *AsyncQueue) PushSorted(DataVar uintptr, FuncVar *CompareDataFunc, UserD
159 return cbFn(arg0, arg1, arg2)159 return cbFn(arg0, arg1, arg2)
160 }160 }
161 FuncVarRef = purego.NewCallback(fcb)161 FuncVarRef = purego.NewCallback(fcb)
162- SaveCallback(FuncVarPtr, FuncVarRef)162+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
163 }163 }
164 }164 }
165 165
@@ -197,7 +197,7 @@ func (x *AsyncQueue) PushSortedUnlocked(DataVar uintptr, FuncVar *CompareDataFun
197 return cbFn(arg0, arg1, arg2)197 return cbFn(arg0, arg1, arg2)
198 }198 }
199 FuncVarRef = purego.NewCallback(fcb)199 FuncVarRef = purego.NewCallback(fcb)
200- SaveCallback(FuncVarPtr, FuncVarRef)200+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
201 }201 }
202 }202 }
203 203
@@ -299,7 +299,7 @@ func (x *AsyncQueue) Sort(FuncVar *CompareDataFunc, UserDataVar uintptr) {
299 return cbFn(arg0, arg1, arg2)299 return cbFn(arg0, arg1, arg2)
300 }300 }
301 FuncVarRef = purego.NewCallback(fcb)301 FuncVarRef = purego.NewCallback(fcb)
302- SaveCallback(FuncVarPtr, FuncVarRef)302+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
303 }303 }
304 }304 }
305 305
@@ -331,7 +331,7 @@ func (x *AsyncQueue) SortUnlocked(FuncVar *CompareDataFunc, UserDataVar uintptr)
331 return cbFn(arg0, arg1, arg2)331 return cbFn(arg0, arg1, arg2)
332 }332 }
333 FuncVarRef = purego.NewCallback(fcb)333 FuncVarRef = purego.NewCallback(fcb)
334- SaveCallback(FuncVarPtr, FuncVarRef)334+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
335 }335 }
336 }336 }
337 337
@@ -492,7 +492,7 @@ func AsyncQueueNewFull(ItemFreeFuncVar *DestroyNotify) *AsyncQueue {
492 cbFn(arg0)492 cbFn(arg0)
493 }493 }
494 ItemFreeFuncVarRef = purego.NewCallback(fcb)494 ItemFreeFuncVarRef = purego.NewCallback(fcb)
495- SaveCallback(ItemFreeFuncVarPtr, ItemFreeFuncVarRef)495+ SaveCallbackWithClosure(ItemFreeFuncVarPtr, ItemFreeFuncVarRef, ItemFreeFuncVar)
496 }496 }
497 }497 }
498 498
M v4/glib/gcache.go +2 -2
@@ -92,7 +92,7 @@ func (x *Cache) KeyForeach(FuncVar *HFunc, UserDataVar uintptr) {
92 cbFn(arg0, arg1, arg2)92 cbFn(arg0, arg1, arg2)
93 }93 }
94 FuncVarRef = purego.NewCallback(fcb)94 FuncVarRef = purego.NewCallback(fcb)
95- SaveCallback(FuncVarPtr, FuncVarRef)95+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
96 }96 }
97 }97 }
98 98
@@ -127,7 +127,7 @@ func (x *Cache) ValueForeach(FuncVar *HFunc, UserDataVar uintptr) {
127 cbFn(arg0, arg1, arg2)127 cbFn(arg0, arg1, arg2)
128 }128 }
129 FuncVarRef = purego.NewCallback(fcb)129 FuncVarRef = purego.NewCallback(fcb)
130- SaveCallback(FuncVarPtr, FuncVarRef)130+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
131 }131 }
132 }132 }
133 133
M v4/glib/gcompletion.go +1 -1
@@ -144,7 +144,7 @@ func (x *Completion) SetCompare(StrncmpFuncVar *CompletionStrncmpFunc) {
144 return cbFn(arg0, arg1, arg2)144 return cbFn(arg0, arg1, arg2)
145 }145 }
146 StrncmpFuncVarRef = purego.NewCallback(fcb)146 StrncmpFuncVarRef = purego.NewCallback(fcb)
147- SaveCallback(StrncmpFuncVarPtr, StrncmpFuncVarRef)147+ SaveCallbackWithClosure(StrncmpFuncVarPtr, StrncmpFuncVarRef, StrncmpFuncVar)
148 }148 }
149 }149 }
150 150
M v4/glib/gdataset.go +6 -6
@@ -74,7 +74,7 @@ func DatalistForeach(DatalistVar **Data, FuncVar *DataForeachFunc, UserDataVar u
74 cbFn(arg0, arg1, arg2)74 cbFn(arg0, arg1, arg2)
75 }75 }
76 FuncVarRef = purego.NewCallback(fcb)76 FuncVarRef = purego.NewCallback(fcb)
77- SaveCallback(FuncVarPtr, FuncVarRef)77+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
78 }78 }
79 }79 }
80 80
@@ -132,7 +132,7 @@ func DatalistIdDupData(DatalistVar **Data, KeyIdVar Quark, DupFuncVar *Duplicate
132 return cbFn(arg0, arg1)132 return cbFn(arg0, arg1)
133 }133 }
134 DupFuncVarRef = purego.NewCallback(fcb)134 DupFuncVarRef = purego.NewCallback(fcb)
135- SaveCallback(DupFuncVarPtr, DupFuncVarRef)135+ SaveCallbackWithClosure(DupFuncVarPtr, DupFuncVarRef, DupFuncVar)
136 }136 }
137 }137 }
138 138
@@ -205,7 +205,7 @@ func DatalistIdReplaceData(DatalistVar **Data, KeyIdVar Quark, OldvalVar uintptr
205 cbFn(arg0)205 cbFn(arg0)
206 }206 }
207 DestroyVarRef = purego.NewCallback(fcb)207 DestroyVarRef = purego.NewCallback(fcb)
208- SaveCallback(DestroyVarPtr, DestroyVarRef)208+ SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
209 }209 }
210 }210 }
211 211
@@ -233,7 +233,7 @@ func DatalistIdSetDataFull(DatalistVar **Data, KeyIdVar Quark, DataVar uintptr,
233 cbFn(arg0)233 cbFn(arg0)
234 }234 }
235 DestroyFuncVarRef = purego.NewCallback(fcb)235 DestroyFuncVarRef = purego.NewCallback(fcb)
236- SaveCallback(DestroyFuncVarPtr, DestroyFuncVarRef)236+ SaveCallbackWithClosure(DestroyFuncVarPtr, DestroyFuncVarRef, DestroyFuncVar)
237 }237 }
238 }238 }
239 239
@@ -307,7 +307,7 @@ func DatasetForeach(DatasetLocationVar uintptr, FuncVar *DataForeachFunc, UserDa
307 cbFn(arg0, arg1, arg2)307 cbFn(arg0, arg1, arg2)
308 }308 }
309 FuncVarRef = purego.NewCallback(fcb)309 FuncVarRef = purego.NewCallback(fcb)
310- SaveCallback(FuncVarPtr, FuncVarRef)310+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
311 }311 }
312 }312 }
313 313
@@ -355,7 +355,7 @@ func DatasetIdSetDataFull(DatasetLocationVar uintptr, KeyIdVar Quark, DataVar ui
355 cbFn(arg0)355 cbFn(arg0)
356 }356 }
357 DestroyFuncVarRef = purego.NewCallback(fcb)357 DestroyFuncVarRef = purego.NewCallback(fcb)
358- SaveCallback(DestroyFuncVarPtr, DestroyFuncVarRef)358+ SaveCallbackWithClosure(DestroyFuncVarPtr, DestroyFuncVarRef, DestroyFuncVar)
359 }359 }
360 }360 }
361 361
M v4/glib/gerror.go +6 -6
@@ -166,7 +166,7 @@ func ErrorDomainRegister(ErrorTypeNameVar string, ErrorTypePrivateSizeVar uint,
166 cbFn(arg0)166 cbFn(arg0)
167 }167 }
168 ErrorTypeInitVarRef = purego.NewCallback(fcb)168 ErrorTypeInitVarRef = purego.NewCallback(fcb)
169- SaveCallback(ErrorTypeInitVarPtr, ErrorTypeInitVarRef)169+ SaveCallbackWithClosure(ErrorTypeInitVarPtr, ErrorTypeInitVarRef, ErrorTypeInitVar)
170 }170 }
171 }171 }
172 172
@@ -181,7 +181,7 @@ func ErrorDomainRegister(ErrorTypeNameVar string, ErrorTypePrivateSizeVar uint,
181 cbFn(arg0, arg1)181 cbFn(arg0, arg1)
182 }182 }
183 ErrorTypeCopyVarRef = purego.NewCallback(fcb)183 ErrorTypeCopyVarRef = purego.NewCallback(fcb)
184- SaveCallback(ErrorTypeCopyVarPtr, ErrorTypeCopyVarRef)184+ SaveCallbackWithClosure(ErrorTypeCopyVarPtr, ErrorTypeCopyVarRef, ErrorTypeCopyVar)
185 }185 }
186 }186 }
187 187
@@ -196,7 +196,7 @@ func ErrorDomainRegister(ErrorTypeNameVar string, ErrorTypePrivateSizeVar uint,
196 cbFn(arg0)196 cbFn(arg0)
197 }197 }
198 ErrorTypeClearVarRef = purego.NewCallback(fcb)198 ErrorTypeClearVarRef = purego.NewCallback(fcb)
199- SaveCallback(ErrorTypeClearVarPtr, ErrorTypeClearVarRef)199+ SaveCallbackWithClosure(ErrorTypeClearVarPtr, ErrorTypeClearVarRef, ErrorTypeClearVar)
200 }200 }
201 }201 }
202 202
@@ -237,7 +237,7 @@ func ErrorDomainRegisterStatic(ErrorTypeNameVar string, ErrorTypePrivateSizeVar
237 cbFn(arg0)237 cbFn(arg0)
238 }238 }
239 ErrorTypeInitVarRef = purego.NewCallback(fcb)239 ErrorTypeInitVarRef = purego.NewCallback(fcb)
240- SaveCallback(ErrorTypeInitVarPtr, ErrorTypeInitVarRef)240+ SaveCallbackWithClosure(ErrorTypeInitVarPtr, ErrorTypeInitVarRef, ErrorTypeInitVar)
241 }241 }
242 }242 }
243 243
@@ -252,7 +252,7 @@ func ErrorDomainRegisterStatic(ErrorTypeNameVar string, ErrorTypePrivateSizeVar
252 cbFn(arg0, arg1)252 cbFn(arg0, arg1)
253 }253 }
254 ErrorTypeCopyVarRef = purego.NewCallback(fcb)254 ErrorTypeCopyVarRef = purego.NewCallback(fcb)
255- SaveCallback(ErrorTypeCopyVarPtr, ErrorTypeCopyVarRef)255+ SaveCallbackWithClosure(ErrorTypeCopyVarPtr, ErrorTypeCopyVarRef, ErrorTypeCopyVar)
256 }256 }
257 }257 }
258 258
@@ -267,7 +267,7 @@ func ErrorDomainRegisterStatic(ErrorTypeNameVar string, ErrorTypePrivateSizeVar
267 cbFn(arg0)267 cbFn(arg0)
268 }268 }
269 ErrorTypeClearVarRef = purego.NewCallback(fcb)269 ErrorTypeClearVarRef = purego.NewCallback(fcb)
270- SaveCallback(ErrorTypeClearVarPtr, ErrorTypeClearVarRef)270+ SaveCallbackWithClosure(ErrorTypeClearVarPtr, ErrorTypeClearVarRef, ErrorTypeClearVar)
271 }271 }
272 }272 }
273 273
M v4/glib/ghash.go +4 -4
@@ -305,7 +305,7 @@ func HashTableFind(HashTableVar *HashTable, PredicateVar *HRFunc, UserDataVar ui
305 return cbFn(arg0, arg1, arg2)305 return cbFn(arg0, arg1, arg2)
306 }306 }
307 PredicateVarRef = purego.NewCallback(fcb)307 PredicateVarRef = purego.NewCallback(fcb)
308- SaveCallback(PredicateVarPtr, PredicateVarRef)308+ SaveCallbackWithClosure(PredicateVarPtr, PredicateVarRef, PredicateVar)
309 }309 }
310 }310 }
311 311
@@ -341,7 +341,7 @@ func HashTableForeach(HashTableVar *HashTable, FuncVar *HFunc, UserDataVar uintp
341 cbFn(arg0, arg1, arg2)341 cbFn(arg0, arg1, arg2)
342 }342 }
343 FuncVarRef = purego.NewCallback(fcb)343 FuncVarRef = purego.NewCallback(fcb)
344- SaveCallback(FuncVarPtr, FuncVarRef)344+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
345 }345 }
346 }346 }
347 347
@@ -372,7 +372,7 @@ func HashTableForeachRemove(HashTableVar *HashTable, FuncVar *HRFunc, UserDataVa
372 return cbFn(arg0, arg1, arg2)372 return cbFn(arg0, arg1, arg2)
373 }373 }
374 FuncVarRef = purego.NewCallback(fcb)374 FuncVarRef = purego.NewCallback(fcb)
375- SaveCallback(FuncVarPtr, FuncVarRef)375+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
376 }376 }
377 }377 }
378 378
@@ -403,7 +403,7 @@ func HashTableForeachSteal(HashTableVar *HashTable, FuncVar *HRFunc, UserDataVar
403 return cbFn(arg0, arg1, arg2)403 return cbFn(arg0, arg1, arg2)
404 }404 }
405 FuncVarRef = purego.NewCallback(fcb)405 FuncVarRef = purego.NewCallback(fcb)
406- SaveCallback(FuncVarPtr, FuncVarRef)406+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
407 }407 }
408 }408 }
409 409
M v4/glib/ghook.go +3 -3
@@ -147,7 +147,7 @@ func (x *HookList) Marshal(MayRecurseVar bool, MarshallerVar *HookMarshaller, Ma
147 cbFn(arg0, arg1)147 cbFn(arg0, arg1)
148 }148 }
149 MarshallerVarRef = purego.NewCallback(fcb)149 MarshallerVarRef = purego.NewCallback(fcb)
150- SaveCallback(MarshallerVarPtr, MarshallerVarRef)150+ SaveCallbackWithClosure(MarshallerVarPtr, MarshallerVarRef, MarshallerVar)
151 }151 }
152 }152 }
153 153
@@ -172,7 +172,7 @@ func (x *HookList) MarshalCheck(MayRecurseVar bool, MarshallerVar *HookCheckMars
172 return cbFn(arg0, arg1)172 return cbFn(arg0, arg1)
173 }173 }
174 MarshallerVarRef = purego.NewCallback(fcb)174 MarshallerVarRef = purego.NewCallback(fcb)
175- SaveCallback(MarshallerVarPtr, MarshallerVarRef)175+ SaveCallbackWithClosure(MarshallerVarPtr, MarshallerVarRef, MarshallerVar)
176 }176 }
177 }177 }
178 178
@@ -257,7 +257,7 @@ func HookInsertSorted(HookListVar *HookList, HookVar *Hook, FuncVar *HookCompare
257 return cbFn(arg0, arg1)257 return cbFn(arg0, arg1)
258 }258 }
259 FuncVarRef = purego.NewCallback(fcb)259 FuncVarRef = purego.NewCallback(fcb)
260- SaveCallback(FuncVarPtr, FuncVarRef)260+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
261 }261 }
262 }262 }
263 263
M v4/glib/giochannel.go +3 -3
@@ -1064,7 +1064,7 @@ func IoAddWatch(ChannelVar *IOChannel, ConditionVar IOCondition, FuncVar *IOFunc
1064 return cbFn(arg0, arg1, arg2)1064 return cbFn(arg0, arg1, arg2)
1065 }1065 }
1066 FuncVarRef = purego.NewCallback(fcb)1066 FuncVarRef = purego.NewCallback(fcb)
1067- SaveCallback(FuncVarPtr, FuncVarRef)1067+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
1068 }1068 }
1069 }1069 }
1070 1070
@@ -1094,7 +1094,7 @@ func IoAddWatchFull(ChannelVar *IOChannel, PriorityVar int, ConditionVar IOCondi
1094 return cbFn(arg0, arg1, arg2)1094 return cbFn(arg0, arg1, arg2)
1095 }1095 }
1096 FuncVarRef = purego.NewCallback(fcb)1096 FuncVarRef = purego.NewCallback(fcb)
1097- SaveCallback(FuncVarPtr, FuncVarRef)1097+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
1098 }1098 }
1099 }1099 }
1100 1100
@@ -1109,7 +1109,7 @@ func IoAddWatchFull(ChannelVar *IOChannel, PriorityVar int, ConditionVar IOCondi
1109 cbFn(arg0)1109 cbFn(arg0)
1110 }1110 }
1111 NotifyVarRef = purego.NewCallback(fcb)1111 NotifyVarRef = purego.NewCallback(fcb)
1112- SaveCallback(NotifyVarPtr, NotifyVarRef)1112+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
1113 }1113 }
1114 }1114 }
1115 1115
M v4/glib/glib-unix.go +6 -6
@@ -112,7 +112,7 @@ func UnixFdAdd(FdVar int, ConditionVar IOCondition, FunctionVar *UnixFDSourceFun
112 return cbFn(arg0, arg1, arg2)112 return cbFn(arg0, arg1, arg2)
113 }113 }
114 FunctionVarRef = purego.NewCallback(fcb)114 FunctionVarRef = purego.NewCallback(fcb)
115- SaveCallback(FunctionVarPtr, FunctionVarRef)115+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
116 }116 }
117 }117 }
118 118
@@ -142,7 +142,7 @@ func UnixFdAddFull(PriorityVar int, FdVar int, ConditionVar IOCondition, Functio
142 return cbFn(arg0, arg1, arg2)142 return cbFn(arg0, arg1, arg2)
143 }143 }
144 FunctionVarRef = purego.NewCallback(fcb)144 FunctionVarRef = purego.NewCallback(fcb)
145- SaveCallback(FunctionVarPtr, FunctionVarRef)145+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
146 }146 }
147 }147 }
148 148
@@ -157,7 +157,7 @@ func UnixFdAddFull(PriorityVar int, FdVar int, ConditionVar IOCondition, Functio
157 cbFn(arg0)157 cbFn(arg0)
158 }158 }
159 NotifyVarRef = purego.NewCallback(fcb)159 NotifyVarRef = purego.NewCallback(fcb)
160- SaveCallback(NotifyVarPtr, NotifyVarRef)160+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
161 }161 }
162 }162 }
163 163
@@ -275,7 +275,7 @@ func UnixSignalAdd(SignumVar int, HandlerVar *SourceFunc, UserDataVar uintptr) u
275 return cbFn(arg0)275 return cbFn(arg0)
276 }276 }
277 HandlerVarRef = purego.NewCallback(fcb)277 HandlerVarRef = purego.NewCallback(fcb)
278- SaveCallback(HandlerVarPtr, HandlerVarRef)278+ SaveCallbackWithClosure(HandlerVarPtr, HandlerVarRef, HandlerVar)
279 }279 }
280 }280 }
281 281
@@ -302,7 +302,7 @@ func UnixSignalAddFull(PriorityVar int, SignumVar int, HandlerVar *SourceFunc, U
302 return cbFn(arg0)302 return cbFn(arg0)
303 }303 }
304 HandlerVarRef = purego.NewCallback(fcb)304 HandlerVarRef = purego.NewCallback(fcb)
305- SaveCallback(HandlerVarPtr, HandlerVarRef)305+ SaveCallbackWithClosure(HandlerVarPtr, HandlerVarRef, HandlerVar)
306 }306 }
307 }307 }
308 308
@@ -317,7 +317,7 @@ func UnixSignalAddFull(PriorityVar int, SignumVar int, HandlerVar *SourceFunc, U
317 cbFn(arg0)317 cbFn(arg0)
318 }318 }
319 NotifyVarRef = purego.NewCallback(fcb)319 NotifyVarRef = purego.NewCallback(fcb)
320- SaveCallback(NotifyVarPtr, NotifyVarRef)320+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
321 }321 }
322 }322 }
323 323
M v4/glib/glist.go +1 -1
@@ -42,7 +42,7 @@ func ClearList(ListPtrVar **List, DestroyVar *DestroyNotify) {
42 cbFn(arg0)42 cbFn(arg0)
43 }43 }
44 DestroyVarRef = purego.NewCallback(fcb)44 DestroyVarRef = purego.NewCallback(fcb)
45- SaveCallback(DestroyVarPtr, DestroyVarRef)45+ SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
46 }46 }
47 }47 }
48 48
M v4/glib/gmain.go +23 -23
@@ -298,7 +298,7 @@ func (x *MainContext) Invoke(FunctionVar *SourceFunc, DataVar uintptr) {
298 return cbFn(arg0)298 return cbFn(arg0)
299 }299 }
300 FunctionVarRef = purego.NewCallback(fcb)300 FunctionVarRef = purego.NewCallback(fcb)
301- SaveCallback(FunctionVarPtr, FunctionVarRef)301+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
302 }302 }
303 }303 }
304 304
@@ -331,7 +331,7 @@ func (x *MainContext) InvokeFull(PriorityVar int, FunctionVar *SourceFunc, DataV
331 return cbFn(arg0)331 return cbFn(arg0)
332 }332 }
333 FunctionVarRef = purego.NewCallback(fcb)333 FunctionVarRef = purego.NewCallback(fcb)
334- SaveCallback(FunctionVarPtr, FunctionVarRef)334+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
335 }335 }
336 }336 }
337 337
@@ -346,7 +346,7 @@ func (x *MainContext) InvokeFull(PriorityVar int, FunctionVar *SourceFunc, DataV
346 cbFn(arg0)346 cbFn(arg0)
347 }347 }
348 NotifyVarRef = purego.NewCallback(fcb)348 NotifyVarRef = purego.NewCallback(fcb)
349- SaveCallback(NotifyVarPtr, NotifyVarRef)349+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
350 }350 }
351 }351 }
352 352
@@ -601,7 +601,7 @@ func (x *MainContext) SetPollFunc(FuncVar *PollFunc) {
601 return cbFn(arg0, arg1, arg2)601 return cbFn(arg0, arg1, arg2)
602 }602 }
603 FuncVarRef = purego.NewCallback(fcb)603 FuncVarRef = purego.NewCallback(fcb)
604- SaveCallback(FuncVarPtr, FuncVarRef)604+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
605 }605 }
606 }606 }
607 607
@@ -1301,7 +1301,7 @@ func (x *Source) SetCallback(FuncVar *SourceFunc, DataVar uintptr, NotifyVar *De
1301 return cbFn(arg0)1301 return cbFn(arg0)
1302 }1302 }
1303 FuncVarRef = purego.NewCallback(fcb)1303 FuncVarRef = purego.NewCallback(fcb)
1304- SaveCallback(FuncVarPtr, FuncVarRef)1304+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
1305 }1305 }
1306 }1306 }
1307 1307
@@ -1316,7 +1316,7 @@ func (x *Source) SetCallback(FuncVar *SourceFunc, DataVar uintptr, NotifyVar *De
1316 cbFn(arg0)1316 cbFn(arg0)
1317 }1317 }
1318 NotifyVarRef = purego.NewCallback(fcb)1318 NotifyVarRef = purego.NewCallback(fcb)
1319- SaveCallback(NotifyVarPtr, NotifyVarRef)1319+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
1320 }1320 }
1321 }1321 }
1322 1322
@@ -1392,7 +1392,7 @@ func (x *Source) SetDisposeFunction(DisposeVar *SourceDisposeFunc) {
1392 cbFn(arg0)1392 cbFn(arg0)
1393 }1393 }
1394 DisposeVarRef = purego.NewCallback(fcb)1394 DisposeVarRef = purego.NewCallback(fcb)
1395- SaveCallback(DisposeVarPtr, DisposeVarRef)1395+ SaveCallbackWithClosure(DisposeVarPtr, DisposeVarRef, DisposeVar)
1396 }1396 }
1397 }1397 }
1398 1398
@@ -1745,7 +1745,7 @@ func ChildWatchAdd(PidVar Pid, FunctionVar *ChildWatchFunc, DataVar uintptr) uin
1745 cbFn(arg0, arg1, arg2)1745 cbFn(arg0, arg1, arg2)
1746 }1746 }
1747 FunctionVarRef = purego.NewCallback(fcb)1747 FunctionVarRef = purego.NewCallback(fcb)
1748- SaveCallback(FunctionVarPtr, FunctionVarRef)1748+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
1749 }1749 }
1750 }1750 }
1751 1751
@@ -1794,7 +1794,7 @@ func ChildWatchAddFull(PriorityVar int, PidVar Pid, FunctionVar *ChildWatchFunc,
1794 cbFn(arg0, arg1, arg2)1794 cbFn(arg0, arg1, arg2)
1795 }1795 }
1796 FunctionVarRef = purego.NewCallback(fcb)1796 FunctionVarRef = purego.NewCallback(fcb)
1797- SaveCallback(FunctionVarPtr, FunctionVarRef)1797+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
1798 }1798 }
1799 }1799 }
1800 1800
@@ -1809,7 +1809,7 @@ func ChildWatchAddFull(PriorityVar int, PidVar Pid, FunctionVar *ChildWatchFunc,
1809 cbFn(arg0)1809 cbFn(arg0)
1810 }1810 }
1811 NotifyVarRef = purego.NewCallback(fcb)1811 NotifyVarRef = purego.NewCallback(fcb)
1812- SaveCallback(NotifyVarPtr, NotifyVarRef)1812+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
1813 }1813 }
1814 }1814 }
1815 1815
@@ -1892,7 +1892,7 @@ func ClearHandleId(TagPtrVar uint, ClearFuncVar *ClearHandleFunc) {
1892 cbFn(arg0)1892 cbFn(arg0)
1893 }1893 }
1894 ClearFuncVarRef = purego.NewCallback(fcb)1894 ClearFuncVarRef = purego.NewCallback(fcb)
1895- SaveCallback(ClearFuncVarPtr, ClearFuncVarRef)1895+ SaveCallbackWithClosure(ClearFuncVarPtr, ClearFuncVarRef, ClearFuncVar)
1896 }1896 }
1897 }1897 }
1898 1898
@@ -1982,7 +1982,7 @@ func IdleAdd(FunctionVar *SourceFunc, DataVar uintptr) uint {
1982 return cbFn(arg0)1982 return cbFn(arg0)
1983 }1983 }
1984 FunctionVarRef = purego.NewCallback(fcb)1984 FunctionVarRef = purego.NewCallback(fcb)
1985- SaveCallback(FunctionVarPtr, FunctionVarRef)1985+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
1986 }1986 }
1987 }1987 }
1988 1988
@@ -2020,7 +2020,7 @@ func IdleAddFull(PriorityVar int, FunctionVar *SourceFunc, DataVar uintptr, Noti
2020 return cbFn(arg0)2020 return cbFn(arg0)
2021 }2021 }
2022 FunctionVarRef = purego.NewCallback(fcb)2022 FunctionVarRef = purego.NewCallback(fcb)
2023- SaveCallback(FunctionVarPtr, FunctionVarRef)2023+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
2024 }2024 }
2025 }2025 }
2026 2026
@@ -2035,7 +2035,7 @@ func IdleAddFull(PriorityVar int, FunctionVar *SourceFunc, DataVar uintptr, Noti
2035 cbFn(arg0)2035 cbFn(arg0)
2036 }2036 }
2037 NotifyVarRef = purego.NewCallback(fcb)2037 NotifyVarRef = purego.NewCallback(fcb)
2038- SaveCallback(NotifyVarPtr, NotifyVarRef)2038+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
2039 }2039 }
2040 }2040 }
2041 2041
@@ -2069,7 +2069,7 @@ func IdleAddOnce(FunctionVar *SourceOnceFunc, DataVar uintptr) uint {
2069 cbFn(arg0)2069 cbFn(arg0)
2070 }2070 }
2071 FunctionVarRef = purego.NewCallback(fcb)2071 FunctionVarRef = purego.NewCallback(fcb)
2072- SaveCallback(FunctionVarPtr, FunctionVarRef)2072+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
2073 }2073 }
2074 }2074 }
2075 2075
@@ -2418,7 +2418,7 @@ func TimeoutAdd(IntervalVar uint, FunctionVar *SourceFunc, DataVar uintptr) uint
2418 return cbFn(arg0)2418 return cbFn(arg0)
2419 }2419 }
2420 FunctionVarRef = purego.NewCallback(fcb)2420 FunctionVarRef = purego.NewCallback(fcb)
2421- SaveCallback(FunctionVarPtr, FunctionVarRef)2421+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
2422 }2422 }
2423 }2423 }
2424 2424
@@ -2470,7 +2470,7 @@ func TimeoutAddFull(PriorityVar int, IntervalVar uint, FunctionVar *SourceFunc,
2470 return cbFn(arg0)2470 return cbFn(arg0)
2471 }2471 }
2472 FunctionVarRef = purego.NewCallback(fcb)2472 FunctionVarRef = purego.NewCallback(fcb)
2473- SaveCallback(FunctionVarPtr, FunctionVarRef)2473+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
2474 }2474 }
2475 }2475 }
2476 2476
@@ -2485,7 +2485,7 @@ func TimeoutAddFull(PriorityVar int, IntervalVar uint, FunctionVar *SourceFunc,
2485 cbFn(arg0)2485 cbFn(arg0)
2486 }2486 }
2487 NotifyVarRef = purego.NewCallback(fcb)2487 NotifyVarRef = purego.NewCallback(fcb)
2488- SaveCallback(NotifyVarPtr, NotifyVarRef)2488+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
2489 }2489 }
2490 }2490 }
2491 2491
@@ -2516,7 +2516,7 @@ func TimeoutAddOnce(IntervalVar uint, FunctionVar *SourceOnceFunc, DataVar uintp
2516 cbFn(arg0)2516 cbFn(arg0)
2517 }2517 }
2518 FunctionVarRef = purego.NewCallback(fcb)2518 FunctionVarRef = purego.NewCallback(fcb)
2519- SaveCallback(FunctionVarPtr, FunctionVarRef)2519+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
2520 }2520 }
2521 }2521 }
2522 2522
@@ -2563,7 +2563,7 @@ func TimeoutAddSeconds(IntervalVar uint, FunctionVar *SourceFunc, DataVar uintpt
2563 return cbFn(arg0)2563 return cbFn(arg0)
2564 }2564 }
2565 FunctionVarRef = purego.NewCallback(fcb)2565 FunctionVarRef = purego.NewCallback(fcb)
2566- SaveCallback(FunctionVarPtr, FunctionVarRef)2566+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
2567 }2567 }
2568 }2568 }
2569 2569
@@ -2627,7 +2627,7 @@ func TimeoutAddSecondsFull(PriorityVar int, IntervalVar uint, FunctionVar *Sourc
2627 return cbFn(arg0)2627 return cbFn(arg0)
2628 }2628 }
2629 FunctionVarRef = purego.NewCallback(fcb)2629 FunctionVarRef = purego.NewCallback(fcb)
2630- SaveCallback(FunctionVarPtr, FunctionVarRef)2630+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
2631 }2631 }
2632 }2632 }
2633 2633
@@ -2642,7 +2642,7 @@ func TimeoutAddSecondsFull(PriorityVar int, IntervalVar uint, FunctionVar *Sourc
2642 cbFn(arg0)2642 cbFn(arg0)
2643 }2643 }
2644 NotifyVarRef = purego.NewCallback(fcb)2644 NotifyVarRef = purego.NewCallback(fcb)
2645- SaveCallback(NotifyVarPtr, NotifyVarRef)2645+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
2646 }2646 }
2647 }2647 }
2648 2648
@@ -2668,7 +2668,7 @@ func TimeoutAddSecondsOnce(IntervalVar uint, FunctionVar *SourceOnceFunc, DataVa
2668 cbFn(arg0)2668 cbFn(arg0)
2669 }2669 }
2670 FunctionVarRef = purego.NewCallback(fcb)2670 FunctionVarRef = purego.NewCallback(fcb)
2671- SaveCallback(FunctionVarPtr, FunctionVarRef)2671+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
2672 }2672 }
2673 }2673 }
2674 2674
M v4/glib/gmarkup.go +1 -1
@@ -49,7 +49,7 @@ func NewMarkupParseContext(ParserVar *MarkupParser, FlagsVar MarkupParseFlags, U
49 cbFn(arg0)49 cbFn(arg0)
50 }50 }
51 UserDataDnotifyVarRef = purego.NewCallback(fcb)51 UserDataDnotifyVarRef = purego.NewCallback(fcb)
52- SaveCallback(UserDataDnotifyVarPtr, UserDataDnotifyVarRef)52+ SaveCallbackWithClosure(UserDataDnotifyVarPtr, UserDataDnotifyVarRef, UserDataDnotifyVar)
53 }53 }
54 }54 }
55 55
M v4/glib/gmem.go +1 -1
@@ -292,7 +292,7 @@ func ClearPointer(PpVar uintptr, DestroyVar *DestroyNotify) {
292 cbFn(arg0)292 cbFn(arg0)
293 }293 }
294 DestroyVarRef = purego.NewCallback(fcb)294 DestroyVarRef = purego.NewCallback(fcb)
295- SaveCallback(DestroyVarPtr, DestroyVarRef)295+ SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
296 }296 }
297 }297 }
298 298
M v4/glib/gmessages.go +8 -8
@@ -366,7 +366,7 @@ func LogSetDefaultHandler(LogFuncVar *LogFunc, UserDataVar uintptr) uintptr {
366 cbFn(arg0, arg1, arg2, arg3)366 cbFn(arg0, arg1, arg2, arg3)
367 }367 }
368 LogFuncVarRef = purego.NewCallback(fcb)368 LogFuncVarRef = purego.NewCallback(fcb)
369- SaveCallback(LogFuncVarPtr, LogFuncVarRef)369+ SaveCallbackWithClosure(LogFuncVarPtr, LogFuncVarRef, LogFuncVar)
370 }370 }
371 }371 }
372 372
@@ -456,7 +456,7 @@ func LogSetHandler(LogDomainVar *string, LogLevelsVar LogLevelFlags, LogFuncVar
456 cbFn(arg0, arg1, arg2, arg3)456 cbFn(arg0, arg1, arg2, arg3)
457 }457 }
458 LogFuncVarRef = purego.NewCallback(fcb)458 LogFuncVarRef = purego.NewCallback(fcb)
459- SaveCallback(LogFuncVarPtr, LogFuncVarRef)459+ SaveCallbackWithClosure(LogFuncVarPtr, LogFuncVarRef, LogFuncVar)
460 }460 }
461 }461 }
462 462
@@ -491,7 +491,7 @@ func LogSetHandlerFull(LogDomainVar *string, LogLevelsVar LogLevelFlags, LogFunc
491 cbFn(arg0, arg1, arg2, arg3)491 cbFn(arg0, arg1, arg2, arg3)
492 }492 }
493 LogFuncVarRef = purego.NewCallback(fcb)493 LogFuncVarRef = purego.NewCallback(fcb)
494- SaveCallback(LogFuncVarPtr, LogFuncVarRef)494+ SaveCallbackWithClosure(LogFuncVarPtr, LogFuncVarRef, LogFuncVar)
495 }495 }
496 }496 }
497 497
@@ -506,7 +506,7 @@ func LogSetHandlerFull(LogDomainVar *string, LogLevelsVar LogLevelFlags, LogFunc
506 cbFn(arg0)506 cbFn(arg0)
507 }507 }
508 DestroyVarRef = purego.NewCallback(fcb)508 DestroyVarRef = purego.NewCallback(fcb)
509- SaveCallback(DestroyVarPtr, DestroyVarRef)509+ SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
510 }510 }
511 }511 }
512 512
@@ -545,7 +545,7 @@ func LogSetWriterFunc(FuncVar *LogWriterFunc, UserDataVar uintptr, UserDataFreeV
545 return cbFn(arg0, arg1, arg2, arg3)545 return cbFn(arg0, arg1, arg2, arg3)
546 }546 }
547 FuncVarRef = purego.NewCallback(fcb)547 FuncVarRef = purego.NewCallback(fcb)
548- SaveCallback(FuncVarPtr, FuncVarRef)548+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
549 }549 }
550 }550 }
551 551
@@ -560,7 +560,7 @@ func LogSetWriterFunc(FuncVar *LogWriterFunc, UserDataVar uintptr, UserDataFreeV
560 cbFn(arg0)560 cbFn(arg0)
561 }561 }
562 UserDataFreeVarRef = purego.NewCallback(fcb)562 UserDataFreeVarRef = purego.NewCallback(fcb)
563- SaveCallback(UserDataFreeVarPtr, UserDataFreeVarRef)563+ SaveCallbackWithClosure(UserDataFreeVarPtr, UserDataFreeVarRef, UserDataFreeVar)
564 }564 }
565 }565 }
566 566
@@ -1085,7 +1085,7 @@ func SetPrintHandler(FuncVar *PrintFunc) uintptr {
1085 cbFn(arg0)1085 cbFn(arg0)
1086 }1086 }
1087 FuncVarRef = purego.NewCallback(fcb)1087 FuncVarRef = purego.NewCallback(fcb)
1088- SaveCallback(FuncVarPtr, FuncVarRef)1088+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
1089 }1089 }
1090 }1090 }
1091 1091
@@ -1124,7 +1124,7 @@ func SetPrinterrHandler(FuncVar *PrintFunc) uintptr {
1124 cbFn(arg0)1124 cbFn(arg0)
1125 }1125 }
1126 FuncVarRef = purego.NewCallback(fcb)1126 FuncVarRef = purego.NewCallback(fcb)
1127- SaveCallback(FuncVarPtr, FuncVarRef)1127+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
1128 }1128 }
1129 }1129 }
1130 1130
M v4/glib/gnode.go +3 -3
@@ -80,7 +80,7 @@ func (x *Node) ChildrenForeach(FlagsVar TraverseFlags, FuncVar *NodeForeachFunc,
80 cbFn(arg0, arg1)80 cbFn(arg0, arg1)
81 }81 }
82 FuncVarRef = purego.NewCallback(fcb)82 FuncVarRef = purego.NewCallback(fcb)
83- SaveCallback(FuncVarPtr, FuncVarRef)83+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
84 }84 }
85 }85 }
86 86
@@ -115,7 +115,7 @@ func (x *Node) CopyDeep(CopyFuncVar *CopyFunc, DataVar uintptr) *Node {
115 return cbFn(arg0, arg1)115 return cbFn(arg0, arg1)
116 }116 }
117 CopyFuncVarRef = purego.NewCallback(fcb)117 CopyFuncVarRef = purego.NewCallback(fcb)
118- SaveCallback(CopyFuncVarPtr, CopyFuncVarRef)118+ SaveCallbackWithClosure(CopyFuncVarPtr, CopyFuncVarRef, CopyFuncVar)
119 }119 }
120 }120 }
121 121
@@ -336,7 +336,7 @@ func (x *Node) Traverse(OrderVar TraverseType, FlagsVar TraverseFlags, MaxDepthV
336 return cbFn(arg0, arg1)336 return cbFn(arg0, arg1)
337 }337 }
338 FuncVarRef = purego.NewCallback(fcb)338 FuncVarRef = purego.NewCallback(fcb)
339- SaveCallback(FuncVarPtr, FuncVarRef)339+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
340 }340 }
341 }341 }
342 342
M v4/glib/goption.go +8 -8
@@ -347,7 +347,7 @@ func (x *OptionContext) SetTranslateFunc(FuncVar *TranslateFunc, DataVar uintptr
347 return cbFn(arg0, arg1)347 return cbFn(arg0, arg1)
348 }348 }
349 FuncVarRef = purego.NewCallback(fcb)349 FuncVarRef = purego.NewCallback(fcb)
350- SaveCallback(FuncVarPtr, FuncVarRef)350+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
351 }351 }
352 }352 }
353 353
@@ -362,7 +362,7 @@ func (x *OptionContext) SetTranslateFunc(FuncVar *TranslateFunc, DataVar uintptr
362 cbFn(arg0)362 cbFn(arg0)
363 }363 }
364 DestroyNotifyVarRef = purego.NewCallback(fcb)364 DestroyNotifyVarRef = purego.NewCallback(fcb)
365- SaveCallback(DestroyNotifyVarPtr, DestroyNotifyVarRef)365+ SaveCallbackWithClosure(DestroyNotifyVarPtr, DestroyNotifyVarRef, DestroyNotifyVar)
366 }366 }
367 }367 }
368 368
@@ -467,7 +467,7 @@ func NewOptionGroup(NameVar string, DescriptionVar string, HelpDescriptionVar st
467 cbFn(arg0)467 cbFn(arg0)
468 }468 }
469 DestroyVarRef = purego.NewCallback(fcb)469 DestroyVarRef = purego.NewCallback(fcb)
470- SaveCallback(DestroyVarPtr, DestroyVarRef)470+ SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
471 }471 }
472 }472 }
473 473
@@ -525,7 +525,7 @@ func (x *OptionGroup) SetErrorHook(ErrorFuncVar *OptionErrorFunc) {
525 cbFn(arg0, arg1, arg2, arg3)525 cbFn(arg0, arg1, arg2, arg3)
526 }526 }
527 ErrorFuncVarRef = purego.NewCallback(fcb)527 ErrorFuncVarRef = purego.NewCallback(fcb)
528- SaveCallback(ErrorFuncVarPtr, ErrorFuncVarRef)528+ SaveCallbackWithClosure(ErrorFuncVarPtr, ErrorFuncVarRef, ErrorFuncVar)
529 }529 }
530 }530 }
531 531
@@ -555,7 +555,7 @@ func (x *OptionGroup) SetParseHooks(PreParseFuncVar *OptionParseFunc, PostParseF
555 return cbFn(arg0, arg1, arg2, arg3)555 return cbFn(arg0, arg1, arg2, arg3)
556 }556 }
557 PreParseFuncVarRef = purego.NewCallback(fcb)557 PreParseFuncVarRef = purego.NewCallback(fcb)
558- SaveCallback(PreParseFuncVarPtr, PreParseFuncVarRef)558+ SaveCallbackWithClosure(PreParseFuncVarPtr, PreParseFuncVarRef, PreParseFuncVar)
559 }559 }
560 }560 }
561 561
@@ -570,7 +570,7 @@ func (x *OptionGroup) SetParseHooks(PreParseFuncVar *OptionParseFunc, PostParseF
570 return cbFn(arg0, arg1, arg2, arg3)570 return cbFn(arg0, arg1, arg2, arg3)
571 }571 }
572 PostParseFuncVarRef = purego.NewCallback(fcb)572 PostParseFuncVarRef = purego.NewCallback(fcb)
573- SaveCallback(PostParseFuncVarPtr, PostParseFuncVarRef)573+ SaveCallbackWithClosure(PostParseFuncVarPtr, PostParseFuncVarRef, PostParseFuncVar)
574 }574 }
575 }575 }
576 576
@@ -599,7 +599,7 @@ func (x *OptionGroup) SetTranslateFunc(FuncVar *TranslateFunc, DataVar uintptr,
599 return cbFn(arg0, arg1)599 return cbFn(arg0, arg1)
600 }600 }
601 FuncVarRef = purego.NewCallback(fcb)601 FuncVarRef = purego.NewCallback(fcb)
602- SaveCallback(FuncVarPtr, FuncVarRef)602+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
603 }603 }
604 }604 }
605 605
@@ -614,7 +614,7 @@ func (x *OptionGroup) SetTranslateFunc(FuncVar *TranslateFunc, DataVar uintptr,
614 cbFn(arg0)614 cbFn(arg0)
615 }615 }
616 DestroyNotifyVarRef = purego.NewCallback(fcb)616 DestroyNotifyVarRef = purego.NewCallback(fcb)
617- SaveCallback(DestroyNotifyVarPtr, DestroyNotifyVarRef)617+ SaveCallbackWithClosure(DestroyNotifyVarPtr, DestroyNotifyVarRef, DestroyNotifyVar)
618 }618 }
619 }619 }
620 620
M v4/glib/gqsort.go +2 -2
@@ -28,7 +28,7 @@ func QsortWithData(PbaseVar uintptr, TotalElemsVar int, SizeVar uint, CompareFun
28 return cbFn(arg0, arg1, arg2)28 return cbFn(arg0, arg1, arg2)
29 }29 }
30 CompareFuncVarRef = purego.NewCallback(fcb)30 CompareFuncVarRef = purego.NewCallback(fcb)
31- SaveCallback(CompareFuncVarPtr, CompareFuncVarRef)31+ SaveCallbackWithClosure(CompareFuncVarPtr, CompareFuncVarRef, CompareFuncVar)
32 }32 }
33 }33 }
34 34
@@ -56,7 +56,7 @@ func SortArray(ArrayVar []uintptr, NElementsVar uint, ElementSizeVar uint, Compa
56 return cbFn(arg0, arg1, arg2)56 return cbFn(arg0, arg1, arg2)
57 }57 }
58 CompareFuncVarRef = purego.NewCallback(fcb)58 CompareFuncVarRef = purego.NewCallback(fcb)
59- SaveCallback(CompareFuncVarPtr, CompareFuncVarRef)59+ SaveCallbackWithClosure(CompareFuncVarPtr, CompareFuncVarRef, CompareFuncVar)
60 }60 }
61 }61 }
62 62
M v4/glib/gqueue.go +6 -6
@@ -52,7 +52,7 @@ func (x *Queue) ClearFull(FreeFuncVar *DestroyNotify) {
52 cbFn(arg0)52 cbFn(arg0)
53 }53 }
54 FreeFuncVarRef = purego.NewCallback(fcb)54 FreeFuncVarRef = purego.NewCallback(fcb)
55- SaveCallback(FreeFuncVarPtr, FreeFuncVarRef)55+ SaveCallbackWithClosure(FreeFuncVarPtr, FreeFuncVarRef, FreeFuncVar)
56 }56 }
57 }57 }
58 58
@@ -113,7 +113,7 @@ func (x *Queue) FindCustom(DataVar uintptr, FuncVar *CompareFunc) *List {
113 return cbFn(arg0, arg1)113 return cbFn(arg0, arg1)
114 }114 }
115 FuncVarRef = purego.NewCallback(fcb)115 FuncVarRef = purego.NewCallback(fcb)
116- SaveCallback(FuncVarPtr, FuncVarRef)116+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
117 }117 }
118 }118 }
119 119
@@ -142,7 +142,7 @@ func (x *Queue) Foreach(FuncVar *Func, UserDataVar uintptr) {
142 cbFn(arg0, arg1)142 cbFn(arg0, arg1)
143 }143 }
144 FuncVarRef = purego.NewCallback(fcb)144 FuncVarRef = purego.NewCallback(fcb)
145- SaveCallback(FuncVarPtr, FuncVarRef)145+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
146 }146 }
147 }147 }
148 148
@@ -184,7 +184,7 @@ func (x *Queue) FreeFull(FreeFuncVar *DestroyNotify) {
184 cbFn(arg0)184 cbFn(arg0)
185 }185 }
186 FreeFuncVarRef = purego.NewCallback(fcb)186 FreeFuncVarRef = purego.NewCallback(fcb)
187- SaveCallback(FreeFuncVarPtr, FreeFuncVarRef)187+ SaveCallbackWithClosure(FreeFuncVarPtr, FreeFuncVarRef, FreeFuncVar)
188 }188 }
189 }189 }
190 190
@@ -286,7 +286,7 @@ func (x *Queue) InsertSorted(DataVar uintptr, FuncVar *CompareDataFunc, UserData
286 return cbFn(arg0, arg1, arg2)286 return cbFn(arg0, arg1, arg2)
287 }287 }
288 FuncVarRef = purego.NewCallback(fcb)288 FuncVarRef = purego.NewCallback(fcb)
289- SaveCallback(FuncVarPtr, FuncVarRef)289+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
290 }290 }
291 }291 }
292 292
@@ -533,7 +533,7 @@ func (x *Queue) Sort(CompareFuncVar *CompareDataFunc, UserDataVar uintptr) {
533 return cbFn(arg0, arg1, arg2)533 return cbFn(arg0, arg1, arg2)
534 }534 }
535 CompareFuncVarRef = purego.NewCallback(fcb)535 CompareFuncVarRef = purego.NewCallback(fcb)
536- SaveCallback(CompareFuncVarPtr, CompareFuncVarRef)536+ SaveCallbackWithClosure(CompareFuncVarPtr, CompareFuncVarRef, CompareFuncVar)
537 }537 }
538 }538 }
539 539
M v4/glib/grcbox.go +2 -2
@@ -113,7 +113,7 @@ func AtomicRcBoxReleaseFull(MemBlockVar uintptr, ClearFuncVar *DestroyNotify) {
113 cbFn(arg0)113 cbFn(arg0)
114 }114 }
115 ClearFuncVarRef = purego.NewCallback(fcb)115 ClearFuncVarRef = purego.NewCallback(fcb)
116- SaveCallback(ClearFuncVarPtr, ClearFuncVarRef)116+ SaveCallbackWithClosure(ClearFuncVarPtr, ClearFuncVarRef, ClearFuncVar)
117 }117 }
118 }118 }
119 119
@@ -221,7 +221,7 @@ func RcBoxReleaseFull(MemBlockVar uintptr, ClearFuncVar *DestroyNotify) {
221 cbFn(arg0)221 cbFn(arg0)
222 }222 }
223 ClearFuncVarRef = purego.NewCallback(fcb)223 ClearFuncVarRef = purego.NewCallback(fcb)
224- SaveCallback(ClearFuncVarPtr, ClearFuncVarRef)224+ SaveCallbackWithClosure(ClearFuncVarPtr, ClearFuncVarRef, ClearFuncVar)
225 }225 }
226 }226 }
227 227
M v4/glib/gregex.go +1 -1
@@ -1067,7 +1067,7 @@ func (x *Regex) ReplaceEval(StringVar []string, StringLenVar int, StartPositionV
1067 return cbFn(arg0, arg1, arg2)1067 return cbFn(arg0, arg1, arg2)
1068 }1068 }
1069 EvalVarRef = purego.NewCallback(fcb)1069 EvalVarRef = purego.NewCallback(fcb)
1070- SaveCallback(EvalVarPtr, EvalVarRef)1070+ SaveCallbackWithClosure(EvalVarPtr, EvalVarRef, EvalVar)
1071 }1071 }
1072 }1072 }
1073 1073
M v4/glib/grel.go +2 -2
@@ -118,7 +118,7 @@ func (x *Relation) Index(FieldVar int, HashFuncVar *HashFunc, KeyEqualFuncVar *E
118 return cbFn(arg0)118 return cbFn(arg0)
119 }119 }
120 HashFuncVarRef = purego.NewCallback(fcb)120 HashFuncVarRef = purego.NewCallback(fcb)
121- SaveCallback(HashFuncVarPtr, HashFuncVarRef)121+ SaveCallbackWithClosure(HashFuncVarPtr, HashFuncVarRef, HashFuncVar)
122 }122 }
123 }123 }
124 124
@@ -133,7 +133,7 @@ func (x *Relation) Index(FieldVar int, HashFuncVar *HashFunc, KeyEqualFuncVar *E
133 return cbFn(arg0, arg1)133 return cbFn(arg0, arg1)
134 }134 }
135 KeyEqualFuncVarRef = purego.NewCallback(fcb)135 KeyEqualFuncVarRef = purego.NewCallback(fcb)
136- SaveCallback(KeyEqualFuncVarPtr, KeyEqualFuncVarRef)136+ SaveCallbackWithClosure(KeyEqualFuncVarPtr, KeyEqualFuncVarRef, KeyEqualFuncVar)
137 }137 }
138 }138 }
139 139
M v4/glib/gscanner.go +1 -1
@@ -242,7 +242,7 @@ func (x *Scanner) ScopeForeachSymbol(ScopeIdVar uint, FuncVar *HFunc, UserDataVa
242 cbFn(arg0, arg1, arg2)242 cbFn(arg0, arg1, arg2)
243 }243 }
244 FuncVarRef = purego.NewCallback(fcb)244 FuncVarRef = purego.NewCallback(fcb)
245- SaveCallback(FuncVarPtr, FuncVarRef)245+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
246 }246 }
247 }247 }
248 248
M v4/glib/gsequence.go +12 -12
@@ -51,7 +51,7 @@ func (x *Sequence) Foreach(FuncVar *Func, UserDataVar uintptr) {
51 cbFn(arg0, arg1)51 cbFn(arg0, arg1)
52 }52 }
53 FuncVarRef = purego.NewCallback(fcb)53 FuncVarRef = purego.NewCallback(fcb)
54- SaveCallback(FuncVarPtr, FuncVarRef)54+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
55 }55 }
56 }56 }
57 57
@@ -140,7 +140,7 @@ func (x *Sequence) InsertSorted(DataVar uintptr, CmpFuncVar *CompareDataFunc, Cm
140 return cbFn(arg0, arg1, arg2)140 return cbFn(arg0, arg1, arg2)
141 }141 }
142 CmpFuncVarRef = purego.NewCallback(fcb)142 CmpFuncVarRef = purego.NewCallback(fcb)
143- SaveCallback(CmpFuncVarPtr, CmpFuncVarRef)143+ SaveCallbackWithClosure(CmpFuncVarPtr, CmpFuncVarRef, CmpFuncVar)
144 }144 }
145 }145 }
146 146
@@ -176,7 +176,7 @@ func (x *Sequence) InsertSortedIter(DataVar uintptr, IterCmpVar *SequenceIterCom
176 return cbFn(arg0, arg1, arg2)176 return cbFn(arg0, arg1, arg2)
177 }177 }
178 IterCmpVarRef = purego.NewCallback(fcb)178 IterCmpVarRef = purego.NewCallback(fcb)
179- SaveCallback(IterCmpVarPtr, IterCmpVarRef)179+ SaveCallbackWithClosure(IterCmpVarPtr, IterCmpVarRef, IterCmpVar)
180 }180 }
181 }181 }
182 182
@@ -227,7 +227,7 @@ func (x *Sequence) Lookup(DataVar uintptr, CmpFuncVar *CompareDataFunc, CmpDataV
227 return cbFn(arg0, arg1, arg2)227 return cbFn(arg0, arg1, arg2)
228 }228 }
229 CmpFuncVarRef = purego.NewCallback(fcb)229 CmpFuncVarRef = purego.NewCallback(fcb)
230- SaveCallback(CmpFuncVarPtr, CmpFuncVarRef)230+ SaveCallbackWithClosure(CmpFuncVarPtr, CmpFuncVarRef, CmpFuncVar)
231 }231 }
232 }232 }
233 233
@@ -261,7 +261,7 @@ func (x *Sequence) LookupIter(DataVar uintptr, IterCmpVar *SequenceIterCompareFu
261 return cbFn(arg0, arg1, arg2)261 return cbFn(arg0, arg1, arg2)
262 }262 }
263 IterCmpVarRef = purego.NewCallback(fcb)263 IterCmpVarRef = purego.NewCallback(fcb)
264- SaveCallback(IterCmpVarPtr, IterCmpVarRef)264+ SaveCallbackWithClosure(IterCmpVarPtr, IterCmpVarRef, IterCmpVar)
265 }265 }
266 }266 }
267 267
@@ -308,7 +308,7 @@ func (x *Sequence) Search(DataVar uintptr, CmpFuncVar *CompareDataFunc, CmpDataV
308 return cbFn(arg0, arg1, arg2)308 return cbFn(arg0, arg1, arg2)
309 }309 }
310 CmpFuncVarRef = purego.NewCallback(fcb)310 CmpFuncVarRef = purego.NewCallback(fcb)
311- SaveCallback(CmpFuncVarPtr, CmpFuncVarRef)311+ SaveCallbackWithClosure(CmpFuncVarPtr, CmpFuncVarRef, CmpFuncVar)
312 }312 }
313 }313 }
314 314
@@ -345,7 +345,7 @@ func (x *Sequence) SearchIter(DataVar uintptr, IterCmpVar *SequenceIterCompareFu
345 return cbFn(arg0, arg1, arg2)345 return cbFn(arg0, arg1, arg2)
346 }346 }
347 IterCmpVarRef = purego.NewCallback(fcb)347 IterCmpVarRef = purego.NewCallback(fcb)
348- SaveCallback(IterCmpVarPtr, IterCmpVarRef)348+ SaveCallbackWithClosure(IterCmpVarPtr, IterCmpVarRef, IterCmpVar)
349 }349 }
350 }350 }
351 351
@@ -375,7 +375,7 @@ func (x *Sequence) Sort(CmpFuncVar *CompareDataFunc, CmpDataVar uintptr) {
375 return cbFn(arg0, arg1, arg2)375 return cbFn(arg0, arg1, arg2)
376 }376 }
377 CmpFuncVarRef = purego.NewCallback(fcb)377 CmpFuncVarRef = purego.NewCallback(fcb)
378- SaveCallback(CmpFuncVarPtr, CmpFuncVarRef)378+ SaveCallbackWithClosure(CmpFuncVarPtr, CmpFuncVarRef, CmpFuncVar)
379 }379 }
380 }380 }
381 381
@@ -405,7 +405,7 @@ func (x *Sequence) SortIter(CmpFuncVar *SequenceIterCompareFunc, CmpDataVar uint
405 return cbFn(arg0, arg1, arg2)405 return cbFn(arg0, arg1, arg2)
406 }406 }
407 CmpFuncVarRef = purego.NewCallback(fcb)407 CmpFuncVarRef = purego.NewCallback(fcb)
408- SaveCallback(CmpFuncVarPtr, CmpFuncVarRef)408+ SaveCallbackWithClosure(CmpFuncVarPtr, CmpFuncVarRef, CmpFuncVar)
409 }409 }
410 }410 }
411 411
@@ -529,7 +529,7 @@ func SequenceForeachRange(BeginVar *SequenceIter, EndVar *SequenceIter, FuncVar
529 cbFn(arg0, arg1)529 cbFn(arg0, arg1)
530 }530 }
531 FuncVarRef = purego.NewCallback(fcb)531 FuncVarRef = purego.NewCallback(fcb)
532- SaveCallback(FuncVarPtr, FuncVarRef)532+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
533 }533 }
534 }534 }
535 535
@@ -661,7 +661,7 @@ func SequenceSortChanged(IterVar *SequenceIter, CmpFuncVar *CompareDataFunc, Cmp
661 return cbFn(arg0, arg1, arg2)661 return cbFn(arg0, arg1, arg2)
662 }662 }
663 CmpFuncVarRef = purego.NewCallback(fcb)663 CmpFuncVarRef = purego.NewCallback(fcb)
664- SaveCallback(CmpFuncVarPtr, CmpFuncVarRef)664+ SaveCallbackWithClosure(CmpFuncVarPtr, CmpFuncVarRef, CmpFuncVar)
665 }665 }
666 }666 }
667 667
@@ -693,7 +693,7 @@ func SequenceSortChangedIter(IterVar *SequenceIter, IterCmpVar *SequenceIterComp
693 return cbFn(arg0, arg1, arg2)693 return cbFn(arg0, arg1, arg2)
694 }694 }
695 IterCmpVarRef = purego.NewCallback(fcb)695 IterCmpVarRef = purego.NewCallback(fcb)
696- SaveCallback(IterCmpVarPtr, IterCmpVarRef)696+ SaveCallbackWithClosure(IterCmpVarPtr, IterCmpVarRef, IterCmpVar)
697 }697 }
698 }698 }
699 699
M v4/glib/gslist.go +1 -1
@@ -41,7 +41,7 @@ func ClearSlist(SlistPtrVar **SList, DestroyVar *DestroyNotify) {
41 cbFn(arg0)41 cbFn(arg0)
42 }42 }
43 DestroyVarRef = purego.NewCallback(fcb)43 DestroyVarRef = purego.NewCallback(fcb)
44- SaveCallback(DestroyVarPtr, DestroyVarRef)44+ SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
45 }45 }
46 }46 }
47 47
M v4/glib/gspawn.go +5 -5
@@ -170,7 +170,7 @@ func SpawnAsync(WorkingDirectoryVar *string, ArgvVar []string, EnvpVar []string,
170 cbFn(arg0)170 cbFn(arg0)
171 }171 }
172 ChildSetupVarRef = purego.NewCallback(fcb)172 ChildSetupVarRef = purego.NewCallback(fcb)
173- SaveCallback(ChildSetupVarPtr, ChildSetupVarRef)173+ SaveCallbackWithClosure(ChildSetupVarPtr, ChildSetupVarRef, ChildSetupVar)
174 }174 }
175 }175 }
176 176
@@ -207,7 +207,7 @@ func SpawnAsyncWithFds(WorkingDirectoryVar *string, ArgvVar []string, EnvpVar []
207 cbFn(arg0)207 cbFn(arg0)
208 }208 }
209 ChildSetupVarRef = purego.NewCallback(fcb)209 ChildSetupVarRef = purego.NewCallback(fcb)
210- SaveCallback(ChildSetupVarPtr, ChildSetupVarRef)210+ SaveCallbackWithClosure(ChildSetupVarPtr, ChildSetupVarRef, ChildSetupVar)
211 }211 }
212 }212 }
213 213
@@ -242,7 +242,7 @@ func SpawnAsyncWithPipes(WorkingDirectoryVar *string, ArgvVar []string, EnvpVar
242 cbFn(arg0)242 cbFn(arg0)
243 }243 }
244 ChildSetupVarRef = purego.NewCallback(fcb)244 ChildSetupVarRef = purego.NewCallback(fcb)
245- SaveCallback(ChildSetupVarPtr, ChildSetupVarRef)245+ SaveCallbackWithClosure(ChildSetupVarPtr, ChildSetupVarRef, ChildSetupVar)
246 }246 }
247 }247 }
248 248
@@ -469,7 +469,7 @@ func SpawnAsyncWithPipesAndFds(WorkingDirectoryVar *string, ArgvVar []string, En
469 cbFn(arg0)469 cbFn(arg0)
470 }470 }
471 ChildSetupVarRef = purego.NewCallback(fcb)471 ChildSetupVarRef = purego.NewCallback(fcb)
472- SaveCallback(ChildSetupVarPtr, ChildSetupVarRef)472+ SaveCallbackWithClosure(ChildSetupVarPtr, ChildSetupVarRef, ChildSetupVar)
473 }473 }
474 }474 }
475 475
@@ -679,7 +679,7 @@ func SpawnSync(WorkingDirectoryVar *string, ArgvVar []string, EnvpVar []string,
679 cbFn(arg0)679 cbFn(arg0)
680 }680 }
681 ChildSetupVarRef = purego.NewCallback(fcb)681 ChildSetupVarRef = purego.NewCallback(fcb)
682- SaveCallback(ChildSetupVarPtr, ChildSetupVarRef)682+ SaveCallbackWithClosure(ChildSetupVarPtr, ChildSetupVarRef, ChildSetupVar)
683 }683 }
684 }684 }
685 685
M v4/glib/gtestutils.go +12 -12
@@ -450,7 +450,7 @@ func TestAddDataFunc(TestpathVar string, TestDataVar uintptr, TestFuncVar *TestD
450 cbFn(arg0)450 cbFn(arg0)
451 }451 }
452 TestFuncVarRef = purego.NewCallback(fcb)452 TestFuncVarRef = purego.NewCallback(fcb)
453- SaveCallback(TestFuncVarPtr, TestFuncVarRef)453+ SaveCallbackWithClosure(TestFuncVarPtr, TestFuncVarRef, TestFuncVar)
454 }454 }
455 }455 }
456 456
@@ -477,7 +477,7 @@ func TestAddDataFuncFull(TestpathVar string, TestDataVar uintptr, TestFuncVar *T
477 cbFn(arg0)477 cbFn(arg0)
478 }478 }
479 TestFuncVarRef = purego.NewCallback(fcb)479 TestFuncVarRef = purego.NewCallback(fcb)
480- SaveCallback(TestFuncVarPtr, TestFuncVarRef)480+ SaveCallbackWithClosure(TestFuncVarPtr, TestFuncVarRef, TestFuncVar)
481 }481 }
482 }482 }
483 483
@@ -492,7 +492,7 @@ func TestAddDataFuncFull(TestpathVar string, TestDataVar uintptr, TestFuncVar *T
492 cbFn(arg0)492 cbFn(arg0)
493 }493 }
494 DataFreeFuncVarRef = purego.NewCallback(fcb)494 DataFreeFuncVarRef = purego.NewCallback(fcb)
495- SaveCallback(DataFreeFuncVarPtr, DataFreeFuncVarRef)495+ SaveCallbackWithClosure(DataFreeFuncVarPtr, DataFreeFuncVarRef, DataFreeFuncVar)
496 }496 }
497 }497 }
498 498
@@ -529,7 +529,7 @@ func TestAddFunc(TestpathVar string, TestFuncVar *TestFunc) {
529 cbFn()529 cbFn()
530 }530 }
531 TestFuncVarRef = purego.NewCallback(fcb)531 TestFuncVarRef = purego.NewCallback(fcb)
532- SaveCallback(TestFuncVarPtr, TestFuncVarRef)532+ SaveCallbackWithClosure(TestFuncVarPtr, TestFuncVarRef, TestFuncVar)
533 }533 }
534 }534 }
535 535
@@ -552,7 +552,7 @@ func TestAddVtable(TestpathVar string, DataSizeVar uint, TestDataVar uintptr, Da
552 cbFn(arg0, arg1)552 cbFn(arg0, arg1)
553 }553 }
554 DataSetupVarRef = purego.NewCallback(fcb)554 DataSetupVarRef = purego.NewCallback(fcb)
555- SaveCallback(DataSetupVarPtr, DataSetupVarRef)555+ SaveCallbackWithClosure(DataSetupVarPtr, DataSetupVarRef, DataSetupVar)
556 }556 }
557 }557 }
558 558
@@ -567,7 +567,7 @@ func TestAddVtable(TestpathVar string, DataSizeVar uint, TestDataVar uintptr, Da
567 cbFn(arg0, arg1)567 cbFn(arg0, arg1)
568 }568 }
569 DataTestVarRef = purego.NewCallback(fcb)569 DataTestVarRef = purego.NewCallback(fcb)
570- SaveCallback(DataTestVarPtr, DataTestVarRef)570+ SaveCallbackWithClosure(DataTestVarPtr, DataTestVarRef, DataTestVar)
571 }571 }
572 }572 }
573 573
@@ -582,7 +582,7 @@ func TestAddVtable(TestpathVar string, DataSizeVar uint, TestDataVar uintptr, Da
582 cbFn(arg0, arg1)582 cbFn(arg0, arg1)
583 }583 }
584 DataTeardownVarRef = purego.NewCallback(fcb)584 DataTeardownVarRef = purego.NewCallback(fcb)
585- SaveCallback(DataTeardownVarPtr, DataTeardownVarRef)585+ SaveCallbackWithClosure(DataTeardownVarPtr, DataTeardownVarRef, DataTeardownVar)
586 }586 }
587 }587 }
588 588
@@ -702,7 +702,7 @@ func TestCreateCase(TestNameVar string, DataSizeVar uint, TestDataVar uintptr, D
702 cbFn(arg0, arg1)702 cbFn(arg0, arg1)
703 }703 }
704 DataSetupVarRef = purego.NewCallback(fcb)704 DataSetupVarRef = purego.NewCallback(fcb)
705- SaveCallback(DataSetupVarPtr, DataSetupVarRef)705+ SaveCallbackWithClosure(DataSetupVarPtr, DataSetupVarRef, DataSetupVar)
706 }706 }
707 }707 }
708 708
@@ -717,7 +717,7 @@ func TestCreateCase(TestNameVar string, DataSizeVar uint, TestDataVar uintptr, D
717 cbFn(arg0, arg1)717 cbFn(arg0, arg1)
718 }718 }
719 DataTestVarRef = purego.NewCallback(fcb)719 DataTestVarRef = purego.NewCallback(fcb)
720- SaveCallback(DataTestVarPtr, DataTestVarRef)720+ SaveCallbackWithClosure(DataTestVarPtr, DataTestVarRef, DataTestVar)
721 }721 }
722 }722 }
723 723
@@ -732,7 +732,7 @@ func TestCreateCase(TestNameVar string, DataSizeVar uint, TestDataVar uintptr, D
732 cbFn(arg0, arg1)732 cbFn(arg0, arg1)
733 }733 }
734 DataTeardownVarRef = purego.NewCallback(fcb)734 DataTeardownVarRef = purego.NewCallback(fcb)
735- SaveCallback(DataTeardownVarPtr, DataTeardownVarRef)735+ SaveCallbackWithClosure(DataTeardownVarPtr, DataTeardownVarRef, DataTeardownVar)
736 }736 }
737 }737 }
738 738
@@ -1075,7 +1075,7 @@ func TestLogSetFatalHandler(LogFuncVar *TestLogFatalFunc, UserDataVar uintptr) {
1075 return cbFn(arg0, arg1, arg2, arg3)1075 return cbFn(arg0, arg1, arg2, arg3)
1076 }1076 }
1077 LogFuncVarRef = purego.NewCallback(fcb)1077 LogFuncVarRef = purego.NewCallback(fcb)
1078- SaveCallback(LogFuncVarPtr, LogFuncVarRef)1078+ SaveCallbackWithClosure(LogFuncVarPtr, LogFuncVarRef, LogFuncVar)
1079 }1079 }
1080 }1080 }
1081 1081
@@ -1151,7 +1151,7 @@ func TestQueueDestroy(DestroyFuncVar *DestroyNotify, DestroyDataVar uintptr) {
1151 cbFn(arg0)1151 cbFn(arg0)
1152 }1152 }
1153 DestroyFuncVarRef = purego.NewCallback(fcb)1153 DestroyFuncVarRef = purego.NewCallback(fcb)
1154- SaveCallback(DestroyFuncVarPtr, DestroyFuncVarRef)1154+ SaveCallbackWithClosure(DestroyFuncVarPtr, DestroyFuncVarRef, DestroyFuncVar)
1155 }1155 }
1156 }1156 }
1157 1157
M v4/glib/gthread.go +8 -8
@@ -295,7 +295,7 @@ func (x *Once) Impl(FuncVar *ThreadFunc, ArgVar uintptr) uintptr {
295 return cbFn(arg0)295 return cbFn(arg0)
296 }296 }
297 FuncVarRef = purego.NewCallback(fcb)297 FuncVarRef = purego.NewCallback(fcb)
298- SaveCallback(FuncVarPtr, FuncVarRef)298+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
299 }299 }
300 }300 }
301 301
@@ -895,7 +895,7 @@ func (x *StaticPrivate) Set(DataVar uintptr, NotifyVar *DestroyNotify) {
895 cbFn(arg0)895 cbFn(arg0)
896 }896 }
897 NotifyVarRef = purego.NewCallback(fcb)897 NotifyVarRef = purego.NewCallback(fcb)
898- SaveCallback(NotifyVarPtr, NotifyVarRef)898+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
899 }899 }
900 }900 }
901 901
@@ -1305,7 +1305,7 @@ func NewThread(NameVar *string, FuncVar *ThreadFunc, DataVar uintptr) *Thread {
1305 return cbFn(arg0)1305 return cbFn(arg0)
1306 }1306 }
1307 FuncVarRef = purego.NewCallback(fcb)1307 FuncVarRef = purego.NewCallback(fcb)
1308- SaveCallback(FuncVarPtr, FuncVarRef)1308+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
1309 }1309 }
1310 }1310 }
1311 1311
@@ -1339,7 +1339,7 @@ func ThreadTryNew(NameVar *string, FuncVar *ThreadFunc, DataVar uintptr) (*Threa
1339 return cbFn(arg0)1339 return cbFn(arg0)
1340 }1340 }
1341 FuncVarRef = purego.NewCallback(fcb)1341 FuncVarRef = purego.NewCallback(fcb)
1342- SaveCallback(FuncVarPtr, FuncVarRef)1342+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
1343 }1343 }
1344 }1344 }
1345 1345
@@ -2264,7 +2264,7 @@ func PrivateNew(NotifyVar *DestroyNotify) *Private {
2264 cbFn(arg0)2264 cbFn(arg0)
2265 }2265 }
2266 NotifyVarRef = purego.NewCallback(fcb)2266 NotifyVarRef = purego.NewCallback(fcb)
2267- SaveCallback(NotifyVarPtr, NotifyVarRef)2267+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
2268 }2268 }
2269 }2269 }
2270 2270
@@ -2301,7 +2301,7 @@ func ThreadCreate(FuncVar *ThreadFunc, DataVar uintptr, JoinableVar bool) (*Thre
2301 return cbFn(arg0)2301 return cbFn(arg0)
2302 }2302 }
2303 FuncVarRef = purego.NewCallback(fcb)2303 FuncVarRef = purego.NewCallback(fcb)
2304- SaveCallback(FuncVarPtr, FuncVarRef)2304+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
2305 }2305 }
2306 }2306 }
2307 2307
@@ -2331,7 +2331,7 @@ func ThreadCreateFull(FuncVar *ThreadFunc, DataVar uintptr, StackSizeVar uint32,
2331 return cbFn(arg0)2331 return cbFn(arg0)
2332 }2332 }
2333 FuncVarRef = purego.NewCallback(fcb)2333 FuncVarRef = purego.NewCallback(fcb)
2334- SaveCallback(FuncVarPtr, FuncVarRef)2334+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
2335 }2335 }
2336 }2336 }
2337 2337
@@ -2391,7 +2391,7 @@ func ThreadForeach(ThreadFuncVar *Func, UserDataVar uintptr) {
2391 cbFn(arg0, arg1)2391 cbFn(arg0, arg1)
2392 }2392 }
2393 ThreadFuncVarRef = purego.NewCallback(fcb)2393 ThreadFuncVarRef = purego.NewCallback(fcb)
2394- SaveCallback(ThreadFuncVarPtr, ThreadFuncVarRef)2394+ SaveCallbackWithClosure(ThreadFuncVarPtr, ThreadFuncVarRef, ThreadFuncVar)
2395 }2395 }
2396 }2396 }
2397 2397
M v4/glib/gthreadpool.go +1 -1
@@ -188,7 +188,7 @@ func (x *ThreadPool) SetSortFunction(FuncVar *CompareDataFunc, UserDataVar uintp
188 return cbFn(arg0, arg1, arg2)188 return cbFn(arg0, arg1, arg2)
189 }189 }
190 FuncVarRef = purego.NewCallback(fcb)190 FuncVarRef = purego.NewCallback(fcb)
191- SaveCallback(FuncVarPtr, FuncVarRef)191+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
192 }192 }
193 }193 }
194 194
M v4/glib/gtree.go +10 -10
@@ -55,7 +55,7 @@ func NewTree(KeyCompareFuncVar *CompareFunc) *Tree {
55 return cbFn(arg0, arg1)55 return cbFn(arg0, arg1)
56 }56 }
57 KeyCompareFuncVarRef = purego.NewCallback(fcb)57 KeyCompareFuncVarRef = purego.NewCallback(fcb)
58- SaveCallback(KeyCompareFuncVarPtr, KeyCompareFuncVarRef)58+ SaveCallbackWithClosure(KeyCompareFuncVarPtr, KeyCompareFuncVarRef, KeyCompareFuncVar)
59 }59 }
60 }60 }
61 61
@@ -82,7 +82,7 @@ func NewTreeFull(KeyCompareFuncVar *CompareDataFunc, KeyCompareDataVar uintptr,
82 return cbFn(arg0, arg1, arg2)82 return cbFn(arg0, arg1, arg2)
83 }83 }
84 KeyCompareFuncVarRef = purego.NewCallback(fcb)84 KeyCompareFuncVarRef = purego.NewCallback(fcb)
85- SaveCallback(KeyCompareFuncVarPtr, KeyCompareFuncVarRef)85+ SaveCallbackWithClosure(KeyCompareFuncVarPtr, KeyCompareFuncVarRef, KeyCompareFuncVar)
86 }86 }
87 }87 }
88 88
@@ -97,7 +97,7 @@ func NewTreeFull(KeyCompareFuncVar *CompareDataFunc, KeyCompareDataVar uintptr,
97 cbFn(arg0)97 cbFn(arg0)
98 }98 }
99 KeyDestroyFuncVarRef = purego.NewCallback(fcb)99 KeyDestroyFuncVarRef = purego.NewCallback(fcb)
100- SaveCallback(KeyDestroyFuncVarPtr, KeyDestroyFuncVarRef)100+ SaveCallbackWithClosure(KeyDestroyFuncVarPtr, KeyDestroyFuncVarRef, KeyDestroyFuncVar)
101 }101 }
102 }102 }
103 103
@@ -112,7 +112,7 @@ func NewTreeFull(KeyCompareFuncVar *CompareDataFunc, KeyCompareDataVar uintptr,
112 cbFn(arg0)112 cbFn(arg0)
113 }113 }
114 ValueDestroyFuncVarRef = purego.NewCallback(fcb)114 ValueDestroyFuncVarRef = purego.NewCallback(fcb)
115- SaveCallback(ValueDestroyFuncVarPtr, ValueDestroyFuncVarRef)115+ SaveCallbackWithClosure(ValueDestroyFuncVarPtr, ValueDestroyFuncVarRef, ValueDestroyFuncVar)
116 }116 }
117 }117 }
118 118
@@ -138,7 +138,7 @@ func NewTreeWithData(KeyCompareFuncVar *CompareDataFunc, KeyCompareDataVar uintp
138 return cbFn(arg0, arg1, arg2)138 return cbFn(arg0, arg1, arg2)
139 }139 }
140 KeyCompareFuncVarRef = purego.NewCallback(fcb)140 KeyCompareFuncVarRef = purego.NewCallback(fcb)
141- SaveCallback(KeyCompareFuncVarPtr, KeyCompareFuncVarRef)141+ SaveCallbackWithClosure(KeyCompareFuncVarPtr, KeyCompareFuncVarRef, KeyCompareFuncVar)
142 }142 }
143 }143 }
144 144
@@ -184,7 +184,7 @@ func (x *Tree) Foreach(FuncVar *TraverseFunc, UserDataVar uintptr) {
184 return cbFn(arg0, arg1, arg2)184 return cbFn(arg0, arg1, arg2)
185 }185 }
186 FuncVarRef = purego.NewCallback(fcb)186 FuncVarRef = purego.NewCallback(fcb)
187- SaveCallback(FuncVarPtr, FuncVarRef)187+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
188 }188 }
189 }189 }
190 190
@@ -215,7 +215,7 @@ func (x *Tree) ForeachNode(FuncVar *TraverseNodeFunc, UserDataVar uintptr) {
215 return cbFn(arg0, arg1)215 return cbFn(arg0, arg1)
216 }216 }
217 FuncVarRef = purego.NewCallback(fcb)217 FuncVarRef = purego.NewCallback(fcb)
218- SaveCallback(FuncVarPtr, FuncVarRef)218+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
219 }219 }
220 }220 }
221 221
@@ -448,7 +448,7 @@ func (x *Tree) Search(SearchFuncVar *CompareFunc, UserDataVar uintptr) uintptr {
448 return cbFn(arg0, arg1)448 return cbFn(arg0, arg1)
449 }449 }
450 SearchFuncVarRef = purego.NewCallback(fcb)450 SearchFuncVarRef = purego.NewCallback(fcb)
451- SaveCallback(SearchFuncVarPtr, SearchFuncVarRef)451+ SaveCallbackWithClosure(SearchFuncVarPtr, SearchFuncVarRef, SearchFuncVar)
452 }452 }
453 }453 }
454 454
@@ -481,7 +481,7 @@ func (x *Tree) SearchNode(SearchFuncVar *CompareFunc, UserDataVar uintptr) *Tree
481 return cbFn(arg0, arg1)481 return cbFn(arg0, arg1)
482 }482 }
483 SearchFuncVarRef = purego.NewCallback(fcb)483 SearchFuncVarRef = purego.NewCallback(fcb)
484- SaveCallback(SearchFuncVarPtr, SearchFuncVarRef)484+ SaveCallbackWithClosure(SearchFuncVarPtr, SearchFuncVarRef, SearchFuncVar)
485 }485 }
486 }486 }
487 487
@@ -519,7 +519,7 @@ func (x *Tree) Traverse(TraverseFuncVar *TraverseFunc, TraverseTypeVar TraverseT
519 return cbFn(arg0, arg1, arg2)519 return cbFn(arg0, arg1, arg2)
520 }520 }
521 TraverseFuncVarRef = purego.NewCallback(fcb)521 TraverseFuncVarRef = purego.NewCallback(fcb)
522- SaveCallback(TraverseFuncVarPtr, TraverseFuncVarRef)522+ SaveCallbackWithClosure(TraverseFuncVarPtr, TraverseFuncVarRef, TraverseFuncVar)
523 }523 }
524 }524 }
525 525
M v4/glib/gutils.go +1 -1
@@ -133,7 +133,7 @@ func Atexit(FuncVar *VoidFunc) {
133 cbFn()133 cbFn()
134 }134 }
135 FuncVarRef = purego.NewCallback(fcb)135 FuncVarRef = purego.NewCallback(fcb)
136- SaveCallback(FuncVarPtr, FuncVarRef)136+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
137 }137 }
138 }138 }
139 139
M v4/glib/gvariant.go +1 -1
@@ -488,7 +488,7 @@ func NewVariantFromData(TypeVar *VariantType, DataVar []byte, SizeVar uint, Trus
488 cbFn(arg0)488 cbFn(arg0)
489 }489 }
490 NotifyVarRef = purego.NewCallback(fcb)490 NotifyVarRef = purego.NewCallback(fcb)
491- SaveCallback(NotifyVarPtr, NotifyVarRef)491+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
492 }492 }
493 }493 }
494 494
M v4/glib/more.go +24 -2
@@ -11,9 +11,11 @@ import (
11 11
12 var callbacks = struct {12 var callbacks = struct {
13 sync.RWMutex13 sync.RWMutex
14- refs map[uintptr]uintptr14+ refs map[uintptr]uintptr
15+ closures map[uintptr]interface{}
15 }{16 }{
16- refs: make(map[uintptr]uintptr),17+ refs: make(map[uintptr]uintptr),
18+ closures: make(map[uintptr]interface{}),
17 }19 }
18 20
19 // GetCallback retrives a callback reference by value.21 // GetCallback retrives a callback reference by value.
@@ -33,6 +35,26 @@ func SaveCallback(cbPtr uintptr, refPtr uintptr) {
33 callbacks.Unlock()35 callbacks.Unlock()
34 }36 }
35 37
38+// SaveCallbackWithClosure saves a reference to the callback value and retains the
39+// provided closure to prevent it from being garbage collected.
40+// Users should not need to call this.
41+func SaveCallbackWithClosure(cbPtr uintptr, refPtr uintptr, closure interface{}) {
42+ callbacks.Lock()
43+ callbacks.refs[cbPtr] = refPtr
44+ callbacks.closures[cbPtr] = closure
45+ callbacks.Unlock()
46+}
47+
48+// RemoveCallback removes a callback from the registry, allowing it to be garbage
49+// collected.
50+// Users should not need to call this.
51+func RemoveCallback(cbPtr uintptr) {
52+ callbacks.Lock()
53+ delete(callbacks.refs, cbPtr)
54+ delete(callbacks.closures, cbPtr)
55+ callbacks.Unlock()
56+}
57+
36 // UnrefCallbackValue unreferences the provided callback by reflect.value to free a purego slot58 // UnrefCallbackValue unreferences the provided callback by reflect.value to free a purego slot
37 //59 //
38 // NOTE: Windows does not support unreferencing callbacks, so on that platform this operation is60 // NOTE: Windows does not support unreferencing callbacks, so on that platform this operation is
M v4/gobject/gbindinggroup.go +3 -3
@@ -84,7 +84,7 @@ func (x *BindingGroup) BindFull(SourcePropertyVar string, TargetVar *Object, Tar
84 return cbFn(arg0, arg1, arg2, arg3)84 return cbFn(arg0, arg1, arg2, arg3)
85 }85 }
86 TransformToVarRef = purego.NewCallback(fcb)86 TransformToVarRef = purego.NewCallback(fcb)
87- glib.SaveCallback(TransformToVarPtr, TransformToVarRef)87+ glib.SaveCallbackWithClosure(TransformToVarPtr, TransformToVarRef, TransformToVar)
88 }88 }
89 }89 }
90 90
@@ -99,7 +99,7 @@ func (x *BindingGroup) BindFull(SourcePropertyVar string, TargetVar *Object, Tar
99 return cbFn(arg0, arg1, arg2, arg3)99 return cbFn(arg0, arg1, arg2, arg3)
100 }100 }
101 TransformFromVarRef = purego.NewCallback(fcb)101 TransformFromVarRef = purego.NewCallback(fcb)
102- glib.SaveCallback(TransformFromVarPtr, TransformFromVarRef)102+ glib.SaveCallbackWithClosure(TransformFromVarPtr, TransformFromVarRef, TransformFromVar)
103 }103 }
104 }104 }
105 105
@@ -114,7 +114,7 @@ func (x *BindingGroup) BindFull(SourcePropertyVar string, TargetVar *Object, Tar
114 cbFn(arg0)114 cbFn(arg0)
115 }115 }
116 UserDataDestroyVarRef = purego.NewCallback(fcb)116 UserDataDestroyVarRef = purego.NewCallback(fcb)
117- glib.SaveCallback(UserDataDestroyVarPtr, UserDataDestroyVarRef)117+ glib.SaveCallbackWithClosure(UserDataDestroyVarPtr, UserDataDestroyVarRef, UserDataDestroyVar)
118 }118 }
119 }119 }
120 120
M v4/gobject/gboxed.go +2 -2
@@ -61,7 +61,7 @@ func BoxedTypeRegisterStatic(NameVar string, BoxedCopyVar *BoxedCopyFunc, BoxedF
61 return cbFn(arg0)61 return cbFn(arg0)
62 }62 }
63 BoxedCopyVarRef = purego.NewCallback(fcb)63 BoxedCopyVarRef = purego.NewCallback(fcb)
64- glib.SaveCallback(BoxedCopyVarPtr, BoxedCopyVarRef)64+ glib.SaveCallbackWithClosure(BoxedCopyVarPtr, BoxedCopyVarRef, BoxedCopyVar)
65 }65 }
66 }66 }
67 67
@@ -76,7 +76,7 @@ func BoxedTypeRegisterStatic(NameVar string, BoxedCopyVar *BoxedCopyFunc, BoxedF
76 cbFn(arg0)76 cbFn(arg0)
77 }77 }
78 BoxedFreeVarRef = purego.NewCallback(fcb)78 BoxedFreeVarRef = purego.NewCallback(fcb)
79- glib.SaveCallback(BoxedFreeVarPtr, BoxedFreeVarRef)79+ glib.SaveCallbackWithClosure(BoxedFreeVarPtr, BoxedFreeVarRef, BoxedFreeVar)
80 }80 }
81 }81 }
82 82
M v4/gobject/gclosure.go +12 -12
@@ -216,7 +216,7 @@ func (x *Closure) AddFinalizeNotifier(NotifyDataVar uintptr, NotifyFuncVar *Clos
216 cbFn(arg0, arg1)216 cbFn(arg0, arg1)
217 }217 }
218 NotifyFuncVarRef = purego.NewCallback(fcb)218 NotifyFuncVarRef = purego.NewCallback(fcb)
219- glib.SaveCallback(NotifyFuncVarPtr, NotifyFuncVarRef)219+ glib.SaveCallbackWithClosure(NotifyFuncVarPtr, NotifyFuncVarRef, NotifyFuncVar)
220 }220 }
221 }221 }
222 222
@@ -244,7 +244,7 @@ func (x *Closure) AddInvalidateNotifier(NotifyDataVar uintptr, NotifyFuncVar *Cl
244 cbFn(arg0, arg1)244 cbFn(arg0, arg1)
245 }245 }
246 NotifyFuncVarRef = purego.NewCallback(fcb)246 NotifyFuncVarRef = purego.NewCallback(fcb)
247- glib.SaveCallback(NotifyFuncVarPtr, NotifyFuncVarRef)247+ glib.SaveCallbackWithClosure(NotifyFuncVarPtr, NotifyFuncVarRef, NotifyFuncVar)
248 }248 }
249 }249 }
250 250
@@ -273,7 +273,7 @@ func (x *Closure) AddMarshalGuards(PreMarshalDataVar uintptr, PreMarshalNotifyVa
273 cbFn(arg0, arg1)273 cbFn(arg0, arg1)
274 }274 }
275 PreMarshalNotifyVarRef = purego.NewCallback(fcb)275 PreMarshalNotifyVarRef = purego.NewCallback(fcb)
276- glib.SaveCallback(PreMarshalNotifyVarPtr, PreMarshalNotifyVarRef)276+ glib.SaveCallbackWithClosure(PreMarshalNotifyVarPtr, PreMarshalNotifyVarRef, PreMarshalNotifyVar)
277 }277 }
278 }278 }
279 279
@@ -288,7 +288,7 @@ func (x *Closure) AddMarshalGuards(PreMarshalDataVar uintptr, PreMarshalNotifyVa
288 cbFn(arg0, arg1)288 cbFn(arg0, arg1)
289 }289 }
290 PostMarshalNotifyVarRef = purego.NewCallback(fcb)290 PostMarshalNotifyVarRef = purego.NewCallback(fcb)
291- glib.SaveCallback(PostMarshalNotifyVarPtr, PostMarshalNotifyVarRef)291+ glib.SaveCallbackWithClosure(PostMarshalNotifyVarPtr, PostMarshalNotifyVarRef, PostMarshalNotifyVar)
292 }292 }
293 }293 }
294 294
@@ -357,7 +357,7 @@ func (x *Closure) RemoveFinalizeNotifier(NotifyDataVar uintptr, NotifyFuncVar *C
357 cbFn(arg0, arg1)357 cbFn(arg0, arg1)
358 }358 }
359 NotifyFuncVarRef = purego.NewCallback(fcb)359 NotifyFuncVarRef = purego.NewCallback(fcb)
360- glib.SaveCallback(NotifyFuncVarPtr, NotifyFuncVarRef)360+ glib.SaveCallbackWithClosure(NotifyFuncVarPtr, NotifyFuncVarRef, NotifyFuncVar)
361 }361 }
362 }362 }
363 363
@@ -383,7 +383,7 @@ func (x *Closure) RemoveInvalidateNotifier(NotifyDataVar uintptr, NotifyFuncVar
383 cbFn(arg0, arg1)383 cbFn(arg0, arg1)
384 }384 }
385 NotifyFuncVarRef = purego.NewCallback(fcb)385 NotifyFuncVarRef = purego.NewCallback(fcb)
386- glib.SaveCallback(NotifyFuncVarPtr, NotifyFuncVarRef)386+ glib.SaveCallbackWithClosure(NotifyFuncVarPtr, NotifyFuncVarRef, NotifyFuncVar)
387 }387 }
388 }388 }
389 389
@@ -416,7 +416,7 @@ func (x *Closure) SetMarshal(MarshalVar *ClosureMarshal) {
416 cbFn(arg0, arg1, arg2, arg3, arg4, arg5)416 cbFn(arg0, arg1, arg2, arg3, arg4, arg5)
417 }417 }
418 MarshalVarRef = purego.NewCallback(fcb)418 MarshalVarRef = purego.NewCallback(fcb)
419- glib.SaveCallback(MarshalVarPtr, MarshalVarRef)419+ glib.SaveCallbackWithClosure(MarshalVarPtr, MarshalVarRef, MarshalVar)
420 }420 }
421 }421 }
422 422
@@ -456,7 +456,7 @@ func (x *Closure) SetMetaMarshal(MarshalDataVar uintptr, MetaMarshalVar *Closure
456 cbFn(arg0, arg1, arg2, arg3, arg4, arg5)456 cbFn(arg0, arg1, arg2, arg3, arg4, arg5)
457 }457 }
458 MetaMarshalVarRef = purego.NewCallback(fcb)458 MetaMarshalVarRef = purego.NewCallback(fcb)
459- glib.SaveCallback(MetaMarshalVarPtr, MetaMarshalVarRef)459+ glib.SaveCallbackWithClosure(MetaMarshalVarPtr, MetaMarshalVarRef, MetaMarshalVar)
460 }460 }
461 }461 }
462 462
@@ -601,7 +601,7 @@ func CclosureNew(CallbackFuncVar *Callback, UserDataVar uintptr, DestroyDataVar
601 cbFn()601 cbFn()
602 }602 }
603 CallbackFuncVarRef = purego.NewCallback(fcb)603 CallbackFuncVarRef = purego.NewCallback(fcb)
604- glib.SaveCallback(CallbackFuncVarPtr, CallbackFuncVarRef)604+ glib.SaveCallbackWithClosure(CallbackFuncVarPtr, CallbackFuncVarRef, CallbackFuncVar)
605 }605 }
606 }606 }
607 607
@@ -616,7 +616,7 @@ func CclosureNew(CallbackFuncVar *Callback, UserDataVar uintptr, DestroyDataVar
616 cbFn(arg0, arg1)616 cbFn(arg0, arg1)
617 }617 }
618 DestroyDataVarRef = purego.NewCallback(fcb)618 DestroyDataVarRef = purego.NewCallback(fcb)
619- glib.SaveCallback(DestroyDataVarPtr, DestroyDataVarRef)619+ glib.SaveCallbackWithClosure(DestroyDataVarPtr, DestroyDataVarRef, DestroyDataVar)
620 }620 }
621 }621 }
622 622
@@ -644,7 +644,7 @@ func CclosureNewSwap(CallbackFuncVar *Callback, UserDataVar uintptr, DestroyData
644 cbFn()644 cbFn()
645 }645 }
646 CallbackFuncVarRef = purego.NewCallback(fcb)646 CallbackFuncVarRef = purego.NewCallback(fcb)
647- glib.SaveCallback(CallbackFuncVarPtr, CallbackFuncVarRef)647+ glib.SaveCallbackWithClosure(CallbackFuncVarPtr, CallbackFuncVarRef, CallbackFuncVar)
648 }648 }
649 }649 }
650 650
@@ -659,7 +659,7 @@ func CclosureNewSwap(CallbackFuncVar *Callback, UserDataVar uintptr, DestroyData
659 cbFn(arg0, arg1)659 cbFn(arg0, arg1)
660 }660 }
661 DestroyDataVarRef = purego.NewCallback(fcb)661 DestroyDataVarRef = purego.NewCallback(fcb)
662- glib.SaveCallback(DestroyDataVarPtr, DestroyDataVarRef)662+ glib.SaveCallbackWithClosure(DestroyDataVarPtr, DestroyDataVarRef, DestroyDataVar)
663 }663 }
664 }664 }
665 665
M v4/gobject/gobject.go +18 -18
@@ -944,7 +944,7 @@ func CclosureNewObject(CallbackFuncVar *Callback, ObjectVar *Object) *Closure {
944 cbFn()944 cbFn()
945 }945 }
946 CallbackFuncVarRef = purego.NewCallback(fcb)946 CallbackFuncVarRef = purego.NewCallback(fcb)
947- glib.SaveCallback(CallbackFuncVarPtr, CallbackFuncVarRef)947+ glib.SaveCallbackWithClosure(CallbackFuncVarPtr, CallbackFuncVarRef, CallbackFuncVar)
948 }948 }
949 }949 }
950 950
@@ -973,7 +973,7 @@ func CclosureNewObjectSwap(CallbackFuncVar *Callback, ObjectVar *Object) *Closur
973 cbFn()973 cbFn()
974 }974 }
975 CallbackFuncVarRef = purego.NewCallback(fcb)975 CallbackFuncVarRef = purego.NewCallback(fcb)
976- glib.SaveCallback(CallbackFuncVarPtr, CallbackFuncVarRef)976+ glib.SaveCallbackWithClosure(CallbackFuncVarPtr, CallbackFuncVarRef, CallbackFuncVar)
977 }977 }
978 }978 }
979 979
@@ -1031,7 +1031,7 @@ func SignalConnectObject(InstanceVar *TypeInstance, DetailedSignalVar string, CH
1031 cbFn()1031 cbFn()
1032 }1032 }
1033 CHandlerVarRef = purego.NewCallback(fcb)1033 CHandlerVarRef = purego.NewCallback(fcb)
1034- glib.SaveCallback(CHandlerVarPtr, CHandlerVarRef)1034+ glib.SaveCallbackWithClosure(CHandlerVarPtr, CHandlerVarRef, CHandlerVar)
1035 }1035 }
1036 }1036 }
1037 1037
@@ -1259,7 +1259,7 @@ func (x *Object) AddToggleRef(NotifyVar *ToggleNotify, DataVar uintptr) {
1259 cbFn(arg0, arg1, arg2)1259 cbFn(arg0, arg1, arg2)
1260 }1260 }
1261 NotifyVarRef = purego.NewCallback(fcb)1261 NotifyVarRef = purego.NewCallback(fcb)
1262- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)1262+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
1263 }1263 }
1264 }1264 }
1265 1265
@@ -1374,7 +1374,7 @@ func (x *Object) BindPropertyFull(SourcePropertyVar string, TargetVar *Object, T
1374 return cbFn(arg0, arg1, arg2, arg3)1374 return cbFn(arg0, arg1, arg2, arg3)
1375 }1375 }
1376 TransformToVarRef = purego.NewCallback(fcb)1376 TransformToVarRef = purego.NewCallback(fcb)
1377- glib.SaveCallback(TransformToVarPtr, TransformToVarRef)1377+ glib.SaveCallbackWithClosure(TransformToVarPtr, TransformToVarRef, TransformToVar)
1378 }1378 }
1379 }1379 }
1380 1380
@@ -1389,7 +1389,7 @@ func (x *Object) BindPropertyFull(SourcePropertyVar string, TargetVar *Object, T
1389 return cbFn(arg0, arg1, arg2, arg3)1389 return cbFn(arg0, arg1, arg2, arg3)
1390 }1390 }
1391 TransformFromVarRef = purego.NewCallback(fcb)1391 TransformFromVarRef = purego.NewCallback(fcb)
1392- glib.SaveCallback(TransformFromVarPtr, TransformFromVarRef)1392+ glib.SaveCallbackWithClosure(TransformFromVarPtr, TransformFromVarRef, TransformFromVar)
1393 }1393 }
1394 }1394 }
1395 1395
@@ -1404,7 +1404,7 @@ func (x *Object) BindPropertyFull(SourcePropertyVar string, TargetVar *Object, T
1404 cbFn(arg0)1404 cbFn(arg0)
1405 }1405 }
1406 NotifyVarRef = purego.NewCallback(fcb)1406 NotifyVarRef = purego.NewCallback(fcb)
1407- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)1407+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
1408 }1408 }
1409 }1409 }
1410 1410
@@ -1528,7 +1528,7 @@ func (x *Object) DupData(KeyVar string, DupFuncVar *glib.DuplicateFunc, UserData
1528 return cbFn(arg0, arg1)1528 return cbFn(arg0, arg1)
1529 }1529 }
1530 DupFuncVarRef = purego.NewCallback(fcb)1530 DupFuncVarRef = purego.NewCallback(fcb)
1531- glib.SaveCallback(DupFuncVarPtr, DupFuncVarRef)1531+ glib.SaveCallbackWithClosure(DupFuncVarPtr, DupFuncVarRef, DupFuncVar)
1532 }1532 }
1533 }1533 }
1534 1534
@@ -1566,7 +1566,7 @@ func (x *Object) DupQdata(QuarkVar glib.Quark, DupFuncVar *glib.DuplicateFunc, U
1566 return cbFn(arg0, arg1)1566 return cbFn(arg0, arg1)
1567 }1567 }
1568 DupFuncVarRef = purego.NewCallback(fcb)1568 DupFuncVarRef = purego.NewCallback(fcb)
1569- glib.SaveCallback(DupFuncVarPtr, DupFuncVarRef)1569+ glib.SaveCallbackWithClosure(DupFuncVarPtr, DupFuncVarRef, DupFuncVar)
1570 }1570 }
1571 }1571 }
1572 1572
@@ -1859,7 +1859,7 @@ func (x *Object) RemoveToggleRef(NotifyVar *ToggleNotify, DataVar uintptr) {
1859 cbFn(arg0, arg1, arg2)1859 cbFn(arg0, arg1, arg2)
1860 }1860 }
1861 NotifyVarRef = purego.NewCallback(fcb)1861 NotifyVarRef = purego.NewCallback(fcb)
1862- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)1862+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
1863 }1863 }
1864 }1864 }
1865 1865
@@ -1909,7 +1909,7 @@ func (x *Object) ReplaceData(KeyVar string, OldvalVar uintptr, NewvalVar uintptr
1909 cbFn(arg0)1909 cbFn(arg0)
1910 }1910 }
1911 DestroyVarRef = purego.NewCallback(fcb)1911 DestroyVarRef = purego.NewCallback(fcb)
1912- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)1912+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
1913 }1913 }
1914 }1914 }
1915 1915
@@ -1946,7 +1946,7 @@ func (x *Object) ReplaceQdata(QuarkVar glib.Quark, OldvalVar uintptr, NewvalVar
1946 cbFn(arg0)1946 cbFn(arg0)
1947 }1947 }
1948 DestroyVarRef = purego.NewCallback(fcb)1948 DestroyVarRef = purego.NewCallback(fcb)
1949- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)1949+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
1950 }1950 }
1951 }1951 }
1952 1952
@@ -2023,7 +2023,7 @@ func (x *Object) SetDataFull(KeyVar string, DataVar uintptr, DestroyVar *glib.De
2023 cbFn(arg0)2023 cbFn(arg0)
2024 }2024 }
2025 DestroyVarRef = purego.NewCallback(fcb)2025 DestroyVarRef = purego.NewCallback(fcb)
2026- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)2026+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
2027 }2027 }
2028 }2028 }
2029 2029
@@ -2076,7 +2076,7 @@ func (x *Object) SetQdataFull(QuarkVar glib.Quark, DataVar uintptr, DestroyVar *
2076 cbFn(arg0)2076 cbFn(arg0)
2077 }2077 }
2078 DestroyVarRef = purego.NewCallback(fcb)2078 DestroyVarRef = purego.NewCallback(fcb)
2079- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)2079+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
2080 }2080 }
2081 }2081 }
2082 2082
@@ -2289,7 +2289,7 @@ func (x *Object) WeakRef(NotifyVar *WeakNotify, DataVar uintptr) {
2289 cbFn(arg0, arg1)2289 cbFn(arg0, arg1)
2290 }2290 }
2291 NotifyVarRef = purego.NewCallback(fcb)2291 NotifyVarRef = purego.NewCallback(fcb)
2292- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)2292+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
2293 }2293 }
2294 }2294 }
2295 2295
@@ -2313,7 +2313,7 @@ func (x *Object) WeakUnref(NotifyVar *WeakNotify, DataVar uintptr) {
2313 cbFn(arg0, arg1)2313 cbFn(arg0, arg1)
2314 }2314 }
2315 NotifyVarRef = purego.NewCallback(fcb)2315 NotifyVarRef = purego.NewCallback(fcb)
2316- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)2316+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
2317 }2317 }
2318 }2318 }
2319 2319
@@ -2374,7 +2374,7 @@ func (x *Object) ConnectNotify(cb *func(Object, uintptr)) uint32 {
2374 2374
2375 }2375 }
2376 cbRefPtr := purego.NewCallback(fcb)2376 cbRefPtr := purego.NewCallback(fcb)
2377- glib.SaveCallback(cbPtr, cbRefPtr)2377+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2378 return SignalConnect(x.GoPointer(), "notify", cbRefPtr)2378 return SignalConnect(x.GoPointer(), "notify", cbRefPtr)
2379 }2379 }
2380 2380
@@ -2396,7 +2396,7 @@ func (x *Object) ConnectNotifyWithDetail(detail string, cb *func(Object, uintptr
2396 2396
2397 }2397 }
2398 cbRefPtr := purego.NewCallback(fcb)2398 cbRefPtr := purego.NewCallback(fcb)
2399- glib.SaveCallback(cbPtr, cbRefPtr)2399+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2400 return SignalConnect(x.GoPointer(), signalName, cbRefPtr)2400 return SignalConnect(x.GoPointer(), signalName, cbRefPtr)
2401 }2401 }
2402 2402
M v4/gobject/gparam.go +1 -1
@@ -796,7 +796,7 @@ func (x *ParamSpec) SetQdataFull(QuarkVar glib.Quark, DataVar uintptr, DestroyVa
796 cbFn(arg0)796 cbFn(arg0)
797 }797 }
798 DestroyVarRef = purego.NewCallback(fcb)798 DestroyVarRef = purego.NewCallback(fcb)
799- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)799+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
800 }800 }
801 }801 }
802 802
M v4/gobject/gsignal.go +10 -10
@@ -241,7 +241,7 @@ func SignalAddEmissionHook(SignalIdVar uint, DetailVar glib.Quark, HookFuncVar *
241 return cbFn(arg0, arg1, arg2, arg3)241 return cbFn(arg0, arg1, arg2, arg3)
242 }242 }
243 HookFuncVarRef = purego.NewCallback(fcb)243 HookFuncVarRef = purego.NewCallback(fcb)
244- glib.SaveCallback(HookFuncVarPtr, HookFuncVarRef)244+ glib.SaveCallbackWithClosure(HookFuncVarPtr, HookFuncVarRef, HookFuncVar)
245 }245 }
246 }246 }
247 247
@@ -256,7 +256,7 @@ func SignalAddEmissionHook(SignalIdVar uint, DetailVar glib.Quark, HookFuncVar *
256 cbFn(arg0)256 cbFn(arg0)
257 }257 }
258 DataDestroyVarRef = purego.NewCallback(fcb)258 DataDestroyVarRef = purego.NewCallback(fcb)
259- glib.SaveCallback(DataDestroyVarPtr, DataDestroyVarRef)259+ glib.SaveCallbackWithClosure(DataDestroyVarPtr, DataDestroyVarRef, DataDestroyVar)
260 }260 }
261 }261 }
262 262
@@ -359,7 +359,7 @@ func SignalConnectData(InstanceVar *Object, DetailedSignalVar string, CHandlerVa
359 cbFn()359 cbFn()
360 }360 }
361 CHandlerVarRef = purego.NewCallback(fcb)361 CHandlerVarRef = purego.NewCallback(fcb)
362- glib.SaveCallback(CHandlerVarPtr, CHandlerVarRef)362+ glib.SaveCallbackWithClosure(CHandlerVarPtr, CHandlerVarRef, CHandlerVar)
363 }363 }
364 }364 }
365 365
@@ -374,7 +374,7 @@ func SignalConnectData(InstanceVar *Object, DetailedSignalVar string, CHandlerVa
374 cbFn(arg0, arg1)374 cbFn(arg0, arg1)
375 }375 }
376 DestroyDataVarRef = purego.NewCallback(fcb)376 DestroyDataVarRef = purego.NewCallback(fcb)
377- glib.SaveCallback(DestroyDataVarPtr, DestroyDataVarRef)377+ glib.SaveCallbackWithClosure(DestroyDataVarPtr, DestroyDataVarRef, DestroyDataVar)
378 }378 }
379 }379 }
380 380
@@ -722,7 +722,7 @@ func SignalNew(SignalNameVar string, ItypeVar types.GType, SignalFlagsVar Signal
722 return cbFn(arg0, arg1, arg2, arg3)722 return cbFn(arg0, arg1, arg2, arg3)
723 }723 }
724 AccumulatorVarRef = purego.NewCallback(fcb)724 AccumulatorVarRef = purego.NewCallback(fcb)
725- glib.SaveCallback(AccumulatorVarPtr, AccumulatorVarRef)725+ glib.SaveCallbackWithClosure(AccumulatorVarPtr, AccumulatorVarRef, AccumulatorVar)
726 }726 }
727 }727 }
728 728
@@ -762,7 +762,7 @@ func SignalNewClassHandler(SignalNameVar string, ItypeVar types.GType, SignalFla
762 cbFn()762 cbFn()
763 }763 }
764 ClassHandlerVarRef = purego.NewCallback(fcb)764 ClassHandlerVarRef = purego.NewCallback(fcb)
765- glib.SaveCallback(ClassHandlerVarPtr, ClassHandlerVarRef)765+ glib.SaveCallbackWithClosure(ClassHandlerVarPtr, ClassHandlerVarRef, ClassHandlerVar)
766 }766 }
767 }767 }
768 768
@@ -777,7 +777,7 @@ func SignalNewClassHandler(SignalNameVar string, ItypeVar types.GType, SignalFla
777 return cbFn(arg0, arg1, arg2, arg3)777 return cbFn(arg0, arg1, arg2, arg3)
778 }778 }
779 AccumulatorVarRef = purego.NewCallback(fcb)779 AccumulatorVarRef = purego.NewCallback(fcb)
780- glib.SaveCallback(AccumulatorVarPtr, AccumulatorVarRef)780+ glib.SaveCallbackWithClosure(AccumulatorVarPtr, AccumulatorVarRef, AccumulatorVar)
781 }781 }
782 }782 }
783 783
@@ -807,7 +807,7 @@ func SignalNewValist(SignalNameVar string, ItypeVar types.GType, SignalFlagsVar
807 return cbFn(arg0, arg1, arg2, arg3)807 return cbFn(arg0, arg1, arg2, arg3)
808 }808 }
809 AccumulatorVarRef = purego.NewCallback(fcb)809 AccumulatorVarRef = purego.NewCallback(fcb)
810- glib.SaveCallback(AccumulatorVarPtr, AccumulatorVarRef)810+ glib.SaveCallbackWithClosure(AccumulatorVarPtr, AccumulatorVarRef, AccumulatorVar)
811 }811 }
812 }812 }
813 813
@@ -837,7 +837,7 @@ func SignalNewv(SignalNameVar string, ItypeVar types.GType, SignalFlagsVar Signa
837 return cbFn(arg0, arg1, arg2, arg3)837 return cbFn(arg0, arg1, arg2, arg3)
838 }838 }
839 AccumulatorVarRef = purego.NewCallback(fcb)839 AccumulatorVarRef = purego.NewCallback(fcb)
840- glib.SaveCallback(AccumulatorVarPtr, AccumulatorVarRef)840+ glib.SaveCallbackWithClosure(AccumulatorVarPtr, AccumulatorVarRef, AccumulatorVar)
841 }841 }
842 }842 }
843 843
@@ -884,7 +884,7 @@ func SignalOverrideClassHandler(SignalNameVar string, InstanceTypeVar types.GTyp
884 cbFn()884 cbFn()
885 }885 }
886 ClassHandlerVarRef = purego.NewCallback(fcb)886 ClassHandlerVarRef = purego.NewCallback(fcb)
887- glib.SaveCallback(ClassHandlerVarPtr, ClassHandlerVarRef)887+ glib.SaveCallbackWithClosure(ClassHandlerVarPtr, ClassHandlerVarRef, ClassHandlerVar)
888 }888 }
889 }889 }
890 890
M v4/gobject/gsignalgroup.go +8 -8
@@ -93,7 +93,7 @@ func (x *SignalGroup) Connect(DetailedSignalVar string, CHandlerVar *Callback, D
93 cbFn()93 cbFn()
94 }94 }
95 CHandlerVarRef = purego.NewCallback(fcb)95 CHandlerVarRef = purego.NewCallback(fcb)
96- glib.SaveCallback(CHandlerVarPtr, CHandlerVarRef)96+ glib.SaveCallbackWithClosure(CHandlerVarPtr, CHandlerVarRef, CHandlerVar)
97 }97 }
98 }98 }
99 99
@@ -122,7 +122,7 @@ func (x *SignalGroup) ConnectAfter(DetailedSignalVar string, CHandlerVar *Callba
122 cbFn()122 cbFn()
123 }123 }
124 CHandlerVarRef = purego.NewCallback(fcb)124 CHandlerVarRef = purego.NewCallback(fcb)
125- glib.SaveCallback(CHandlerVarPtr, CHandlerVarRef)125+ glib.SaveCallbackWithClosure(CHandlerVarPtr, CHandlerVarRef, CHandlerVar)
126 }126 }
127 }127 }
128 128
@@ -160,7 +160,7 @@ func (x *SignalGroup) ConnectData(DetailedSignalVar string, CHandlerVar *Callbac
160 cbFn()160 cbFn()
161 }161 }
162 CHandlerVarRef = purego.NewCallback(fcb)162 CHandlerVarRef = purego.NewCallback(fcb)
163- glib.SaveCallback(CHandlerVarPtr, CHandlerVarRef)163+ glib.SaveCallbackWithClosure(CHandlerVarPtr, CHandlerVarRef, CHandlerVar)
164 }164 }
165 }165 }
166 166
@@ -175,7 +175,7 @@ func (x *SignalGroup) ConnectData(DetailedSignalVar string, CHandlerVar *Callbac
175 cbFn(arg0, arg1)175 cbFn(arg0, arg1)
176 }176 }
177 NotifyVarRef = purego.NewCallback(fcb)177 NotifyVarRef = purego.NewCallback(fcb)
178- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)178+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
179 }179 }
180 }180 }
181 181
@@ -205,7 +205,7 @@ func (x *SignalGroup) ConnectObject(DetailedSignalVar string, CHandlerVar *Callb
205 cbFn()205 cbFn()
206 }206 }
207 CHandlerVarRef = purego.NewCallback(fcb)207 CHandlerVarRef = purego.NewCallback(fcb)
208- glib.SaveCallback(CHandlerVarPtr, CHandlerVarRef)208+ glib.SaveCallbackWithClosure(CHandlerVarPtr, CHandlerVarRef, CHandlerVar)
209 }209 }
210 }210 }
211 211
@@ -235,7 +235,7 @@ func (x *SignalGroup) ConnectSwapped(DetailedSignalVar string, CHandlerVar *Call
235 cbFn()235 cbFn()
236 }236 }
237 CHandlerVarRef = purego.NewCallback(fcb)237 CHandlerVarRef = purego.NewCallback(fcb)
238- glib.SaveCallback(CHandlerVarPtr, CHandlerVarRef)238+ glib.SaveCallbackWithClosure(CHandlerVarPtr, CHandlerVarRef, CHandlerVar)
239 }239 }
240 }240 }
241 241
@@ -315,7 +315,7 @@ func (x *SignalGroup) ConnectBind(cb *func(SignalGroup, uintptr)) uint32 {
315 315
316 }316 }
317 cbRefPtr := purego.NewCallback(fcb)317 cbRefPtr := purego.NewCallback(fcb)
318- glib.SaveCallback(cbPtr, cbRefPtr)318+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
319 return SignalConnect(x.GoPointer(), "bind", cbRefPtr)319 return SignalConnect(x.GoPointer(), "bind", cbRefPtr)
320 }320 }
321 321
@@ -339,7 +339,7 @@ func (x *SignalGroup) ConnectUnbind(cb *func(SignalGroup)) uint32 {
339 339
340 }340 }
341 cbRefPtr := purego.NewCallback(fcb)341 cbRefPtr := purego.NewCallback(fcb)
342- glib.SaveCallback(cbPtr, cbRefPtr)342+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
343 return SignalConnect(x.GoPointer(), "unbind", cbRefPtr)343 return SignalConnect(x.GoPointer(), "unbind", cbRefPtr)
344 }344 }
345 345
M v4/gobject/gtype.go +6 -6
@@ -826,7 +826,7 @@ func TypeAddClassCacheFunc(CacheDataVar uintptr, CacheFuncVar *TypeClassCacheFun
826 return cbFn(arg0, arg1)826 return cbFn(arg0, arg1)
827 }827 }
828 CacheFuncVarRef = purego.NewCallback(fcb)828 CacheFuncVarRef = purego.NewCallback(fcb)
829- glib.SaveCallback(CacheFuncVarPtr, CacheFuncVarRef)829+ glib.SaveCallbackWithClosure(CacheFuncVarPtr, CacheFuncVarRef, CacheFuncVar)
830 }830 }
831 }831 }
832 832
@@ -885,7 +885,7 @@ func TypeAddInterfaceCheck(CheckDataVar uintptr, CheckFuncVar *TypeInterfaceChec
885 cbFn(arg0, arg1)885 cbFn(arg0, arg1)
886 }886 }
887 CheckFuncVarRef = purego.NewCallback(fcb)887 CheckFuncVarRef = purego.NewCallback(fcb)
888- glib.SaveCallback(CheckFuncVarPtr, CheckFuncVarRef)888+ glib.SaveCallbackWithClosure(CheckFuncVarPtr, CheckFuncVarRef, CheckFuncVar)
889 }889 }
890 }890 }
891 891
@@ -1559,7 +1559,7 @@ func TypeRegisterStaticSimple(ParentTypeVar types.GType, TypeNameVar string, Cla
1559 cbFn(arg0, arg1)1559 cbFn(arg0, arg1)
1560 }1560 }
1561 ClassInitVarRef = purego.NewCallback(fcb)1561 ClassInitVarRef = purego.NewCallback(fcb)
1562- glib.SaveCallback(ClassInitVarPtr, ClassInitVarRef)1562+ glib.SaveCallbackWithClosure(ClassInitVarPtr, ClassInitVarRef, ClassInitVar)
1563 }1563 }
1564 }1564 }
1565 1565
@@ -1574,7 +1574,7 @@ func TypeRegisterStaticSimple(ParentTypeVar types.GType, TypeNameVar string, Cla
1574 cbFn(arg0, arg1)1574 cbFn(arg0, arg1)
1575 }1575 }
1576 InstanceInitVarRef = purego.NewCallback(fcb)1576 InstanceInitVarRef = purego.NewCallback(fcb)
1577- glib.SaveCallback(InstanceInitVarPtr, InstanceInitVarRef)1577+ glib.SaveCallbackWithClosure(InstanceInitVarPtr, InstanceInitVarRef, InstanceInitVar)
1578 }1578 }
1579 }1579 }
1580 1580
@@ -1601,7 +1601,7 @@ func TypeRemoveClassCacheFunc(CacheDataVar uintptr, CacheFuncVar *TypeClassCache
1601 return cbFn(arg0, arg1)1601 return cbFn(arg0, arg1)
1602 }1602 }
1603 CacheFuncVarRef = purego.NewCallback(fcb)1603 CacheFuncVarRef = purego.NewCallback(fcb)
1604- glib.SaveCallback(CacheFuncVarPtr, CacheFuncVarRef)1604+ glib.SaveCallbackWithClosure(CacheFuncVarPtr, CacheFuncVarRef, CacheFuncVar)
1605 }1605 }
1606 }1606 }
1607 1607
@@ -1626,7 +1626,7 @@ func TypeRemoveInterfaceCheck(CheckDataVar uintptr, CheckFuncVar *TypeInterfaceC
1626 cbFn(arg0, arg1)1626 cbFn(arg0, arg1)
1627 }1627 }
1628 CheckFuncVarRef = purego.NewCallback(fcb)1628 CheckFuncVarRef = purego.NewCallback(fcb)
1629- glib.SaveCallback(CheckFuncVarPtr, CheckFuncVarRef)1629+ glib.SaveCallbackWithClosure(CheckFuncVarPtr, CheckFuncVarRef, CheckFuncVar)
1630 }1630 }
1631 }1631 }
1632 1632
M v4/gobject/gvalue.go +1 -1
@@ -908,7 +908,7 @@ func ValueRegisterTransformFunc(SrcTypeVar types.GType, DestTypeVar types.GType,
908 cbFn(arg0, arg1)908 cbFn(arg0, arg1)
909 }909 }
910 TransformFuncVarRef = purego.NewCallback(fcb)910 TransformFuncVarRef = purego.NewCallback(fcb)
911- glib.SaveCallback(TransformFuncVarPtr, TransformFuncVarRef)911+ glib.SaveCallbackWithClosure(TransformFuncVarPtr, TransformFuncVarRef, TransformFuncVar)
912 }912 }
913 }913 }
914 914
M v4/gobject/gvaluearray.go +2 -2
@@ -163,7 +163,7 @@ func (x *ValueArray) Sort(CompareFuncVar *glib.CompareFunc) *ValueArray {
163 return cbFn(arg0, arg1)163 return cbFn(arg0, arg1)
164 }164 }
165 CompareFuncVarRef = purego.NewCallback(fcb)165 CompareFuncVarRef = purego.NewCallback(fcb)
166- glib.SaveCallback(CompareFuncVarPtr, CompareFuncVarRef)166+ glib.SaveCallbackWithClosure(CompareFuncVarPtr, CompareFuncVarRef, CompareFuncVar)
167 }167 }
168 }168 }
169 169
@@ -192,7 +192,7 @@ func (x *ValueArray) SortWithData(CompareFuncVar *glib.CompareDataFunc, UserData
192 return cbFn(arg0, arg1, arg2)192 return cbFn(arg0, arg1, arg2)
193 }193 }
194 CompareFuncVarRef = purego.NewCallback(fcb)194 CompareFuncVarRef = purego.NewCallback(fcb)
195- glib.SaveCallback(CompareFuncVarPtr, CompareFuncVarRef)195+ glib.SaveCallbackWithClosure(CompareFuncVarPtr, CompareFuncVarRef, CompareFuncVar)
196 }196 }
197 }197 }
198 198
M v4/gsk/gskrendernode.go +1 -1
@@ -314,7 +314,7 @@ func RenderNodeDeserialize(BytesVar *glib.Bytes, ErrorFuncVar *ParseErrorFunc, U
314 cbFn(arg0, arg1, arg2, arg3)314 cbFn(arg0, arg1, arg2, arg3)
315 }315 }
316 ErrorFuncVarRef = purego.NewCallback(fcb)316 ErrorFuncVarRef = purego.NewCallback(fcb)
317- glib.SaveCallback(ErrorFuncVarPtr, ErrorFuncVarRef)317+ glib.SaveCallbackWithClosure(ErrorFuncVarPtr, ErrorFuncVarRef, ErrorFuncVar)
318 }318 }
319 }319 }
320 320
M v4/gsk/gsktypes.go +2 -2
@@ -265,7 +265,7 @@ func (x *Path) Foreach(FlagsVar PathForeachFlags, FuncVar *PathForeachFunc, User
265 return cbFn(arg0, arg1, arg2, arg3, arg4)265 return cbFn(arg0, arg1, arg2, arg3, arg4)
266 }266 }
267 FuncVarRef = purego.NewCallback(fcb)267 FuncVarRef = purego.NewCallback(fcb)
268- glib.SaveCallback(FuncVarPtr, FuncVarRef)268+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
269 }269 }
270 }270 }
271 271
@@ -304,7 +304,7 @@ func (x *Path) ForeachIntersection(Path2Var *Path, FuncVar *PathIntersectionFunc
304 return cbFn(arg0, arg1, arg2, arg3, arg4, arg5)304 return cbFn(arg0, arg1, arg2, arg3, arg4, arg5)
305 }305 }
306 FuncVarRef = purego.NewCallback(fcb)306 FuncVarRef = purego.NewCallback(fcb)
307- glib.SaveCallback(FuncVarPtr, FuncVarRef)307+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
308 }308 }
309 }309 }
310 310
M v4/gtk/gtkaboutdialog.go +1 -1
@@ -936,7 +936,7 @@ func (x *AboutDialog) ConnectActivateLink(cb *func(AboutDialog, string) bool) ui
936 936
937 }937 }
938 cbRefPtr := purego.NewCallback(fcb)938 cbRefPtr := purego.NewCallback(fcb)
939- glib.SaveCallback(cbPtr, cbRefPtr)939+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
940 return gobject.SignalConnect(x.GoPointer(), "activate-link", cbRefPtr)940 return gobject.SignalConnect(x.GoPointer(), "activate-link", cbRefPtr)
941 }941 }
942 942
M v4/gtk/gtkadjustment.go +2 -2
@@ -558,7 +558,7 @@ func (x *Adjustment) ConnectChanged(cb *func(Adjustment)) uint32 {
558 558
559 }559 }
560 cbRefPtr := purego.NewCallback(fcb)560 cbRefPtr := purego.NewCallback(fcb)
561- glib.SaveCallback(cbPtr, cbRefPtr)561+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
562 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)562 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
563 }563 }
564 564
@@ -578,7 +578,7 @@ func (x *Adjustment) ConnectValueChanged(cb *func(Adjustment)) uint32 {
578 578
579 }579 }
580 cbRefPtr := purego.NewCallback(fcb)580 cbRefPtr := purego.NewCallback(fcb)
581- glib.SaveCallback(cbPtr, cbRefPtr)581+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
582 return gobject.SignalConnect(x.GoPointer(), "value-changed", cbRefPtr)582 return gobject.SignalConnect(x.GoPointer(), "value-changed", cbRefPtr)
583 }583 }
584 584
M v4/gtk/gtkalertdialog.go +1 -1
@@ -85,7 +85,7 @@ func (x *AlertDialog) Choose(ParentVar *Window, CancellableVar *gio.Cancellable,
85 cbFn(arg0, arg1, arg2)85 cbFn(arg0, arg1, arg2)
86 }86 }
87 CallbackVarRef = purego.NewCallback(fcb)87 CallbackVarRef = purego.NewCallback(fcb)
88- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)88+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
89 }89 }
90 }90 }
91 91
M v4/gtk/gtkappchooserbutton.go +4 -4
@@ -310,7 +310,7 @@ func (x *AppChooserButton) ConnectActivate(cb *func(AppChooserButton)) uint32 {
310 310
311 }311 }
312 cbRefPtr := purego.NewCallback(fcb)312 cbRefPtr := purego.NewCallback(fcb)
313- glib.SaveCallback(cbPtr, cbRefPtr)313+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
314 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)314 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
315 }315 }
316 316
@@ -330,7 +330,7 @@ func (x *AppChooserButton) ConnectChanged(cb *func(AppChooserButton)) uint32 {
330 330
331 }331 }
332 cbRefPtr := purego.NewCallback(fcb)332 cbRefPtr := purego.NewCallback(fcb)
333- glib.SaveCallback(cbPtr, cbRefPtr)333+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
334 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)334 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
335 }335 }
336 336
@@ -353,7 +353,7 @@ func (x *AppChooserButton) ConnectCustomItemActivated(cb *func(AppChooserButton,
353 353
354 }354 }
355 cbRefPtr := purego.NewCallback(fcb)355 cbRefPtr := purego.NewCallback(fcb)
356- glib.SaveCallback(cbPtr, cbRefPtr)356+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
357 return gobject.SignalConnect(x.GoPointer(), "custom-item-activated", cbRefPtr)357 return gobject.SignalConnect(x.GoPointer(), "custom-item-activated", cbRefPtr)
358 }358 }
359 359
@@ -375,7 +375,7 @@ func (x *AppChooserButton) ConnectCustomItemActivatedWithDetail(detail string, c
375 375
376 }376 }
377 cbRefPtr := purego.NewCallback(fcb)377 cbRefPtr := purego.NewCallback(fcb)
378- glib.SaveCallback(cbPtr, cbRefPtr)378+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
379 return gobject.SignalConnect(x.GoPointer(), signalName, cbRefPtr)379 return gobject.SignalConnect(x.GoPointer(), signalName, cbRefPtr)
380 }380 }
381 381
M v4/gtk/gtkappchooserwidget.go +2 -2
@@ -360,7 +360,7 @@ func (x *AppChooserWidget) ConnectApplicationActivated(cb *func(AppChooserWidget
360 360
361 }361 }
362 cbRefPtr := purego.NewCallback(fcb)362 cbRefPtr := purego.NewCallback(fcb)
363- glib.SaveCallback(cbPtr, cbRefPtr)363+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
364 return gobject.SignalConnect(x.GoPointer(), "application-activated", cbRefPtr)364 return gobject.SignalConnect(x.GoPointer(), "application-activated", cbRefPtr)
365 }365 }
366 366
@@ -380,7 +380,7 @@ func (x *AppChooserWidget) ConnectApplicationSelected(cb *func(AppChooserWidget,
380 380
381 }381 }
382 cbRefPtr := purego.NewCallback(fcb)382 cbRefPtr := purego.NewCallback(fcb)
383- glib.SaveCallback(cbPtr, cbRefPtr)383+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
384 return gobject.SignalConnect(x.GoPointer(), "application-selected", cbRefPtr)384 return gobject.SignalConnect(x.GoPointer(), "application-selected", cbRefPtr)
385 }385 }
386 386
M v4/gtk/gtkapplication.go +3 -3
@@ -585,7 +585,7 @@ func (x *Application) ConnectQueryEnd(cb *func(Application)) uint32 {
585 585
586 }586 }
587 cbRefPtr := purego.NewCallback(fcb)587 cbRefPtr := purego.NewCallback(fcb)
588- glib.SaveCallback(cbPtr, cbRefPtr)588+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
589 return gobject.SignalConnect(x.GoPointer(), "query-end", cbRefPtr)589 return gobject.SignalConnect(x.GoPointer(), "query-end", cbRefPtr)
590 }590 }
591 591
@@ -607,7 +607,7 @@ func (x *Application) ConnectWindowAdded(cb *func(Application, uintptr)) uint32
607 607
608 }608 }
609 cbRefPtr := purego.NewCallback(fcb)609 cbRefPtr := purego.NewCallback(fcb)
610- glib.SaveCallback(cbPtr, cbRefPtr)610+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
611 return gobject.SignalConnect(x.GoPointer(), "window-added", cbRefPtr)611 return gobject.SignalConnect(x.GoPointer(), "window-added", cbRefPtr)
612 }612 }
613 613
@@ -630,7 +630,7 @@ func (x *Application) ConnectWindowRemoved(cb *func(Application, uintptr)) uint3
630 630
631 }631 }
632 cbRefPtr := purego.NewCallback(fcb)632 cbRefPtr := purego.NewCallback(fcb)
633- glib.SaveCallback(cbPtr, cbRefPtr)633+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
634 return gobject.SignalConnect(x.GoPointer(), "window-removed", cbRefPtr)634 return gobject.SignalConnect(x.GoPointer(), "window-removed", cbRefPtr)
635 }635 }
636 636
M v4/gtk/gtkassistant.go +7 -7
@@ -379,7 +379,7 @@ func (x *Assistant) SetForwardPageFunc(PageFuncVar *AssistantPageFunc, DataVar u
379 return cbFn(arg0, arg1)379 return cbFn(arg0, arg1)
380 }380 }
381 PageFuncVarRef = purego.NewCallback(fcb)381 PageFuncVarRef = purego.NewCallback(fcb)
382- glib.SaveCallback(PageFuncVarPtr, PageFuncVarRef)382+ glib.SaveCallbackWithClosure(PageFuncVarPtr, PageFuncVarRef, PageFuncVar)
383 }383 }
384 }384 }
385 385
@@ -394,7 +394,7 @@ func (x *Assistant) SetForwardPageFunc(PageFuncVar *AssistantPageFunc, DataVar u
394 cbFn(arg0)394 cbFn(arg0)
395 }395 }
396 DestroyVarRef = purego.NewCallback(fcb)396 DestroyVarRef = purego.NewCallback(fcb)
397- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)397+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
398 }398 }
399 }399 }
400 400
@@ -516,7 +516,7 @@ func (x *Assistant) ConnectApply(cb *func(Assistant)) uint32 {
516 516
517 }517 }
518 cbRefPtr := purego.NewCallback(fcb)518 cbRefPtr := purego.NewCallback(fcb)
519- glib.SaveCallback(cbPtr, cbRefPtr)519+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
520 return gobject.SignalConnect(x.GoPointer(), "apply", cbRefPtr)520 return gobject.SignalConnect(x.GoPointer(), "apply", cbRefPtr)
521 }521 }
522 522
@@ -536,7 +536,7 @@ func (x *Assistant) ConnectCancel(cb *func(Assistant)) uint32 {
536 536
537 }537 }
538 cbRefPtr := purego.NewCallback(fcb)538 cbRefPtr := purego.NewCallback(fcb)
539- glib.SaveCallback(cbPtr, cbRefPtr)539+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
540 return gobject.SignalConnect(x.GoPointer(), "cancel", cbRefPtr)540 return gobject.SignalConnect(x.GoPointer(), "cancel", cbRefPtr)
541 }541 }
542 542
@@ -558,7 +558,7 @@ func (x *Assistant) ConnectClose(cb *func(Assistant)) uint32 {
558 558
559 }559 }
560 cbRefPtr := purego.NewCallback(fcb)560 cbRefPtr := purego.NewCallback(fcb)
561- glib.SaveCallback(cbPtr, cbRefPtr)561+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
562 return gobject.SignalConnect(x.GoPointer(), "close", cbRefPtr)562 return gobject.SignalConnect(x.GoPointer(), "close", cbRefPtr)
563 }563 }
564 564
@@ -578,7 +578,7 @@ func (x *Assistant) ConnectEscape(cb *func(Assistant)) uint32 {
578 578
579 }579 }
580 cbRefPtr := purego.NewCallback(fcb)580 cbRefPtr := purego.NewCallback(fcb)
581- glib.SaveCallback(cbPtr, cbRefPtr)581+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
582 return gobject.SignalConnect(x.GoPointer(), "escape", cbRefPtr)582 return gobject.SignalConnect(x.GoPointer(), "escape", cbRefPtr)
583 }583 }
584 584
@@ -602,7 +602,7 @@ func (x *Assistant) ConnectPrepare(cb *func(Assistant, uintptr)) uint32 {
602 602
603 }603 }
604 cbRefPtr := purego.NewCallback(fcb)604 cbRefPtr := purego.NewCallback(fcb)
605- glib.SaveCallback(cbPtr, cbRefPtr)605+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
606 return gobject.SignalConnect(x.GoPointer(), "prepare", cbRefPtr)606 return gobject.SignalConnect(x.GoPointer(), "prepare", cbRefPtr)
607 }607 }
608 608
M v4/gtk/gtkatcontext.go +1 -1
@@ -117,7 +117,7 @@ func (x *ATContext) ConnectStateChange(cb *func(ATContext)) uint32 {
117 117
118 }118 }
119 cbRefPtr := purego.NewCallback(fcb)119 cbRefPtr := purego.NewCallback(fcb)
120- glib.SaveCallback(cbPtr, cbRefPtr)120+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
121 return gobject.SignalConnect(x.GoPointer(), "state-change", cbRefPtr)121 return gobject.SignalConnect(x.GoPointer(), "state-change", cbRefPtr)
122 }122 }
123 123
M v4/gtk/gtkbuilderscope.go +2 -2
@@ -285,7 +285,7 @@ func (x *BuilderCScope) AddCallbackSymbol(CallbackNameVar string, CallbackSymbol
285 cbFn()285 cbFn()
286 }286 }
287 CallbackSymbolVarRef = purego.NewCallback(fcb)287 CallbackSymbolVarRef = purego.NewCallback(fcb)
288- glib.SaveCallback(CallbackSymbolVarPtr, CallbackSymbolVarRef)288+ glib.SaveCallbackWithClosure(CallbackSymbolVarPtr, CallbackSymbolVarRef, CallbackSymbolVar)
289 }289 }
290 }290 }
291 291
@@ -312,7 +312,7 @@ func (x *BuilderCScope) AddCallbackSymbols(FirstCallbackNameVar string, FirstCal
312 cbFn()312 cbFn()
313 }313 }
314 FirstCallbackSymbolVarRef = purego.NewCallback(fcb)314 FirstCallbackSymbolVarRef = purego.NewCallback(fcb)
315- glib.SaveCallback(FirstCallbackSymbolVarPtr, FirstCallbackSymbolVarRef)315+ glib.SaveCallbackWithClosure(FirstCallbackSymbolVarPtr, FirstCallbackSymbolVarRef, FirstCallbackSymbolVar)
316 }316 }
317 }317 }
318 318
M v4/gtk/gtkbutton.go +2 -2
@@ -514,7 +514,7 @@ func (x *Button) ConnectActivate(cb *func(Button)) uint32 {
514 514
515 }515 }
516 cbRefPtr := purego.NewCallback(fcb)516 cbRefPtr := purego.NewCallback(fcb)
517- glib.SaveCallback(cbPtr, cbRefPtr)517+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
518 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)518 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
519 }519 }
520 520
@@ -534,7 +534,7 @@ func (x *Button) ConnectClicked(cb *func(Button)) uint32 {
534 534
535 }535 }
536 cbRefPtr := purego.NewCallback(fcb)536 cbRefPtr := purego.NewCallback(fcb)
537- glib.SaveCallback(cbPtr, cbRefPtr)537+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
538 return gobject.SignalConnect(x.GoPointer(), "clicked", cbRefPtr)538 return gobject.SignalConnect(x.GoPointer(), "clicked", cbRefPtr)
539 }539 }
540 540
M v4/gtk/gtkcalendar.go +5 -5
@@ -467,7 +467,7 @@ func (x *Calendar) ConnectDaySelected(cb *func(Calendar)) uint32 {
467 467
468 }468 }
469 cbRefPtr := purego.NewCallback(fcb)469 cbRefPtr := purego.NewCallback(fcb)
470- glib.SaveCallback(cbPtr, cbRefPtr)470+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
471 return gobject.SignalConnect(x.GoPointer(), "day-selected", cbRefPtr)471 return gobject.SignalConnect(x.GoPointer(), "day-selected", cbRefPtr)
472 }472 }
473 473
@@ -487,7 +487,7 @@ func (x *Calendar) ConnectNextMonth(cb *func(Calendar)) uint32 {
487 487
488 }488 }
489 cbRefPtr := purego.NewCallback(fcb)489 cbRefPtr := purego.NewCallback(fcb)
490- glib.SaveCallback(cbPtr, cbRefPtr)490+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
491 return gobject.SignalConnect(x.GoPointer(), "next-month", cbRefPtr)491 return gobject.SignalConnect(x.GoPointer(), "next-month", cbRefPtr)
492 }492 }
493 493
@@ -507,7 +507,7 @@ func (x *Calendar) ConnectNextYear(cb *func(Calendar)) uint32 {
507 507
508 }508 }
509 cbRefPtr := purego.NewCallback(fcb)509 cbRefPtr := purego.NewCallback(fcb)
510- glib.SaveCallback(cbPtr, cbRefPtr)510+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
511 return gobject.SignalConnect(x.GoPointer(), "next-year", cbRefPtr)511 return gobject.SignalConnect(x.GoPointer(), "next-year", cbRefPtr)
512 }512 }
513 513
@@ -527,7 +527,7 @@ func (x *Calendar) ConnectPrevMonth(cb *func(Calendar)) uint32 {
527 527
528 }528 }
529 cbRefPtr := purego.NewCallback(fcb)529 cbRefPtr := purego.NewCallback(fcb)
530- glib.SaveCallback(cbPtr, cbRefPtr)530+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
531 return gobject.SignalConnect(x.GoPointer(), "prev-month", cbRefPtr)531 return gobject.SignalConnect(x.GoPointer(), "prev-month", cbRefPtr)
532 }532 }
533 533
@@ -547,7 +547,7 @@ func (x *Calendar) ConnectPrevYear(cb *func(Calendar)) uint32 {
547 547
548 }548 }
549 cbRefPtr := purego.NewCallback(fcb)549 cbRefPtr := purego.NewCallback(fcb)
550- glib.SaveCallback(cbPtr, cbRefPtr)550+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
551 return gobject.SignalConnect(x.GoPointer(), "prev-year", cbRefPtr)551 return gobject.SignalConnect(x.GoPointer(), "prev-year", cbRefPtr)
552 }552 }
553 553
M v4/gtk/gtkcellarea.go +6 -6
@@ -1316,7 +1316,7 @@ func (x *CellArea) Foreach(CallbackVar *CellCallback, CallbackDataVar uintptr) {
1316 return cbFn(arg0, arg1)1316 return cbFn(arg0, arg1)
1317 }1317 }
1318 CallbackVarRef = purego.NewCallback(fcb)1318 CallbackVarRef = purego.NewCallback(fcb)
1319- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)1319+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
1320 }1320 }
1321 }1321 }
1322 1322
@@ -1341,7 +1341,7 @@ func (x *CellArea) ForeachAlloc(ContextVar *CellAreaContext, WidgetVar *Widget,
1341 return cbFn(arg0, arg1, arg2, arg3)1341 return cbFn(arg0, arg1, arg2, arg3)
1342 }1342 }
1343 CallbackVarRef = purego.NewCallback(fcb)1343 CallbackVarRef = purego.NewCallback(fcb)
1344- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)1344+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
1345 }1345 }
1346 }1346 }
1347 1347
@@ -1705,7 +1705,7 @@ func (x *CellArea) ConnectAddEditable(cb *func(CellArea, uintptr, uintptr, uintp
1705 1705
1706 }1706 }
1707 cbRefPtr := purego.NewCallback(fcb)1707 cbRefPtr := purego.NewCallback(fcb)
1708- glib.SaveCallback(cbPtr, cbRefPtr)1708+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1709 return gobject.SignalConnect(x.GoPointer(), "add-editable", cbRefPtr)1709 return gobject.SignalConnect(x.GoPointer(), "add-editable", cbRefPtr)
1710 }1710 }
1711 1711
@@ -1725,7 +1725,7 @@ func (x *CellArea) ConnectApplyAttributes(cb *func(CellArea, uintptr, uintptr, b
1725 1725
1726 }1726 }
1727 cbRefPtr := purego.NewCallback(fcb)1727 cbRefPtr := purego.NewCallback(fcb)
1728- glib.SaveCallback(cbPtr, cbRefPtr)1728+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1729 return gobject.SignalConnect(x.GoPointer(), "apply-attributes", cbRefPtr)1729 return gobject.SignalConnect(x.GoPointer(), "apply-attributes", cbRefPtr)
1730 }1730 }
1731 1731
@@ -1752,7 +1752,7 @@ func (x *CellArea) ConnectFocusChanged(cb *func(CellArea, uintptr, string)) uint
1752 1752
1753 }1753 }
1754 cbRefPtr := purego.NewCallback(fcb)1754 cbRefPtr := purego.NewCallback(fcb)
1755- glib.SaveCallback(cbPtr, cbRefPtr)1755+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1756 return gobject.SignalConnect(x.GoPointer(), "focus-changed", cbRefPtr)1756 return gobject.SignalConnect(x.GoPointer(), "focus-changed", cbRefPtr)
1757 }1757 }
1758 1758
@@ -1773,7 +1773,7 @@ func (x *CellArea) ConnectRemoveEditable(cb *func(CellArea, uintptr, uintptr)) u
1773 1773
1774 }1774 }
1775 cbRefPtr := purego.NewCallback(fcb)1775 cbRefPtr := purego.NewCallback(fcb)
1776- glib.SaveCallback(cbPtr, cbRefPtr)1776+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1777 return gobject.SignalConnect(x.GoPointer(), "remove-editable", cbRefPtr)1777 return gobject.SignalConnect(x.GoPointer(), "remove-editable", cbRefPtr)
1778 }1778 }
1779 1779
M v4/gtk/gtkcellrenderer.go +2 -2
@@ -964,7 +964,7 @@ func (x *CellRenderer) ConnectEditingCanceled(cb *func(CellRenderer)) uint32 {
964 964
965 }965 }
966 cbRefPtr := purego.NewCallback(fcb)966 cbRefPtr := purego.NewCallback(fcb)
967- glib.SaveCallback(cbPtr, cbRefPtr)967+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
968 return gobject.SignalConnect(x.GoPointer(), "editing-canceled", cbRefPtr)968 return gobject.SignalConnect(x.GoPointer(), "editing-canceled", cbRefPtr)
969 }969 }
970 970
@@ -1016,7 +1016,7 @@ func (x *CellRenderer) ConnectEditingStarted(cb *func(CellRenderer, uintptr, str
1016 1016
1017 }1017 }
1018 cbRefPtr := purego.NewCallback(fcb)1018 cbRefPtr := purego.NewCallback(fcb)
1019- glib.SaveCallback(cbPtr, cbRefPtr)1019+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1020 return gobject.SignalConnect(x.GoPointer(), "editing-started", cbRefPtr)1020 return gobject.SignalConnect(x.GoPointer(), "editing-started", cbRefPtr)
1021 }1021 }
1022 1022
M v4/gtk/gtkcellrendereraccel.go +2 -2
@@ -132,7 +132,7 @@ func (x *CellRendererAccel) ConnectAccelCleared(cb *func(CellRendererAccel, stri
132 132
133 }133 }
134 cbRefPtr := purego.NewCallback(fcb)134 cbRefPtr := purego.NewCallback(fcb)
135- glib.SaveCallback(cbPtr, cbRefPtr)135+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
136 return gobject.SignalConnect(x.GoPointer(), "accel-cleared", cbRefPtr)136 return gobject.SignalConnect(x.GoPointer(), "accel-cleared", cbRefPtr)
137 }137 }
138 138
@@ -152,7 +152,7 @@ func (x *CellRendererAccel) ConnectAccelEdited(cb *func(CellRendererAccel, strin
152 152
153 }153 }
154 cbRefPtr := purego.NewCallback(fcb)154 cbRefPtr := purego.NewCallback(fcb)
155- glib.SaveCallback(cbPtr, cbRefPtr)155+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
156 return gobject.SignalConnect(x.GoPointer(), "accel-edited", cbRefPtr)156 return gobject.SignalConnect(x.GoPointer(), "accel-edited", cbRefPtr)
157 }157 }
158 158
M v4/gtk/gtkcellrenderercombo.go +1 -1
@@ -151,7 +151,7 @@ func (x *CellRendererCombo) ConnectChanged(cb *func(CellRendererCombo, string, u
151 151
152 }152 }
153 cbRefPtr := purego.NewCallback(fcb)153 cbRefPtr := purego.NewCallback(fcb)
154- glib.SaveCallback(cbPtr, cbRefPtr)154+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
155 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)155 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
156 }156 }
157 157
M v4/gtk/gtkcellrenderertext.go +1 -1
@@ -741,7 +741,7 @@ func (x *CellRendererText) ConnectEdited(cb *func(CellRendererText, string, stri
741 741
742 }742 }
743 cbRefPtr := purego.NewCallback(fcb)743 cbRefPtr := purego.NewCallback(fcb)
744- glib.SaveCallback(cbPtr, cbRefPtr)744+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
745 return gobject.SignalConnect(x.GoPointer(), "edited", cbRefPtr)745 return gobject.SignalConnect(x.GoPointer(), "edited", cbRefPtr)
746 }746 }
747 747
M v4/gtk/gtkcellrenderertoggle.go +1 -1
@@ -212,7 +212,7 @@ func (x *CellRendererToggle) ConnectToggled(cb *func(CellRendererToggle, string)
212 212
213 }213 }
214 cbRefPtr := purego.NewCallback(fcb)214 cbRefPtr := purego.NewCallback(fcb)
215- glib.SaveCallback(cbPtr, cbRefPtr)215+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
216 return gobject.SignalConnect(x.GoPointer(), "toggled", cbRefPtr)216 return gobject.SignalConnect(x.GoPointer(), "toggled", cbRefPtr)
217 }217 }
218 218
M v4/gtk/gtkcheckbutton.go +2 -2
@@ -487,7 +487,7 @@ func (x *CheckButton) ConnectActivate(cb *func(CheckButton)) uint32 {
487 487
488 }488 }
489 cbRefPtr := purego.NewCallback(fcb)489 cbRefPtr := purego.NewCallback(fcb)
490- glib.SaveCallback(cbPtr, cbRefPtr)490+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
491 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)491 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
492 }492 }
493 493
@@ -508,7 +508,7 @@ func (x *CheckButton) ConnectToggled(cb *func(CheckButton)) uint32 {
508 508
509 }509 }
510 cbRefPtr := purego.NewCallback(fcb)510 cbRefPtr := purego.NewCallback(fcb)
511- glib.SaveCallback(cbPtr, cbRefPtr)511+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
512 return gobject.SignalConnect(x.GoPointer(), "toggled", cbRefPtr)512 return gobject.SignalConnect(x.GoPointer(), "toggled", cbRefPtr)
513 }513 }
514 514
M v4/gtk/gtkcolorbutton.go +2 -2
@@ -220,7 +220,7 @@ func (x *ColorButton) ConnectActivate(cb *func(ColorButton)) uint32 {
220 220
221 }221 }
222 cbRefPtr := purego.NewCallback(fcb)222 cbRefPtr := purego.NewCallback(fcb)
223- glib.SaveCallback(cbPtr, cbRefPtr)223+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
224 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)224 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
225 }225 }
226 226
@@ -247,7 +247,7 @@ func (x *ColorButton) ConnectColorSet(cb *func(ColorButton)) uint32 {
247 247
248 }248 }
249 cbRefPtr := purego.NewCallback(fcb)249 cbRefPtr := purego.NewCallback(fcb)
250- glib.SaveCallback(cbPtr, cbRefPtr)250+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
251 return gobject.SignalConnect(x.GoPointer(), "color-set", cbRefPtr)251 return gobject.SignalConnect(x.GoPointer(), "color-set", cbRefPtr)
252 }252 }
253 253
M v4/gtk/gtkcolordialog.go +1 -1
@@ -83,7 +83,7 @@ func (x *ColorDialog) ChooseRgba(ParentVar *Window, InitialColorVar *gdk.RGBA, C
83 cbFn(arg0, arg1, arg2)83 cbFn(arg0, arg1, arg2)
84 }84 }
85 CallbackVarRef = purego.NewCallback(fcb)85 CallbackVarRef = purego.NewCallback(fcb)
86- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)86+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
87 }87 }
88 }88 }
89 89
M v4/gtk/gtkcolordialogbutton.go +1 -1
@@ -196,7 +196,7 @@ func (x *ColorDialogButton) ConnectActivate(cb *func(ColorDialogButton)) uint32
196 196
197 }197 }
198 cbRefPtr := purego.NewCallback(fcb)198 cbRefPtr := purego.NewCallback(fcb)
199- glib.SaveCallback(cbPtr, cbRefPtr)199+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
200 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)200 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
201 }201 }
202 202
M v4/gtk/gtkcolumnview.go +1 -1
@@ -569,7 +569,7 @@ func (x *ColumnView) ConnectActivate(cb *func(ColumnView, uint)) uint32 {
569 569
570 }570 }
571 cbRefPtr := purego.NewCallback(fcb)571 cbRefPtr := purego.NewCallback(fcb)
572- glib.SaveCallback(cbPtr, cbRefPtr)572+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
573 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)573 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
574 }574 }
575 575
M v4/gtk/gtkcombobox.go +8 -8
@@ -591,7 +591,7 @@ func (x *ComboBox) SetRowSeparatorFunc(FuncVar *TreeViewRowSeparatorFunc, DataVa
591 return cbFn(arg0, arg1, arg2)591 return cbFn(arg0, arg1, arg2)
592 }592 }
593 FuncVarRef = purego.NewCallback(fcb)593 FuncVarRef = purego.NewCallback(fcb)
594- glib.SaveCallback(FuncVarPtr, FuncVarRef)594+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
595 }595 }
596 }596 }
597 597
@@ -606,7 +606,7 @@ func (x *ComboBox) SetRowSeparatorFunc(FuncVar *TreeViewRowSeparatorFunc, DataVa
606 cbFn(arg0)606 cbFn(arg0)
607 }607 }
608 DestroyVarRef = purego.NewCallback(fcb)608 DestroyVarRef = purego.NewCallback(fcb)
609- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)609+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
610 }610 }
611 }611 }
612 612
@@ -794,7 +794,7 @@ func (x *ComboBox) ConnectActivate(cb *func(ComboBox)) uint32 {
794 794
795 }795 }
796 cbRefPtr := purego.NewCallback(fcb)796 cbRefPtr := purego.NewCallback(fcb)
797- glib.SaveCallback(cbPtr, cbRefPtr)797+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
798 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)798 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
799 }799 }
800 800
@@ -818,7 +818,7 @@ func (x *ComboBox) ConnectChanged(cb *func(ComboBox)) uint32 {
818 818
819 }819 }
820 cbRefPtr := purego.NewCallback(fcb)820 cbRefPtr := purego.NewCallback(fcb)
821- glib.SaveCallback(cbPtr, cbRefPtr)821+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
822 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)822 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
823 }823 }
824 824
@@ -871,7 +871,7 @@ func (x *ComboBox) ConnectFormatEntryText(cb *func(ComboBox, string) string) uin
871 871
872 }872 }
873 cbRefPtr := purego.NewCallback(fcb)873 cbRefPtr := purego.NewCallback(fcb)
874- glib.SaveCallback(cbPtr, cbRefPtr)874+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
875 return gobject.SignalConnect(x.GoPointer(), "format-entry-text", cbRefPtr)875 return gobject.SignalConnect(x.GoPointer(), "format-entry-text", cbRefPtr)
876 }876 }
877 877
@@ -893,7 +893,7 @@ func (x *ComboBox) ConnectMoveActive(cb *func(ComboBox, ScrollType)) uint32 {
893 893
894 }894 }
895 cbRefPtr := purego.NewCallback(fcb)895 cbRefPtr := purego.NewCallback(fcb)
896- glib.SaveCallback(cbPtr, cbRefPtr)896+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
897 return gobject.SignalConnect(x.GoPointer(), "move-active", cbRefPtr)897 return gobject.SignalConnect(x.GoPointer(), "move-active", cbRefPtr)
898 }898 }
899 899
@@ -917,7 +917,7 @@ func (x *ComboBox) ConnectPopdown(cb *func(ComboBox) bool) uint32 {
917 917
918 }918 }
919 cbRefPtr := purego.NewCallback(fcb)919 cbRefPtr := purego.NewCallback(fcb)
920- glib.SaveCallback(cbPtr, cbRefPtr)920+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
921 return gobject.SignalConnect(x.GoPointer(), "popdown", cbRefPtr)921 return gobject.SignalConnect(x.GoPointer(), "popdown", cbRefPtr)
922 }922 }
923 923
@@ -941,7 +941,7 @@ func (x *ComboBox) ConnectPopup(cb *func(ComboBox)) uint32 {
941 941
942 }942 }
943 cbRefPtr := purego.NewCallback(fcb)943 cbRefPtr := purego.NewCallback(fcb)
944- glib.SaveCallback(cbPtr, cbRefPtr)944+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
945 return gobject.SignalConnect(x.GoPointer(), "popup", cbRefPtr)945 return gobject.SignalConnect(x.GoPointer(), "popup", cbRefPtr)
946 }946 }
947 947
M v4/gtk/gtkcssprovider.go +1 -1
@@ -235,7 +235,7 @@ func (x *CssProvider) ConnectParsingError(cb *func(CssProvider, uintptr, uintptr
235 235
236 }236 }
237 cbRefPtr := purego.NewCallback(fcb)237 cbRefPtr := purego.NewCallback(fcb)
238- glib.SaveCallback(cbPtr, cbRefPtr)238+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
239 return gobject.SignalConnect(x.GoPointer(), "parsing-error", cbRefPtr)239 return gobject.SignalConnect(x.GoPointer(), "parsing-error", cbRefPtr)
240 }240 }
241 241
M v4/gtk/gtkcustomfilter.go +4 -4
@@ -66,7 +66,7 @@ func NewCustomFilter(MatchFuncVar *CustomFilterFunc, UserDataVar uintptr, UserDe
66 return cbFn(arg0, arg1)66 return cbFn(arg0, arg1)
67 }67 }
68 MatchFuncVarRef = purego.NewCallback(fcb)68 MatchFuncVarRef = purego.NewCallback(fcb)
69- glib.SaveCallback(MatchFuncVarPtr, MatchFuncVarRef)69+ glib.SaveCallbackWithClosure(MatchFuncVarPtr, MatchFuncVarRef, MatchFuncVar)
70 }70 }
71 }71 }
72 72
@@ -81,7 +81,7 @@ func NewCustomFilter(MatchFuncVar *CustomFilterFunc, UserDataVar uintptr, UserDe
81 cbFn(arg0)81 cbFn(arg0)
82 }82 }
83 UserDestroyVarRef = purego.NewCallback(fcb)83 UserDestroyVarRef = purego.NewCallback(fcb)
84- glib.SaveCallback(UserDestroyVarPtr, UserDestroyVarRef)84+ glib.SaveCallbackWithClosure(UserDestroyVarPtr, UserDestroyVarRef, UserDestroyVar)
85 }85 }
86 }86 }
87 87
@@ -119,7 +119,7 @@ func (x *CustomFilter) SetFilterFunc(MatchFuncVar *CustomFilterFunc, UserDataVar
119 return cbFn(arg0, arg1)119 return cbFn(arg0, arg1)
120 }120 }
121 MatchFuncVarRef = purego.NewCallback(fcb)121 MatchFuncVarRef = purego.NewCallback(fcb)
122- glib.SaveCallback(MatchFuncVarPtr, MatchFuncVarRef)122+ glib.SaveCallbackWithClosure(MatchFuncVarPtr, MatchFuncVarRef, MatchFuncVar)
123 }123 }
124 }124 }
125 125
@@ -134,7 +134,7 @@ func (x *CustomFilter) SetFilterFunc(MatchFuncVar *CustomFilterFunc, UserDataVar
134 cbFn(arg0)134 cbFn(arg0)
135 }135 }
136 UserDestroyVarRef = purego.NewCallback(fcb)136 UserDestroyVarRef = purego.NewCallback(fcb)
137- glib.SaveCallback(UserDestroyVarPtr, UserDestroyVarRef)137+ glib.SaveCallbackWithClosure(UserDestroyVarPtr, UserDestroyVarRef, UserDestroyVar)
138 }138 }
139 }139 }
140 140
M v4/gtk/gtkcustomlayout.go +3 -3
@@ -73,7 +73,7 @@ func NewCustomLayout(RequestModeVar *CustomRequestModeFunc, MeasureVar *CustomMe
73 return cbFn(arg0)73 return cbFn(arg0)
74 }74 }
75 RequestModeVarRef = purego.NewCallback(fcb)75 RequestModeVarRef = purego.NewCallback(fcb)
76- glib.SaveCallback(RequestModeVarPtr, RequestModeVarRef)76+ glib.SaveCallbackWithClosure(RequestModeVarPtr, RequestModeVarRef, RequestModeVar)
77 }77 }
78 }78 }
79 79
@@ -88,7 +88,7 @@ func NewCustomLayout(RequestModeVar *CustomRequestModeFunc, MeasureVar *CustomMe
88 cbFn(arg0, arg1, arg2, arg3, arg4, arg5, arg6)88 cbFn(arg0, arg1, arg2, arg3, arg4, arg5, arg6)
89 }89 }
90 MeasureVarRef = purego.NewCallback(fcb)90 MeasureVarRef = purego.NewCallback(fcb)
91- glib.SaveCallback(MeasureVarPtr, MeasureVarRef)91+ glib.SaveCallbackWithClosure(MeasureVarPtr, MeasureVarRef, MeasureVar)
92 }92 }
93 }93 }
94 94
@@ -103,7 +103,7 @@ func NewCustomLayout(RequestModeVar *CustomRequestModeFunc, MeasureVar *CustomMe
103 cbFn(arg0, arg1, arg2, arg3)103 cbFn(arg0, arg1, arg2, arg3)
104 }104 }
105 AllocateVarRef = purego.NewCallback(fcb)105 AllocateVarRef = purego.NewCallback(fcb)
106- glib.SaveCallback(AllocateVarPtr, AllocateVarRef)106+ glib.SaveCallbackWithClosure(AllocateVarPtr, AllocateVarRef, AllocateVar)
107 }107 }
108 }108 }
109 109
M v4/gtk/gtkcustomsorter.go +4 -4
@@ -58,7 +58,7 @@ func NewCustomSorter(SortFuncVar *glib.CompareDataFunc, UserDataVar uintptr, Use
58 return cbFn(arg0, arg1, arg2)58 return cbFn(arg0, arg1, arg2)
59 }59 }
60 SortFuncVarRef = purego.NewCallback(fcb)60 SortFuncVarRef = purego.NewCallback(fcb)
61- glib.SaveCallback(SortFuncVarPtr, SortFuncVarRef)61+ glib.SaveCallbackWithClosure(SortFuncVarPtr, SortFuncVarRef, SortFuncVar)
62 }62 }
63 }63 }
64 64
@@ -73,7 +73,7 @@ func NewCustomSorter(SortFuncVar *glib.CompareDataFunc, UserDataVar uintptr, Use
73 cbFn(arg0)73 cbFn(arg0)
74 }74 }
75 UserDestroyVarRef = purego.NewCallback(fcb)75 UserDestroyVarRef = purego.NewCallback(fcb)
76- glib.SaveCallback(UserDestroyVarPtr, UserDestroyVarRef)76+ glib.SaveCallbackWithClosure(UserDestroyVarPtr, UserDestroyVarRef, UserDestroyVar)
77 }77 }
78 }78 }
79 79
@@ -111,7 +111,7 @@ func (x *CustomSorter) SetSortFunc(SortFuncVar *glib.CompareDataFunc, UserDataVa
111 return cbFn(arg0, arg1, arg2)111 return cbFn(arg0, arg1, arg2)
112 }112 }
113 SortFuncVarRef = purego.NewCallback(fcb)113 SortFuncVarRef = purego.NewCallback(fcb)
114- glib.SaveCallback(SortFuncVarPtr, SortFuncVarRef)114+ glib.SaveCallbackWithClosure(SortFuncVarPtr, SortFuncVarRef, SortFuncVar)
115 }115 }
116 }116 }
117 117
@@ -126,7 +126,7 @@ func (x *CustomSorter) SetSortFunc(SortFuncVar *glib.CompareDataFunc, UserDataVa
126 cbFn(arg0)126 cbFn(arg0)
127 }127 }
128 UserDestroyVarRef = purego.NewCallback(fcb)128 UserDestroyVarRef = purego.NewCallback(fcb)
129- glib.SaveCallback(UserDestroyVarPtr, UserDestroyVarRef)129+ glib.SaveCallbackWithClosure(UserDestroyVarPtr, UserDestroyVarRef, UserDestroyVar)
130 }130 }
131 }131 }
132 132
M v4/gtk/gtkdialog.go +2 -2
@@ -601,7 +601,7 @@ func (x *Dialog) ConnectClose(cb *func(Dialog)) uint32 {
601 601
602 }602 }
603 cbRefPtr := purego.NewCallback(fcb)603 cbRefPtr := purego.NewCallback(fcb)
604- glib.SaveCallback(cbPtr, cbRefPtr)604+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
605 return gobject.SignalConnect(x.GoPointer(), "close", cbRefPtr)605 return gobject.SignalConnect(x.GoPointer(), "close", cbRefPtr)
606 }606 }
607 607
@@ -626,7 +626,7 @@ func (x *Dialog) ConnectResponse(cb *func(Dialog, int)) uint32 {
626 626
627 }627 }
628 cbRefPtr := purego.NewCallback(fcb)628 cbRefPtr := purego.NewCallback(fcb)
629- glib.SaveCallback(cbPtr, cbRefPtr)629+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
630 return gobject.SignalConnect(x.GoPointer(), "response", cbRefPtr)630 return gobject.SignalConnect(x.GoPointer(), "response", cbRefPtr)
631 }631 }
632 632
M v4/gtk/gtkdragsource.go +4 -4
@@ -273,7 +273,7 @@ func (x *DragSource) ConnectDragBegin(cb *func(DragSource, uintptr)) uint32 {
273 273
274 }274 }
275 cbRefPtr := purego.NewCallback(fcb)275 cbRefPtr := purego.NewCallback(fcb)
276- glib.SaveCallback(cbPtr, cbRefPtr)276+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
277 return gobject.SignalConnect(x.GoPointer(), "drag-begin", cbRefPtr)277 return gobject.SignalConnect(x.GoPointer(), "drag-begin", cbRefPtr)
278 }278 }
279 279
@@ -297,7 +297,7 @@ func (x *DragSource) ConnectDragCancel(cb *func(DragSource, uintptr, gdk.DragCan
297 297
298 }298 }
299 cbRefPtr := purego.NewCallback(fcb)299 cbRefPtr := purego.NewCallback(fcb)
300- glib.SaveCallback(cbPtr, cbRefPtr)300+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
301 return gobject.SignalConnect(x.GoPointer(), "drag-cancel", cbRefPtr)301 return gobject.SignalConnect(x.GoPointer(), "drag-cancel", cbRefPtr)
302 }302 }
303 303
@@ -321,7 +321,7 @@ func (x *DragSource) ConnectDragEnd(cb *func(DragSource, uintptr, bool)) uint32
321 321
322 }322 }
323 cbRefPtr := purego.NewCallback(fcb)323 cbRefPtr := purego.NewCallback(fcb)
324- glib.SaveCallback(cbPtr, cbRefPtr)324+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
325 return gobject.SignalConnect(x.GoPointer(), "drag-end", cbRefPtr)325 return gobject.SignalConnect(x.GoPointer(), "drag-end", cbRefPtr)
326 }326 }
327 327
@@ -347,7 +347,7 @@ func (x *DragSource) ConnectPrepare(cb *func(DragSource, float64, float64) gdk.C
347 347
348 }348 }
349 cbRefPtr := purego.NewCallback(fcb)349 cbRefPtr := purego.NewCallback(fcb)
350- glib.SaveCallback(cbPtr, cbRefPtr)350+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
351 return gobject.SignalConnect(x.GoPointer(), "prepare", cbRefPtr)351 return gobject.SignalConnect(x.GoPointer(), "prepare", cbRefPtr)
352 }352 }
353 353
M v4/gtk/gtkdrawingarea.go +3 -3
@@ -257,7 +257,7 @@ func (x *DrawingArea) SetDrawFunc(DrawFuncVar *DrawingAreaDrawFunc, UserDataVar
257 cbFn(arg0, arg1, arg2, arg3, arg4)257 cbFn(arg0, arg1, arg2, arg3, arg4)
258 }258 }
259 DrawFuncVarRef = purego.NewCallback(fcb)259 DrawFuncVarRef = purego.NewCallback(fcb)
260- glib.SaveCallback(DrawFuncVarPtr, DrawFuncVarRef)260+ glib.SaveCallbackWithClosure(DrawFuncVarPtr, DrawFuncVarRef, DrawFuncVar)
261 }261 }
262 }262 }
263 263
@@ -272,7 +272,7 @@ func (x *DrawingArea) SetDrawFunc(DrawFuncVar *DrawingAreaDrawFunc, UserDataVar
272 cbFn(arg0)272 cbFn(arg0)
273 }273 }
274 DestroyVarRef = purego.NewCallback(fcb)274 DestroyVarRef = purego.NewCallback(fcb)
275- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)275+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
276 }276 }
277 }277 }
278 278
@@ -345,7 +345,7 @@ func (x *DrawingArea) ConnectResize(cb *func(DrawingArea, int, int)) uint32 {
345 345
346 }346 }
347 cbRefPtr := purego.NewCallback(fcb)347 cbRefPtr := purego.NewCallback(fcb)
348- glib.SaveCallback(cbPtr, cbRefPtr)348+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
349 return gobject.SignalConnect(x.GoPointer(), "resize", cbRefPtr)349 return gobject.SignalConnect(x.GoPointer(), "resize", cbRefPtr)
350 }350 }
351 351
M v4/gtk/gtkdropcontrollermotion.go +3 -3
@@ -158,7 +158,7 @@ func (x *DropControllerMotion) ConnectEnter(cb *func(DropControllerMotion, float
158 158
159 }159 }
160 cbRefPtr := purego.NewCallback(fcb)160 cbRefPtr := purego.NewCallback(fcb)
161- glib.SaveCallback(cbPtr, cbRefPtr)161+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
162 return gobject.SignalConnect(x.GoPointer(), "enter", cbRefPtr)162 return gobject.SignalConnect(x.GoPointer(), "enter", cbRefPtr)
163 }163 }
164 164
@@ -178,7 +178,7 @@ func (x *DropControllerMotion) ConnectLeave(cb *func(DropControllerMotion)) uint
178 178
179 }179 }
180 cbRefPtr := purego.NewCallback(fcb)180 cbRefPtr := purego.NewCallback(fcb)
181- glib.SaveCallback(cbPtr, cbRefPtr)181+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
182 return gobject.SignalConnect(x.GoPointer(), "leave", cbRefPtr)182 return gobject.SignalConnect(x.GoPointer(), "leave", cbRefPtr)
183 }183 }
184 184
@@ -198,7 +198,7 @@ func (x *DropControllerMotion) ConnectMotion(cb *func(DropControllerMotion, floa
198 198
199 }199 }
200 cbRefPtr := purego.NewCallback(fcb)200 cbRefPtr := purego.NewCallback(fcb)
201- glib.SaveCallback(cbPtr, cbRefPtr)201+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
202 return gobject.SignalConnect(x.GoPointer(), "motion", cbRefPtr)202 return gobject.SignalConnect(x.GoPointer(), "motion", cbRefPtr)
203 }203 }
204 204
M v4/gtk/gtkdropdown.go +1 -1
@@ -468,7 +468,7 @@ func (x *DropDown) ConnectActivate(cb *func(DropDown)) uint32 {
468 468
469 }469 }
470 cbRefPtr := purego.NewCallback(fcb)470 cbRefPtr := purego.NewCallback(fcb)
471- glib.SaveCallback(cbPtr, cbRefPtr)471+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
472 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)472 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
473 }473 }
474 474
M v4/gtk/gtkdroptarget.go +5 -5
@@ -393,7 +393,7 @@ func (x *DropTarget) ConnectAccept(cb *func(DropTarget, uintptr) bool) uint32 {
393 393
394 }394 }
395 cbRefPtr := purego.NewCallback(fcb)395 cbRefPtr := purego.NewCallback(fcb)
396- glib.SaveCallback(cbPtr, cbRefPtr)396+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
397 return gobject.SignalConnect(x.GoPointer(), "accept", cbRefPtr)397 return gobject.SignalConnect(x.GoPointer(), "accept", cbRefPtr)
398 }398 }
399 399
@@ -421,7 +421,7 @@ func (x *DropTarget) ConnectDrop(cb *func(DropTarget, uintptr, float64, float64)
421 421
422 }422 }
423 cbRefPtr := purego.NewCallback(fcb)423 cbRefPtr := purego.NewCallback(fcb)
424- glib.SaveCallback(cbPtr, cbRefPtr)424+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
425 return gobject.SignalConnect(x.GoPointer(), "drop", cbRefPtr)425 return gobject.SignalConnect(x.GoPointer(), "drop", cbRefPtr)
426 }426 }
427 427
@@ -443,7 +443,7 @@ func (x *DropTarget) ConnectEnter(cb *func(DropTarget, float64, float64) gdk.Dra
443 443
444 }444 }
445 cbRefPtr := purego.NewCallback(fcb)445 cbRefPtr := purego.NewCallback(fcb)
446- glib.SaveCallback(cbPtr, cbRefPtr)446+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
447 return gobject.SignalConnect(x.GoPointer(), "enter", cbRefPtr)447 return gobject.SignalConnect(x.GoPointer(), "enter", cbRefPtr)
448 }448 }
449 449
@@ -466,7 +466,7 @@ func (x *DropTarget) ConnectLeave(cb *func(DropTarget)) uint32 {
466 466
467 }467 }
468 cbRefPtr := purego.NewCallback(fcb)468 cbRefPtr := purego.NewCallback(fcb)
469- glib.SaveCallback(cbPtr, cbRefPtr)469+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
470 return gobject.SignalConnect(x.GoPointer(), "leave", cbRefPtr)470 return gobject.SignalConnect(x.GoPointer(), "leave", cbRefPtr)
471 }471 }
472 472
@@ -486,7 +486,7 @@ func (x *DropTarget) ConnectMotion(cb *func(DropTarget, float64, float64) gdk.Dr
486 486
487 }487 }
488 cbRefPtr := purego.NewCallback(fcb)488 cbRefPtr := purego.NewCallback(fcb)
489- glib.SaveCallback(cbPtr, cbRefPtr)489+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
490 return gobject.SignalConnect(x.GoPointer(), "motion", cbRefPtr)490 return gobject.SignalConnect(x.GoPointer(), "motion", cbRefPtr)
491 }491 }
492 492
M v4/gtk/gtkdroptargetasync.go +5 -5
@@ -197,7 +197,7 @@ func (x *DropTargetAsync) ConnectAccept(cb *func(DropTargetAsync, uintptr) bool)
197 197
198 }198 }
199 cbRefPtr := purego.NewCallback(fcb)199 cbRefPtr := purego.NewCallback(fcb)
200- glib.SaveCallback(cbPtr, cbRefPtr)200+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
201 return gobject.SignalConnect(x.GoPointer(), "accept", cbRefPtr)201 return gobject.SignalConnect(x.GoPointer(), "accept", cbRefPtr)
202 }202 }
203 203
@@ -219,7 +219,7 @@ func (x *DropTargetAsync) ConnectDragEnter(cb *func(DropTargetAsync, uintptr, fl
219 219
220 }220 }
221 cbRefPtr := purego.NewCallback(fcb)221 cbRefPtr := purego.NewCallback(fcb)
222- glib.SaveCallback(cbPtr, cbRefPtr)222+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
223 return gobject.SignalConnect(x.GoPointer(), "drag-enter", cbRefPtr)223 return gobject.SignalConnect(x.GoPointer(), "drag-enter", cbRefPtr)
224 }224 }
225 225
@@ -242,7 +242,7 @@ func (x *DropTargetAsync) ConnectDragLeave(cb *func(DropTargetAsync, uintptr)) u
242 242
243 }243 }
244 cbRefPtr := purego.NewCallback(fcb)244 cbRefPtr := purego.NewCallback(fcb)
245- glib.SaveCallback(cbPtr, cbRefPtr)245+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
246 return gobject.SignalConnect(x.GoPointer(), "drag-leave", cbRefPtr)246 return gobject.SignalConnect(x.GoPointer(), "drag-leave", cbRefPtr)
247 }247 }
248 248
@@ -262,7 +262,7 @@ func (x *DropTargetAsync) ConnectDragMotion(cb *func(DropTargetAsync, uintptr, f
262 262
263 }263 }
264 cbRefPtr := purego.NewCallback(fcb)264 cbRefPtr := purego.NewCallback(fcb)
265- glib.SaveCallback(cbPtr, cbRefPtr)265+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
266 return gobject.SignalConnect(x.GoPointer(), "drag-motion", cbRefPtr)266 return gobject.SignalConnect(x.GoPointer(), "drag-motion", cbRefPtr)
267 }267 }
268 268
@@ -295,7 +295,7 @@ func (x *DropTargetAsync) ConnectDrop(cb *func(DropTargetAsync, uintptr, float64
295 295
296 }296 }
297 cbRefPtr := purego.NewCallback(fcb)297 cbRefPtr := purego.NewCallback(fcb)
298- glib.SaveCallback(cbPtr, cbRefPtr)298+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
299 return gobject.SignalConnect(x.GoPointer(), "drop", cbRefPtr)299 return gobject.SignalConnect(x.GoPointer(), "drop", cbRefPtr)
300 }300 }
301 301
M v4/gtk/gtkemojichooser.go +1 -1
@@ -129,7 +129,7 @@ func (x *EmojiChooser) ConnectEmojiPicked(cb *func(EmojiChooser, string)) uint32
129 129
130 }130 }
131 cbRefPtr := purego.NewCallback(fcb)131 cbRefPtr := purego.NewCallback(fcb)
132- glib.SaveCallback(cbPtr, cbRefPtr)132+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
133 return gobject.SignalConnect(x.GoPointer(), "emoji-picked", cbRefPtr)133 return gobject.SignalConnect(x.GoPointer(), "emoji-picked", cbRefPtr)
134 }134 }
135 135
M v4/gtk/gtkentry.go +3 -3
@@ -1700,7 +1700,7 @@ func (x *Entry) ConnectActivate(cb *func(Entry)) uint32 {
1700 1700
1701 }1701 }
1702 cbRefPtr := purego.NewCallback(fcb)1702 cbRefPtr := purego.NewCallback(fcb)
1703- glib.SaveCallback(cbPtr, cbRefPtr)1703+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1704 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)1704 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
1705 }1705 }
1706 1706
@@ -1720,7 +1720,7 @@ func (x *Entry) ConnectIconPress(cb *func(Entry, EntryIconPosition)) uint32 {
1720 1720
1721 }1721 }
1722 cbRefPtr := purego.NewCallback(fcb)1722 cbRefPtr := purego.NewCallback(fcb)
1723- glib.SaveCallback(cbPtr, cbRefPtr)1723+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1724 return gobject.SignalConnect(x.GoPointer(), "icon-press", cbRefPtr)1724 return gobject.SignalConnect(x.GoPointer(), "icon-press", cbRefPtr)
1725 }1725 }
1726 1726
@@ -1741,7 +1741,7 @@ func (x *Entry) ConnectIconRelease(cb *func(Entry, EntryIconPosition)) uint32 {
1741 1741
1742 }1742 }
1743 cbRefPtr := purego.NewCallback(fcb)1743 cbRefPtr := purego.NewCallback(fcb)
1744- glib.SaveCallback(cbPtr, cbRefPtr)1744+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1745 return gobject.SignalConnect(x.GoPointer(), "icon-release", cbRefPtr)1745 return gobject.SignalConnect(x.GoPointer(), "icon-release", cbRefPtr)
1746 }1746 }
1747 1747
M v4/gtk/gtkentrybuffer.go +2 -2
@@ -621,7 +621,7 @@ func (x *EntryBuffer) ConnectDeletedText(cb *func(EntryBuffer, uint, uint)) uint
621 621
622 }622 }
623 cbRefPtr := purego.NewCallback(fcb)623 cbRefPtr := purego.NewCallback(fcb)
624- glib.SaveCallback(cbPtr, cbRefPtr)624+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
625 return gobject.SignalConnect(x.GoPointer(), "deleted-text", cbRefPtr)625 return gobject.SignalConnect(x.GoPointer(), "deleted-text", cbRefPtr)
626 }626 }
627 627
@@ -641,7 +641,7 @@ func (x *EntryBuffer) ConnectInsertedText(cb *func(EntryBuffer, uint, string, ui
641 641
642 }642 }
643 cbRefPtr := purego.NewCallback(fcb)643 cbRefPtr := purego.NewCallback(fcb)
644- glib.SaveCallback(cbPtr, cbRefPtr)644+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
645 return gobject.SignalConnect(x.GoPointer(), "inserted-text", cbRefPtr)645 return gobject.SignalConnect(x.GoPointer(), "inserted-text", cbRefPtr)
646 }646 }
647 647
M v4/gtk/gtkentrycompletion.go +6 -6
@@ -305,7 +305,7 @@ func (x *EntryCompletion) SetMatchFunc(FuncVar *EntryCompletionMatchFunc, FuncDa
305 return cbFn(arg0, arg1, arg2, arg3)305 return cbFn(arg0, arg1, arg2, arg3)
306 }306 }
307 FuncVarRef = purego.NewCallback(fcb)307 FuncVarRef = purego.NewCallback(fcb)
308- glib.SaveCallback(FuncVarPtr, FuncVarRef)308+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
309 }309 }
310 }310 }
311 311
@@ -320,7 +320,7 @@ func (x *EntryCompletion) SetMatchFunc(FuncVar *EntryCompletionMatchFunc, FuncDa
320 cbFn(arg0)320 cbFn(arg0)
321 }321 }
322 FuncNotifyVarRef = purego.NewCallback(fcb)322 FuncNotifyVarRef = purego.NewCallback(fcb)
323- glib.SaveCallback(FuncNotifyVarPtr, FuncNotifyVarRef)323+ glib.SaveCallbackWithClosure(FuncNotifyVarPtr, FuncNotifyVarRef, FuncNotifyVar)
324 }324 }
325 }325 }
326 326
@@ -585,7 +585,7 @@ func (x *EntryCompletion) ConnectCursorOnMatch(cb *func(EntryCompletion, uintptr
585 585
586 }586 }
587 cbRefPtr := purego.NewCallback(fcb)587 cbRefPtr := purego.NewCallback(fcb)
588- glib.SaveCallback(cbPtr, cbRefPtr)588+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
589 return gobject.SignalConnect(x.GoPointer(), "cursor-on-match", cbRefPtr)589 return gobject.SignalConnect(x.GoPointer(), "cursor-on-match", cbRefPtr)
590 }590 }
591 591
@@ -613,7 +613,7 @@ func (x *EntryCompletion) ConnectInsertPrefix(cb *func(EntryCompletion, string)
613 613
614 }614 }
615 cbRefPtr := purego.NewCallback(fcb)615 cbRefPtr := purego.NewCallback(fcb)
616- glib.SaveCallback(cbPtr, cbRefPtr)616+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
617 return gobject.SignalConnect(x.GoPointer(), "insert-prefix", cbRefPtr)617 return gobject.SignalConnect(x.GoPointer(), "insert-prefix", cbRefPtr)
618 }618 }
619 619
@@ -640,7 +640,7 @@ func (x *EntryCompletion) ConnectMatchSelected(cb *func(EntryCompletion, uintptr
640 640
641 }641 }
642 cbRefPtr := purego.NewCallback(fcb)642 cbRefPtr := purego.NewCallback(fcb)
643- glib.SaveCallback(cbPtr, cbRefPtr)643+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
644 return gobject.SignalConnect(x.GoPointer(), "match-selected", cbRefPtr)644 return gobject.SignalConnect(x.GoPointer(), "match-selected", cbRefPtr)
645 }645 }
646 646
@@ -663,7 +663,7 @@ func (x *EntryCompletion) ConnectNoMatches(cb *func(EntryCompletion)) uint32 {
663 663
664 }664 }
665 cbRefPtr := purego.NewCallback(fcb)665 cbRefPtr := purego.NewCallback(fcb)
666- glib.SaveCallback(cbPtr, cbRefPtr)666+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
667 return gobject.SignalConnect(x.GoPointer(), "no-matches", cbRefPtr)667 return gobject.SignalConnect(x.GoPointer(), "no-matches", cbRefPtr)
668 }668 }
669 669
M v4/gtk/gtkeventcontrollerfocus.go +2 -2
@@ -146,7 +146,7 @@ func (x *EventControllerFocus) ConnectEnter(cb *func(EventControllerFocus)) uint
146 146
147 }147 }
148 cbRefPtr := purego.NewCallback(fcb)148 cbRefPtr := purego.NewCallback(fcb)
149- glib.SaveCallback(cbPtr, cbRefPtr)149+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
150 return gobject.SignalConnect(x.GoPointer(), "enter", cbRefPtr)150 return gobject.SignalConnect(x.GoPointer(), "enter", cbRefPtr)
151 }151 }
152 152
@@ -174,7 +174,7 @@ func (x *EventControllerFocus) ConnectLeave(cb *func(EventControllerFocus)) uint
174 174
175 }175 }
176 cbRefPtr := purego.NewCallback(fcb)176 cbRefPtr := purego.NewCallback(fcb)
177- glib.SaveCallback(cbPtr, cbRefPtr)177+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
178 return gobject.SignalConnect(x.GoPointer(), "leave", cbRefPtr)178 return gobject.SignalConnect(x.GoPointer(), "leave", cbRefPtr)
179 }179 }
180 180
M v4/gtk/gtkeventcontrollerkey.go +4 -4
@@ -138,7 +138,7 @@ func (x *EventControllerKey) ConnectImUpdate(cb *func(EventControllerKey)) uint3
138 138
139 }139 }
140 cbRefPtr := purego.NewCallback(fcb)140 cbRefPtr := purego.NewCallback(fcb)
141- glib.SaveCallback(cbPtr, cbRefPtr)141+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
142 return gobject.SignalConnect(x.GoPointer(), "im-update", cbRefPtr)142 return gobject.SignalConnect(x.GoPointer(), "im-update", cbRefPtr)
143 }143 }
144 144
@@ -158,7 +158,7 @@ func (x *EventControllerKey) ConnectKeyPressed(cb *func(EventControllerKey, uint
158 158
159 }159 }
160 cbRefPtr := purego.NewCallback(fcb)160 cbRefPtr := purego.NewCallback(fcb)
161- glib.SaveCallback(cbPtr, cbRefPtr)161+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
162 return gobject.SignalConnect(x.GoPointer(), "key-pressed", cbRefPtr)162 return gobject.SignalConnect(x.GoPointer(), "key-pressed", cbRefPtr)
163 }163 }
164 164
@@ -178,7 +178,7 @@ func (x *EventControllerKey) ConnectKeyReleased(cb *func(EventControllerKey, uin
178 178
179 }179 }
180 cbRefPtr := purego.NewCallback(fcb)180 cbRefPtr := purego.NewCallback(fcb)
181- glib.SaveCallback(cbPtr, cbRefPtr)181+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
182 return gobject.SignalConnect(x.GoPointer(), "key-released", cbRefPtr)182 return gobject.SignalConnect(x.GoPointer(), "key-released", cbRefPtr)
183 }183 }
184 184
@@ -198,7 +198,7 @@ func (x *EventControllerKey) ConnectModifiers(cb *func(EventControllerKey, gdk.M
198 198
199 }199 }
200 cbRefPtr := purego.NewCallback(fcb)200 cbRefPtr := purego.NewCallback(fcb)
201- glib.SaveCallback(cbPtr, cbRefPtr)201+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
202 return gobject.SignalConnect(x.GoPointer(), "modifiers", cbRefPtr)202 return gobject.SignalConnect(x.GoPointer(), "modifiers", cbRefPtr)
203 }203 }
204 204
M v4/gtk/gtkeventcontrollerlegacy.go +1 -1
@@ -83,7 +83,7 @@ func (x *EventControllerLegacy) ConnectEvent(cb *func(EventControllerLegacy, uin
83 83
84 }84 }
85 cbRefPtr := purego.NewCallback(fcb)85 cbRefPtr := purego.NewCallback(fcb)
86- glib.SaveCallback(cbPtr, cbRefPtr)86+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
87 return gobject.SignalConnect(x.GoPointer(), "event", cbRefPtr)87 return gobject.SignalConnect(x.GoPointer(), "event", cbRefPtr)
88 }88 }
89 89
M v4/gtk/gtkeventcontrollermotion.go +3 -3
@@ -136,7 +136,7 @@ func (x *EventControllerMotion) ConnectEnter(cb *func(EventControllerMotion, flo
136 136
137 }137 }
138 cbRefPtr := purego.NewCallback(fcb)138 cbRefPtr := purego.NewCallback(fcb)
139- glib.SaveCallback(cbPtr, cbRefPtr)139+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
140 return gobject.SignalConnect(x.GoPointer(), "enter", cbRefPtr)140 return gobject.SignalConnect(x.GoPointer(), "enter", cbRefPtr)
141 }141 }
142 142
@@ -156,7 +156,7 @@ func (x *EventControllerMotion) ConnectLeave(cb *func(EventControllerMotion)) ui
156 156
157 }157 }
158 cbRefPtr := purego.NewCallback(fcb)158 cbRefPtr := purego.NewCallback(fcb)
159- glib.SaveCallback(cbPtr, cbRefPtr)159+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
160 return gobject.SignalConnect(x.GoPointer(), "leave", cbRefPtr)160 return gobject.SignalConnect(x.GoPointer(), "leave", cbRefPtr)
161 }161 }
162 162
@@ -176,7 +176,7 @@ func (x *EventControllerMotion) ConnectMotion(cb *func(EventControllerMotion, fl
176 176
177 }177 }
178 cbRefPtr := purego.NewCallback(fcb)178 cbRefPtr := purego.NewCallback(fcb)
179- glib.SaveCallback(cbPtr, cbRefPtr)179+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
180 return gobject.SignalConnect(x.GoPointer(), "motion", cbRefPtr)180 return gobject.SignalConnect(x.GoPointer(), "motion", cbRefPtr)
181 }181 }
182 182
M v4/gtk/gtkeventcontrollerscroll.go +4 -4
@@ -179,7 +179,7 @@ func (x *EventControllerScroll) ConnectDecelerate(cb *func(EventControllerScroll
179 179
180 }180 }
181 cbRefPtr := purego.NewCallback(fcb)181 cbRefPtr := purego.NewCallback(fcb)
182- glib.SaveCallback(cbPtr, cbRefPtr)182+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
183 return gobject.SignalConnect(x.GoPointer(), "decelerate", cbRefPtr)183 return gobject.SignalConnect(x.GoPointer(), "decelerate", cbRefPtr)
184 }184 }
185 185
@@ -203,7 +203,7 @@ func (x *EventControllerScroll) ConnectScroll(cb *func(EventControllerScroll, fl
203 203
204 }204 }
205 cbRefPtr := purego.NewCallback(fcb)205 cbRefPtr := purego.NewCallback(fcb)
206- glib.SaveCallback(cbPtr, cbRefPtr)206+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
207 return gobject.SignalConnect(x.GoPointer(), "scroll", cbRefPtr)207 return gobject.SignalConnect(x.GoPointer(), "scroll", cbRefPtr)
208 }208 }
209 209
@@ -225,7 +225,7 @@ func (x *EventControllerScroll) ConnectScrollBegin(cb *func(EventControllerScrol
225 225
226 }226 }
227 cbRefPtr := purego.NewCallback(fcb)227 cbRefPtr := purego.NewCallback(fcb)
228- glib.SaveCallback(cbPtr, cbRefPtr)228+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
229 return gobject.SignalConnect(x.GoPointer(), "scroll-begin", cbRefPtr)229 return gobject.SignalConnect(x.GoPointer(), "scroll-begin", cbRefPtr)
230 }230 }
231 231
@@ -247,7 +247,7 @@ func (x *EventControllerScroll) ConnectScrollEnd(cb *func(EventControllerScroll)
247 247
248 }248 }
249 cbRefPtr := purego.NewCallback(fcb)249 cbRefPtr := purego.NewCallback(fcb)
250- glib.SaveCallback(cbPtr, cbRefPtr)250+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
251 return gobject.SignalConnect(x.GoPointer(), "scroll-end", cbRefPtr)251 return gobject.SignalConnect(x.GoPointer(), "scroll-end", cbRefPtr)
252 }252 }
253 253
M v4/gtk/gtkexpander.go +1 -1
@@ -459,7 +459,7 @@ func (x *Expander) ConnectActivate(cb *func(Expander)) uint32 {
459 459
460 }460 }
461 cbRefPtr := purego.NewCallback(fcb)461 cbRefPtr := purego.NewCallback(fcb)
462- glib.SaveCallback(cbPtr, cbRefPtr)462+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
463 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)463 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
464 }464 }
465 465
M v4/gtk/gtkexpression.go +5 -5
@@ -194,7 +194,7 @@ func NewCClosureExpression(ValueTypeVar types.GType, MarshalVar *gobject.Closure
194 cbFn(arg0, arg1, arg2, arg3, arg4, arg5)194 cbFn(arg0, arg1, arg2, arg3, arg4, arg5)
195 }195 }
196 MarshalVarRef = purego.NewCallback(fcb)196 MarshalVarRef = purego.NewCallback(fcb)
197- glib.SaveCallback(MarshalVarPtr, MarshalVarRef)197+ glib.SaveCallbackWithClosure(MarshalVarPtr, MarshalVarRef, MarshalVar)
198 }198 }
199 }199 }
200 200
@@ -209,7 +209,7 @@ func NewCClosureExpression(ValueTypeVar types.GType, MarshalVar *gobject.Closure
209 cbFn()209 cbFn()
210 }210 }
211 CallbackFuncVarRef = purego.NewCallback(fcb)211 CallbackFuncVarRef = purego.NewCallback(fcb)
212- glib.SaveCallback(CallbackFuncVarPtr, CallbackFuncVarRef)212+ glib.SaveCallbackWithClosure(CallbackFuncVarPtr, CallbackFuncVarRef, CallbackFuncVar)
213 }213 }
214 }214 }
215 215
@@ -224,7 +224,7 @@ func NewCClosureExpression(ValueTypeVar types.GType, MarshalVar *gobject.Closure
224 cbFn(arg0, arg1)224 cbFn(arg0, arg1)
225 }225 }
226 UserDestroyVarRef = purego.NewCallback(fcb)226 UserDestroyVarRef = purego.NewCallback(fcb)
227- glib.SaveCallback(UserDestroyVarPtr, UserDestroyVarRef)227+ glib.SaveCallbackWithClosure(UserDestroyVarPtr, UserDestroyVarRef, UserDestroyVar)
228 }228 }
229 }229 }
230 230
@@ -692,7 +692,7 @@ func (x *Expression) Watch(ThisVar *gobject.Object, NotifyVar *ExpressionNotify,
692 cbFn(arg0)692 cbFn(arg0)
693 }693 }
694 NotifyVarRef = purego.NewCallback(fcb)694 NotifyVarRef = purego.NewCallback(fcb)
695- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)695+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
696 }696 }
697 }697 }
698 698
@@ -707,7 +707,7 @@ func (x *Expression) Watch(ThisVar *gobject.Object, NotifyVar *ExpressionNotify,
707 cbFn(arg0)707 cbFn(arg0)
708 }708 }
709 UserDestroyVarRef = purego.NewCallback(fcb)709 UserDestroyVarRef = purego.NewCallback(fcb)
710- glib.SaveCallback(UserDestroyVarPtr, UserDestroyVarRef)710+ glib.SaveCallbackWithClosure(UserDestroyVarPtr, UserDestroyVarRef, UserDestroyVar)
711 }711 }
712 }712 }
713 713
M v4/gtk/gtkfilechooserwidget.go +12 -12
@@ -146,7 +146,7 @@ func (x *FileChooserWidget) ConnectDesktopFolder(cb *func(FileChooserWidget)) ui
146 146
147 }147 }
148 cbRefPtr := purego.NewCallback(fcb)148 cbRefPtr := purego.NewCallback(fcb)
149- glib.SaveCallback(cbPtr, cbRefPtr)149+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
150 return gobject.SignalConnect(x.GoPointer(), "desktop-folder", cbRefPtr)150 return gobject.SignalConnect(x.GoPointer(), "desktop-folder", cbRefPtr)
151 }151 }
152 152
@@ -177,7 +177,7 @@ func (x *FileChooserWidget) ConnectDownFolder(cb *func(FileChooserWidget)) uint3
177 177
178 }178 }
179 cbRefPtr := purego.NewCallback(fcb)179 cbRefPtr := purego.NewCallback(fcb)
180- glib.SaveCallback(cbPtr, cbRefPtr)180+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
181 return gobject.SignalConnect(x.GoPointer(), "down-folder", cbRefPtr)181 return gobject.SignalConnect(x.GoPointer(), "down-folder", cbRefPtr)
182 }182 }
183 183
@@ -204,7 +204,7 @@ func (x *FileChooserWidget) ConnectHomeFolder(cb *func(FileChooserWidget)) uint3
204 204
205 }205 }
206 cbRefPtr := purego.NewCallback(fcb)206 cbRefPtr := purego.NewCallback(fcb)
207- glib.SaveCallback(cbPtr, cbRefPtr)207+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
208 return gobject.SignalConnect(x.GoPointer(), "home-folder", cbRefPtr)208 return gobject.SignalConnect(x.GoPointer(), "home-folder", cbRefPtr)
209 }209 }
210 210
@@ -236,7 +236,7 @@ func (x *FileChooserWidget) ConnectLocationPopup(cb *func(FileChooserWidget, str
236 236
237 }237 }
238 cbRefPtr := purego.NewCallback(fcb)238 cbRefPtr := purego.NewCallback(fcb)
239- glib.SaveCallback(cbPtr, cbRefPtr)239+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
240 return gobject.SignalConnect(x.GoPointer(), "location-popup", cbRefPtr)240 return gobject.SignalConnect(x.GoPointer(), "location-popup", cbRefPtr)
241 }241 }
242 242
@@ -263,7 +263,7 @@ func (x *FileChooserWidget) ConnectLocationPopupOnPaste(cb *func(FileChooserWidg
263 263
264 }264 }
265 cbRefPtr := purego.NewCallback(fcb)265 cbRefPtr := purego.NewCallback(fcb)
266- glib.SaveCallback(cbPtr, cbRefPtr)266+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
267 return gobject.SignalConnect(x.GoPointer(), "location-popup-on-paste", cbRefPtr)267 return gobject.SignalConnect(x.GoPointer(), "location-popup-on-paste", cbRefPtr)
268 }268 }
269 269
@@ -291,7 +291,7 @@ func (x *FileChooserWidget) ConnectLocationTogglePopup(cb *func(FileChooserWidge
291 291
292 }292 }
293 cbRefPtr := purego.NewCallback(fcb)293 cbRefPtr := purego.NewCallback(fcb)
294- glib.SaveCallback(cbPtr, cbRefPtr)294+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
295 return gobject.SignalConnect(x.GoPointer(), "location-toggle-popup", cbRefPtr)295 return gobject.SignalConnect(x.GoPointer(), "location-toggle-popup", cbRefPtr)
296 }296 }
297 297
@@ -317,7 +317,7 @@ func (x *FileChooserWidget) ConnectPlacesShortcut(cb *func(FileChooserWidget)) u
317 317
318 }318 }
319 cbRefPtr := purego.NewCallback(fcb)319 cbRefPtr := purego.NewCallback(fcb)
320- glib.SaveCallback(cbPtr, cbRefPtr)320+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
321 return gobject.SignalConnect(x.GoPointer(), "places-shortcut", cbRefPtr)321 return gobject.SignalConnect(x.GoPointer(), "places-shortcut", cbRefPtr)
322 }322 }
323 323
@@ -350,7 +350,7 @@ func (x *FileChooserWidget) ConnectQuickBookmark(cb *func(FileChooserWidget, int
350 350
351 }351 }
352 cbRefPtr := purego.NewCallback(fcb)352 cbRefPtr := purego.NewCallback(fcb)
353- glib.SaveCallback(cbPtr, cbRefPtr)353+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
354 return gobject.SignalConnect(x.GoPointer(), "quick-bookmark", cbRefPtr)354 return gobject.SignalConnect(x.GoPointer(), "quick-bookmark", cbRefPtr)
355 }355 }
356 356
@@ -376,7 +376,7 @@ func (x *FileChooserWidget) ConnectRecentShortcut(cb *func(FileChooserWidget)) u
376 376
377 }377 }
378 cbRefPtr := purego.NewCallback(fcb)378 cbRefPtr := purego.NewCallback(fcb)
379- glib.SaveCallback(cbPtr, cbRefPtr)379+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
380 return gobject.SignalConnect(x.GoPointer(), "recent-shortcut", cbRefPtr)380 return gobject.SignalConnect(x.GoPointer(), "recent-shortcut", cbRefPtr)
381 }381 }
382 382
@@ -402,7 +402,7 @@ func (x *FileChooserWidget) ConnectSearchShortcut(cb *func(FileChooserWidget)) u
402 402
403 }403 }
404 cbRefPtr := purego.NewCallback(fcb)404 cbRefPtr := purego.NewCallback(fcb)
405- glib.SaveCallback(cbPtr, cbRefPtr)405+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
406 return gobject.SignalConnect(x.GoPointer(), "search-shortcut", cbRefPtr)406 return gobject.SignalConnect(x.GoPointer(), "search-shortcut", cbRefPtr)
407 }407 }
408 408
@@ -428,7 +428,7 @@ func (x *FileChooserWidget) ConnectShowHidden(cb *func(FileChooserWidget)) uint3
428 428
429 }429 }
430 cbRefPtr := purego.NewCallback(fcb)430 cbRefPtr := purego.NewCallback(fcb)
431- glib.SaveCallback(cbPtr, cbRefPtr)431+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
432 return gobject.SignalConnect(x.GoPointer(), "show-hidden", cbRefPtr)432 return gobject.SignalConnect(x.GoPointer(), "show-hidden", cbRefPtr)
433 }433 }
434 434
@@ -455,7 +455,7 @@ func (x *FileChooserWidget) ConnectUpFolder(cb *func(FileChooserWidget)) uint32
455 455
456 }456 }
457 cbRefPtr := purego.NewCallback(fcb)457 cbRefPtr := purego.NewCallback(fcb)
458- glib.SaveCallback(cbPtr, cbRefPtr)458+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
459 return gobject.SignalConnect(x.GoPointer(), "up-folder", cbRefPtr)459 return gobject.SignalConnect(x.GoPointer(), "up-folder", cbRefPtr)
460 }460 }
461 461
M v4/gtk/gtkfiledialog.go +8 -8
@@ -197,7 +197,7 @@ func (x *FileDialog) Open(ParentVar *Window, CancellableVar *gio.Cancellable, Ca
197 cbFn(arg0, arg1, arg2)197 cbFn(arg0, arg1, arg2)
198 }198 }
199 CallbackVarRef = purego.NewCallback(fcb)199 CallbackVarRef = purego.NewCallback(fcb)
200- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)200+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
201 }201 }
202 }202 }
203 203
@@ -252,7 +252,7 @@ func (x *FileDialog) OpenMultiple(ParentVar *Window, CancellableVar *gio.Cancell
252 cbFn(arg0, arg1, arg2)252 cbFn(arg0, arg1, arg2)
253 }253 }
254 CallbackVarRef = purego.NewCallback(fcb)254 CallbackVarRef = purego.NewCallback(fcb)
255- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)255+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
256 }256 }
257 }257 }
258 258
@@ -310,7 +310,7 @@ func (x *FileDialog) OpenMultipleTextFiles(ParentVar *Window, CancellableVar *gi
310 cbFn(arg0, arg1, arg2)310 cbFn(arg0, arg1, arg2)
311 }311 }
312 CallbackVarRef = purego.NewCallback(fcb)312 CallbackVarRef = purego.NewCallback(fcb)
313- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)313+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
314 }314 }
315 }315 }
316 316
@@ -364,7 +364,7 @@ func (x *FileDialog) OpenTextFile(ParentVar *Window, CancellableVar *gio.Cancell
364 cbFn(arg0, arg1, arg2)364 cbFn(arg0, arg1, arg2)
365 }365 }
366 CallbackVarRef = purego.NewCallback(fcb)366 CallbackVarRef = purego.NewCallback(fcb)
367- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)367+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
368 }368 }
369 }369 }
370 370
@@ -422,7 +422,7 @@ func (x *FileDialog) Save(ParentVar *Window, CancellableVar *gio.Cancellable, Ca
422 cbFn(arg0, arg1, arg2)422 cbFn(arg0, arg1, arg2)
423 }423 }
424 CallbackVarRef = purego.NewCallback(fcb)424 CallbackVarRef = purego.NewCallback(fcb)
425- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)425+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
426 }426 }
427 }427 }
428 428
@@ -477,7 +477,7 @@ func (x *FileDialog) SaveTextFile(ParentVar *Window, CancellableVar *gio.Cancell
477 cbFn(arg0, arg1, arg2)477 cbFn(arg0, arg1, arg2)
478 }478 }
479 CallbackVarRef = purego.NewCallback(fcb)479 CallbackVarRef = purego.NewCallback(fcb)
480- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)480+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
481 }481 }
482 }482 }
483 483
@@ -542,7 +542,7 @@ func (x *FileDialog) SelectFolder(ParentVar *Window, CancellableVar *gio.Cancell
542 cbFn(arg0, arg1, arg2)542 cbFn(arg0, arg1, arg2)
543 }543 }
544 CallbackVarRef = purego.NewCallback(fcb)544 CallbackVarRef = purego.NewCallback(fcb)
545- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)545+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
546 }546 }
547 }547 }
548 548
@@ -598,7 +598,7 @@ func (x *FileDialog) SelectMultipleFolders(ParentVar *Window, CancellableVar *gi
598 cbFn(arg0, arg1, arg2)598 cbFn(arg0, arg1, arg2)
599 }599 }
600 CallbackVarRef = purego.NewCallback(fcb)600 CallbackVarRef = purego.NewCallback(fcb)
601- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)601+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
602 }602 }
603 }603 }
604 604
M v4/gtk/gtkfilelauncher.go +2 -2
@@ -121,7 +121,7 @@ func (x *FileLauncher) Launch(ParentVar *Window, CancellableVar *gio.Cancellable
121 cbFn(arg0, arg1, arg2)121 cbFn(arg0, arg1, arg2)
122 }122 }
123 CallbackVarRef = purego.NewCallback(fcb)123 CallbackVarRef = purego.NewCallback(fcb)
124- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)124+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
125 }125 }
126 }126 }
127 127
@@ -164,7 +164,7 @@ func (x *FileLauncher) OpenContainingFolder(ParentVar *Window, CancellableVar *g
164 cbFn(arg0, arg1, arg2)164 cbFn(arg0, arg1, arg2)
165 }165 }
166 CallbackVarRef = purego.NewCallback(fcb)166 CallbackVarRef = purego.NewCallback(fcb)
167- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)167+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
168 }168 }
169 }169 }
170 170
M v4/gtk/gtkfilter.go +1 -1
@@ -461,7 +461,7 @@ func (x *Filter) ConnectChanged(cb *func(Filter, FilterChange)) uint32 {
461 461
462 }462 }
463 cbRefPtr := purego.NewCallback(fcb)463 cbRefPtr := purego.NewCallback(fcb)
464- glib.SaveCallback(cbPtr, cbRefPtr)464+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
465 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)465 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
466 }466 }
467 467
M v4/gtk/gtkflowbox.go +15 -15
@@ -209,7 +209,7 @@ func (x *FlowBox) BindModel(ModelVar gio.ListModel, CreateWidgetFuncVar *FlowBox
209 return cbFn(arg0, arg1)209 return cbFn(arg0, arg1)
210 }210 }
211 CreateWidgetFuncVarRef = purego.NewCallback(fcb)211 CreateWidgetFuncVarRef = purego.NewCallback(fcb)
212- glib.SaveCallback(CreateWidgetFuncVarPtr, CreateWidgetFuncVarRef)212+ glib.SaveCallbackWithClosure(CreateWidgetFuncVarPtr, CreateWidgetFuncVarRef, CreateWidgetFuncVar)
213 }213 }
214 }214 }
215 215
@@ -224,7 +224,7 @@ func (x *FlowBox) BindModel(ModelVar gio.ListModel, CreateWidgetFuncVar *FlowBox
224 cbFn(arg0)224 cbFn(arg0)
225 }225 }
226 UserDataFreeFuncVarRef = purego.NewCallback(fcb)226 UserDataFreeFuncVarRef = purego.NewCallback(fcb)
227- glib.SaveCallback(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef)227+ glib.SaveCallbackWithClosure(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef, UserDataFreeFuncVar)
228 }228 }
229 }229 }
230 230
@@ -463,7 +463,7 @@ func (x *FlowBox) SelectedForeach(FuncVar *FlowBoxForeachFunc, DataVar uintptr)
463 cbFn(arg0, arg1, arg2)463 cbFn(arg0, arg1, arg2)
464 }464 }
465 FuncVarRef = purego.NewCallback(fcb)465 FuncVarRef = purego.NewCallback(fcb)
466- glib.SaveCallback(FuncVarPtr, FuncVarRef)466+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
467 }467 }
468 }468 }
469 469
@@ -518,7 +518,7 @@ func (x *FlowBox) SetFilterFunc(FilterFuncVar *FlowBoxFilterFunc, UserDataVar ui
518 return cbFn(arg0, arg1)518 return cbFn(arg0, arg1)
519 }519 }
520 FilterFuncVarRef = purego.NewCallback(fcb)520 FilterFuncVarRef = purego.NewCallback(fcb)
521- glib.SaveCallback(FilterFuncVarPtr, FilterFuncVarRef)521+ glib.SaveCallbackWithClosure(FilterFuncVarPtr, FilterFuncVarRef, FilterFuncVar)
522 }522 }
523 }523 }
524 524
@@ -533,7 +533,7 @@ func (x *FlowBox) SetFilterFunc(FilterFuncVar *FlowBoxFilterFunc, UserDataVar ui
533 cbFn(arg0)533 cbFn(arg0)
534 }534 }
535 DestroyVarRef = purego.NewCallback(fcb)535 DestroyVarRef = purego.NewCallback(fcb)
536- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)536+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
537 }537 }
538 }538 }
539 539
@@ -638,7 +638,7 @@ func (x *FlowBox) SetSortFunc(SortFuncVar *FlowBoxSortFunc, UserDataVar uintptr,
638 return cbFn(arg0, arg1, arg2)638 return cbFn(arg0, arg1, arg2)
639 }639 }
640 SortFuncVarRef = purego.NewCallback(fcb)640 SortFuncVarRef = purego.NewCallback(fcb)
641- glib.SaveCallback(SortFuncVarPtr, SortFuncVarRef)641+ glib.SaveCallbackWithClosure(SortFuncVarPtr, SortFuncVarRef, SortFuncVar)
642 }642 }
643 }643 }
644 644
@@ -653,7 +653,7 @@ func (x *FlowBox) SetSortFunc(SortFuncVar *FlowBoxSortFunc, UserDataVar uintptr,
653 cbFn(arg0)653 cbFn(arg0)
654 }654 }
655 DestroyVarRef = purego.NewCallback(fcb)655 DestroyVarRef = purego.NewCallback(fcb)
656- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)656+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
657 }657 }
658 }658 }
659 659
@@ -864,7 +864,7 @@ func (x *FlowBox) ConnectActivateCursorChild(cb *func(FlowBox)) uint32 {
864 864
865 }865 }
866 cbRefPtr := purego.NewCallback(fcb)866 cbRefPtr := purego.NewCallback(fcb)
867- glib.SaveCallback(cbPtr, cbRefPtr)867+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
868 return gobject.SignalConnect(x.GoPointer(), "activate-cursor-child", cbRefPtr)868 return gobject.SignalConnect(x.GoPointer(), "activate-cursor-child", cbRefPtr)
869 }869 }
870 870
@@ -884,7 +884,7 @@ func (x *FlowBox) ConnectChildActivated(cb *func(FlowBox, uintptr)) uint32 {
884 884
885 }885 }
886 cbRefPtr := purego.NewCallback(fcb)886 cbRefPtr := purego.NewCallback(fcb)
887- glib.SaveCallback(cbPtr, cbRefPtr)887+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
888 return gobject.SignalConnect(x.GoPointer(), "child-activated", cbRefPtr)888 return gobject.SignalConnect(x.GoPointer(), "child-activated", cbRefPtr)
889 }889 }
890 890
@@ -919,7 +919,7 @@ func (x *FlowBox) ConnectMoveCursor(cb *func(FlowBox, MovementStep, int, bool, b
919 919
920 }920 }
921 cbRefPtr := purego.NewCallback(fcb)921 cbRefPtr := purego.NewCallback(fcb)
922- glib.SaveCallback(cbPtr, cbRefPtr)922+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
923 return gobject.SignalConnect(x.GoPointer(), "move-cursor", cbRefPtr)923 return gobject.SignalConnect(x.GoPointer(), "move-cursor", cbRefPtr)
924 }924 }
925 925
@@ -944,7 +944,7 @@ func (x *FlowBox) ConnectSelectAll(cb *func(FlowBox)) uint32 {
944 944
945 }945 }
946 cbRefPtr := purego.NewCallback(fcb)946 cbRefPtr := purego.NewCallback(fcb)
947- glib.SaveCallback(cbPtr, cbRefPtr)947+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
948 return gobject.SignalConnect(x.GoPointer(), "select-all", cbRefPtr)948 return gobject.SignalConnect(x.GoPointer(), "select-all", cbRefPtr)
949 }949 }
950 950
@@ -968,7 +968,7 @@ func (x *FlowBox) ConnectSelectedChildrenChanged(cb *func(FlowBox)) uint32 {
968 968
969 }969 }
970 cbRefPtr := purego.NewCallback(fcb)970 cbRefPtr := purego.NewCallback(fcb)
971- glib.SaveCallback(cbPtr, cbRefPtr)971+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
972 return gobject.SignalConnect(x.GoPointer(), "selected-children-changed", cbRefPtr)972 return gobject.SignalConnect(x.GoPointer(), "selected-children-changed", cbRefPtr)
973 }973 }
974 974
@@ -992,7 +992,7 @@ func (x *FlowBox) ConnectToggleCursorChild(cb *func(FlowBox)) uint32 {
992 992
993 }993 }
994 cbRefPtr := purego.NewCallback(fcb)994 cbRefPtr := purego.NewCallback(fcb)
995- glib.SaveCallback(cbPtr, cbRefPtr)995+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
996 return gobject.SignalConnect(x.GoPointer(), "toggle-cursor-child", cbRefPtr)996 return gobject.SignalConnect(x.GoPointer(), "toggle-cursor-child", cbRefPtr)
997 }997 }
998 998
@@ -1017,7 +1017,7 @@ func (x *FlowBox) ConnectUnselectAll(cb *func(FlowBox)) uint32 {
1017 1017
1018 }1018 }
1019 cbRefPtr := purego.NewCallback(fcb)1019 cbRefPtr := purego.NewCallback(fcb)
1020- glib.SaveCallback(cbPtr, cbRefPtr)1020+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1021 return gobject.SignalConnect(x.GoPointer(), "unselect-all", cbRefPtr)1021 return gobject.SignalConnect(x.GoPointer(), "unselect-all", cbRefPtr)
1022 }1022 }
1023 1023
@@ -1466,7 +1466,7 @@ func (x *FlowBoxChild) ConnectActivate(cb *func(FlowBoxChild)) uint32 {
1466 1466
1467 }1467 }
1468 cbRefPtr := purego.NewCallback(fcb)1468 cbRefPtr := purego.NewCallback(fcb)
1469- glib.SaveCallback(cbPtr, cbRefPtr)1469+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1470 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)1470 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
1471 }1471 }
1472 1472
M v4/gtk/gtkfontbutton.go +2 -2
@@ -262,7 +262,7 @@ func (x *FontButton) ConnectActivate(cb *func(FontButton)) uint32 {
262 262
263 }263 }
264 cbRefPtr := purego.NewCallback(fcb)264 cbRefPtr := purego.NewCallback(fcb)
265- glib.SaveCallback(cbPtr, cbRefPtr)265+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
266 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)266 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
267 }267 }
268 268
@@ -289,7 +289,7 @@ func (x *FontButton) ConnectFontSet(cb *func(FontButton)) uint32 {
289 289
290 }290 }
291 cbRefPtr := purego.NewCallback(fcb)291 cbRefPtr := purego.NewCallback(fcb)
292- glib.SaveCallback(cbPtr, cbRefPtr)292+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
293 return gobject.SignalConnect(x.GoPointer(), "font-set", cbRefPtr)293 return gobject.SignalConnect(x.GoPointer(), "font-set", cbRefPtr)
294 }294 }
295 295
M v4/gtk/gtkfontdialog.go +4 -4
@@ -87,7 +87,7 @@ func (x *FontDialog) ChooseFace(ParentVar *Window, InitialValueVar *pango.FontFa
87 cbFn(arg0, arg1, arg2)87 cbFn(arg0, arg1, arg2)
88 }88 }
89 CallbackVarRef = purego.NewCallback(fcb)89 CallbackVarRef = purego.NewCallback(fcb)
90- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)90+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
91 }91 }
92 }92 }
93 93
@@ -137,7 +137,7 @@ func (x *FontDialog) ChooseFamily(ParentVar *Window, InitialValueVar *pango.Font
137 cbFn(arg0, arg1, arg2)137 cbFn(arg0, arg1, arg2)
138 }138 }
139 CallbackVarRef = purego.NewCallback(fcb)139 CallbackVarRef = purego.NewCallback(fcb)
140- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)140+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
141 }141 }
142 }142 }
143 143
@@ -190,7 +190,7 @@ func (x *FontDialog) ChooseFont(ParentVar *Window, InitialValueVar *pango.FontDe
190 cbFn(arg0, arg1, arg2)190 cbFn(arg0, arg1, arg2)
191 }191 }
192 CallbackVarRef = purego.NewCallback(fcb)192 CallbackVarRef = purego.NewCallback(fcb)
193- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)193+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
194 }194 }
195 }195 }
196 196
@@ -220,7 +220,7 @@ func (x *FontDialog) ChooseFontAndFeatures(ParentVar *Window, InitialValueVar *p
220 cbFn(arg0, arg1, arg2)220 cbFn(arg0, arg1, arg2)
221 }221 }
222 CallbackVarRef = purego.NewCallback(fcb)222 CallbackVarRef = purego.NewCallback(fcb)
223- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)223+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
224 }224 }
225 }225 }
226 226
M v4/gtk/gtkfontdialogbutton.go +1 -1
@@ -424,7 +424,7 @@ func (x *FontDialogButton) ConnectActivate(cb *func(FontDialogButton)) uint32 {
424 424
425 }425 }
426 cbRefPtr := purego.NewCallback(fcb)426 cbRefPtr := purego.NewCallback(fcb)
427- glib.SaveCallback(cbPtr, cbRefPtr)427+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
428 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)428 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
429 }429 }
430 430
M v4/gtk/gtkgesture.go +5 -5
@@ -504,7 +504,7 @@ func (x *Gesture) ConnectBegin(cb *func(Gesture, uintptr)) uint32 {
504 504
505 }505 }
506 cbRefPtr := purego.NewCallback(fcb)506 cbRefPtr := purego.NewCallback(fcb)
507- glib.SaveCallback(cbPtr, cbRefPtr)507+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
508 return gobject.SignalConnect(x.GoPointer(), "begin", cbRefPtr)508 return gobject.SignalConnect(x.GoPointer(), "begin", cbRefPtr)
509 }509 }
510 510
@@ -533,7 +533,7 @@ func (x *Gesture) ConnectCancel(cb *func(Gesture, uintptr)) uint32 {
533 533
534 }534 }
535 cbRefPtr := purego.NewCallback(fcb)535 cbRefPtr := purego.NewCallback(fcb)
536- glib.SaveCallback(cbPtr, cbRefPtr)536+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
537 return gobject.SignalConnect(x.GoPointer(), "cancel", cbRefPtr)537 return gobject.SignalConnect(x.GoPointer(), "cancel", cbRefPtr)
538 }538 }
539 539
@@ -561,7 +561,7 @@ func (x *Gesture) ConnectEnd(cb *func(Gesture, uintptr)) uint32 {
561 561
562 }562 }
563 cbRefPtr := purego.NewCallback(fcb)563 cbRefPtr := purego.NewCallback(fcb)
564- glib.SaveCallback(cbPtr, cbRefPtr)564+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
565 return gobject.SignalConnect(x.GoPointer(), "end", cbRefPtr)565 return gobject.SignalConnect(x.GoPointer(), "end", cbRefPtr)
566 }566 }
567 567
@@ -584,7 +584,7 @@ func (x *Gesture) ConnectSequenceStateChanged(cb *func(Gesture, uintptr, EventSe
584 584
585 }585 }
586 cbRefPtr := purego.NewCallback(fcb)586 cbRefPtr := purego.NewCallback(fcb)
587- glib.SaveCallback(cbPtr, cbRefPtr)587+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
588 return gobject.SignalConnect(x.GoPointer(), "sequence-state-changed", cbRefPtr)588 return gobject.SignalConnect(x.GoPointer(), "sequence-state-changed", cbRefPtr)
589 }589 }
590 590
@@ -606,7 +606,7 @@ func (x *Gesture) ConnectUpdate(cb *func(Gesture, uintptr)) uint32 {
606 606
607 }607 }
608 cbRefPtr := purego.NewCallback(fcb)608 cbRefPtr := purego.NewCallback(fcb)
609- glib.SaveCallback(cbPtr, cbRefPtr)609+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
610 return gobject.SignalConnect(x.GoPointer(), "update", cbRefPtr)610 return gobject.SignalConnect(x.GoPointer(), "update", cbRefPtr)
611 }611 }
612 612
M v4/gtk/gtkgestureclick.go +4 -4
@@ -87,7 +87,7 @@ func (x *GestureClick) ConnectPressed(cb *func(GestureClick, int, float64, float
87 87
88 }88 }
89 cbRefPtr := purego.NewCallback(fcb)89 cbRefPtr := purego.NewCallback(fcb)
90- glib.SaveCallback(cbPtr, cbRefPtr)90+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
91 return gobject.SignalConnect(x.GoPointer(), "pressed", cbRefPtr)91 return gobject.SignalConnect(x.GoPointer(), "pressed", cbRefPtr)
92 }92 }
93 93
@@ -112,7 +112,7 @@ func (x *GestureClick) ConnectReleased(cb *func(GestureClick, int, float64, floa
112 112
113 }113 }
114 cbRefPtr := purego.NewCallback(fcb)114 cbRefPtr := purego.NewCallback(fcb)
115- glib.SaveCallback(cbPtr, cbRefPtr)115+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
116 return gobject.SignalConnect(x.GoPointer(), "released", cbRefPtr)116 return gobject.SignalConnect(x.GoPointer(), "released", cbRefPtr)
117 }117 }
118 118
@@ -132,7 +132,7 @@ func (x *GestureClick) ConnectStopped(cb *func(GestureClick)) uint32 {
132 132
133 }133 }
134 cbRefPtr := purego.NewCallback(fcb)134 cbRefPtr := purego.NewCallback(fcb)
135- glib.SaveCallback(cbPtr, cbRefPtr)135+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
136 return gobject.SignalConnect(x.GoPointer(), "stopped", cbRefPtr)136 return gobject.SignalConnect(x.GoPointer(), "stopped", cbRefPtr)
137 }137 }
138 138
@@ -157,7 +157,7 @@ func (x *GestureClick) ConnectUnpairedRelease(cb *func(GestureClick, float64, fl
157 157
158 }158 }
159 cbRefPtr := purego.NewCallback(fcb)159 cbRefPtr := purego.NewCallback(fcb)
160- glib.SaveCallback(cbPtr, cbRefPtr)160+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
161 return gobject.SignalConnect(x.GoPointer(), "unpaired-release", cbRefPtr)161 return gobject.SignalConnect(x.GoPointer(), "unpaired-release", cbRefPtr)
162 }162 }
163 163
M v4/gtk/gtkgesturedrag.go +3 -3
@@ -116,7 +116,7 @@ func (x *GestureDrag) ConnectDragBegin(cb *func(GestureDrag, float64, float64))
116 116
117 }117 }
118 cbRefPtr := purego.NewCallback(fcb)118 cbRefPtr := purego.NewCallback(fcb)
119- glib.SaveCallback(cbPtr, cbRefPtr)119+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
120 return gobject.SignalConnect(x.GoPointer(), "drag-begin", cbRefPtr)120 return gobject.SignalConnect(x.GoPointer(), "drag-begin", cbRefPtr)
121 }121 }
122 122
@@ -136,7 +136,7 @@ func (x *GestureDrag) ConnectDragEnd(cb *func(GestureDrag, float64, float64)) ui
136 136
137 }137 }
138 cbRefPtr := purego.NewCallback(fcb)138 cbRefPtr := purego.NewCallback(fcb)
139- glib.SaveCallback(cbPtr, cbRefPtr)139+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
140 return gobject.SignalConnect(x.GoPointer(), "drag-end", cbRefPtr)140 return gobject.SignalConnect(x.GoPointer(), "drag-end", cbRefPtr)
141 }141 }
142 142
@@ -156,7 +156,7 @@ func (x *GestureDrag) ConnectDragUpdate(cb *func(GestureDrag, float64, float64))
156 156
157 }157 }
158 cbRefPtr := purego.NewCallback(fcb)158 cbRefPtr := purego.NewCallback(fcb)
159- glib.SaveCallback(cbPtr, cbRefPtr)159+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
160 return gobject.SignalConnect(x.GoPointer(), "drag-update", cbRefPtr)160 return gobject.SignalConnect(x.GoPointer(), "drag-update", cbRefPtr)
161 }161 }
162 162
M v4/gtk/gtkgesturelongpress.go +2 -2
@@ -134,7 +134,7 @@ func (x *GestureLongPress) ConnectCancelled(cb *func(GestureLongPress)) uint32 {
134 134
135 }135 }
136 cbRefPtr := purego.NewCallback(fcb)136 cbRefPtr := purego.NewCallback(fcb)
137- glib.SaveCallback(cbPtr, cbRefPtr)137+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
138 return gobject.SignalConnect(x.GoPointer(), "cancelled", cbRefPtr)138 return gobject.SignalConnect(x.GoPointer(), "cancelled", cbRefPtr)
139 }139 }
140 140
@@ -155,7 +155,7 @@ func (x *GestureLongPress) ConnectPressed(cb *func(GestureLongPress, float64, fl
155 155
156 }156 }
157 cbRefPtr := purego.NewCallback(fcb)157 cbRefPtr := purego.NewCallback(fcb)
158- glib.SaveCallback(cbPtr, cbRefPtr)158+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
159 return gobject.SignalConnect(x.GoPointer(), "pressed", cbRefPtr)159 return gobject.SignalConnect(x.GoPointer(), "pressed", cbRefPtr)
160 }160 }
161 161
M v4/gtk/gtkgesturepan.go +1 -1
@@ -112,7 +112,7 @@ func (x *GesturePan) ConnectPan(cb *func(GesturePan, PanDirection, float64)) uin
112 112
113 }113 }
114 cbRefPtr := purego.NewCallback(fcb)114 cbRefPtr := purego.NewCallback(fcb)
115- glib.SaveCallback(cbPtr, cbRefPtr)115+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
116 return gobject.SignalConnect(x.GoPointer(), "pan", cbRefPtr)116 return gobject.SignalConnect(x.GoPointer(), "pan", cbRefPtr)
117 }117 }
118 118
M v4/gtk/gtkgesturerotate.go +1 -1
@@ -98,7 +98,7 @@ func (x *GestureRotate) ConnectAngleChanged(cb *func(GestureRotate, float64, flo
98 98
99 }99 }
100 cbRefPtr := purego.NewCallback(fcb)100 cbRefPtr := purego.NewCallback(fcb)
101- glib.SaveCallback(cbPtr, cbRefPtr)101+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
102 return gobject.SignalConnect(x.GoPointer(), "angle-changed", cbRefPtr)102 return gobject.SignalConnect(x.GoPointer(), "angle-changed", cbRefPtr)
103 }103 }
104 104
M v4/gtk/gtkgesturestylus.go +4 -4
@@ -200,7 +200,7 @@ func (x *GestureStylus) ConnectDown(cb *func(GestureStylus, float64, float64)) u
200 200
201 }201 }
202 cbRefPtr := purego.NewCallback(fcb)202 cbRefPtr := purego.NewCallback(fcb)
203- glib.SaveCallback(cbPtr, cbRefPtr)203+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
204 return gobject.SignalConnect(x.GoPointer(), "down", cbRefPtr)204 return gobject.SignalConnect(x.GoPointer(), "down", cbRefPtr)
205 }205 }
206 206
@@ -220,7 +220,7 @@ func (x *GestureStylus) ConnectMotion(cb *func(GestureStylus, float64, float64))
220 220
221 }221 }
222 cbRefPtr := purego.NewCallback(fcb)222 cbRefPtr := purego.NewCallback(fcb)
223- glib.SaveCallback(cbPtr, cbRefPtr)223+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
224 return gobject.SignalConnect(x.GoPointer(), "motion", cbRefPtr)224 return gobject.SignalConnect(x.GoPointer(), "motion", cbRefPtr)
225 }225 }
226 226
@@ -240,7 +240,7 @@ func (x *GestureStylus) ConnectProximity(cb *func(GestureStylus, float64, float6
240 240
241 }241 }
242 cbRefPtr := purego.NewCallback(fcb)242 cbRefPtr := purego.NewCallback(fcb)
243- glib.SaveCallback(cbPtr, cbRefPtr)243+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
244 return gobject.SignalConnect(x.GoPointer(), "proximity", cbRefPtr)244 return gobject.SignalConnect(x.GoPointer(), "proximity", cbRefPtr)
245 }245 }
246 246
@@ -260,7 +260,7 @@ func (x *GestureStylus) ConnectUp(cb *func(GestureStylus, float64, float64)) uin
260 260
261 }261 }
262 cbRefPtr := purego.NewCallback(fcb)262 cbRefPtr := purego.NewCallback(fcb)
263- glib.SaveCallback(cbPtr, cbRefPtr)263+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
264 return gobject.SignalConnect(x.GoPointer(), "up", cbRefPtr)264 return gobject.SignalConnect(x.GoPointer(), "up", cbRefPtr)
265 }265 }
266 266
M v4/gtk/gtkgestureswipe.go +1 -1
@@ -107,7 +107,7 @@ func (x *GestureSwipe) ConnectSwipe(cb *func(GestureSwipe, float64, float64)) ui
107 107
108 }108 }
109 cbRefPtr := purego.NewCallback(fcb)109 cbRefPtr := purego.NewCallback(fcb)
110- glib.SaveCallback(cbPtr, cbRefPtr)110+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
111 return gobject.SignalConnect(x.GoPointer(), "swipe", cbRefPtr)111 return gobject.SignalConnect(x.GoPointer(), "swipe", cbRefPtr)
112 }112 }
113 113
M v4/gtk/gtkgesturezoom.go +1 -1
@@ -100,7 +100,7 @@ func (x *GestureZoom) ConnectScaleChanged(cb *func(GestureZoom, float64)) uint32
100 100
101 }101 }
102 cbRefPtr := purego.NewCallback(fcb)102 cbRefPtr := purego.NewCallback(fcb)
103- glib.SaveCallback(cbPtr, cbRefPtr)103+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
104 return gobject.SignalConnect(x.GoPointer(), "scale-changed", cbRefPtr)104 return gobject.SignalConnect(x.GoPointer(), "scale-changed", cbRefPtr)
105 }105 }
106 106
M v4/gtk/gtkglarea.go +3 -3
@@ -657,7 +657,7 @@ func (x *GLArea) ConnectCreateContext(cb *func(GLArea) gdk.GLContext) uint32 {
657 657
658 }658 }
659 cbRefPtr := purego.NewCallback(fcb)659 cbRefPtr := purego.NewCallback(fcb)
660- glib.SaveCallback(cbPtr, cbRefPtr)660+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
661 return gobject.SignalConnect(x.GoPointer(), "create-context", cbRefPtr)661 return gobject.SignalConnect(x.GoPointer(), "create-context", cbRefPtr)
662 }662 }
663 663
@@ -680,7 +680,7 @@ func (x *GLArea) ConnectRender(cb *func(GLArea, uintptr) bool) uint32 {
680 680
681 }681 }
682 cbRefPtr := purego.NewCallback(fcb)682 cbRefPtr := purego.NewCallback(fcb)
683- glib.SaveCallback(cbPtr, cbRefPtr)683+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
684 return gobject.SignalConnect(x.GoPointer(), "render", cbRefPtr)684 return gobject.SignalConnect(x.GoPointer(), "render", cbRefPtr)
685 }685 }
686 686
@@ -710,7 +710,7 @@ func (x *GLArea) ConnectResize(cb *func(GLArea, int, int)) uint32 {
710 710
711 }711 }
712 cbRefPtr := purego.NewCallback(fcb)712 cbRefPtr := purego.NewCallback(fcb)
713- glib.SaveCallback(cbPtr, cbRefPtr)713+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
714 return gobject.SignalConnect(x.GoPointer(), "resize", cbRefPtr)714 return gobject.SignalConnect(x.GoPointer(), "resize", cbRefPtr)
715 }715 }
716 716
M v4/gtk/gtkgridview.go +1 -1
@@ -385,7 +385,7 @@ func (x *GridView) ConnectActivate(cb *func(GridView, uint)) uint32 {
385 385
386 }386 }
387 cbRefPtr := purego.NewCallback(fcb)387 cbRefPtr := purego.NewCallback(fcb)
388- glib.SaveCallback(cbPtr, cbRefPtr)388+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
389 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)389 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
390 }390 }
391 391
M v4/gtk/gtkicontheme.go +1 -1
@@ -493,7 +493,7 @@ func (x *IconTheme) ConnectChanged(cb *func(IconTheme)) uint32 {
493 493
494 }494 }
495 cbRefPtr := purego.NewCallback(fcb)495 cbRefPtr := purego.NewCallback(fcb)
496- glib.SaveCallback(cbPtr, cbRefPtr)496+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
497 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)497 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
498 }498 }
499 499
M v4/gtk/gtkiconview.go +9 -9
@@ -573,7 +573,7 @@ func (x *IconView) SelectedForeach(FuncVar *IconViewForeachFunc, DataVar uintptr
573 cbFn(arg0, arg1, arg2)573 cbFn(arg0, arg1, arg2)
574 }574 }
575 FuncVarRef = purego.NewCallback(fcb)575 FuncVarRef = purego.NewCallback(fcb)
576- glib.SaveCallback(FuncVarPtr, FuncVarRef)576+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
577 }577 }
578 }578 }
579 579
@@ -1154,7 +1154,7 @@ func (x *IconView) ConnectActivateCursorItem(cb *func(IconView) bool) uint32 {
1154 1154
1155 }1155 }
1156 cbRefPtr := purego.NewCallback(fcb)1156 cbRefPtr := purego.NewCallback(fcb)
1157- glib.SaveCallback(cbPtr, cbRefPtr)1157+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1158 return gobject.SignalConnect(x.GoPointer(), "activate-cursor-item", cbRefPtr)1158 return gobject.SignalConnect(x.GoPointer(), "activate-cursor-item", cbRefPtr)
1159 }1159 }
1160 1160
@@ -1180,7 +1180,7 @@ func (x *IconView) ConnectItemActivated(cb *func(IconView, uintptr)) uint32 {
1180 1180
1181 }1181 }
1182 cbRefPtr := purego.NewCallback(fcb)1182 cbRefPtr := purego.NewCallback(fcb)
1183- glib.SaveCallback(cbPtr, cbRefPtr)1183+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1184 return gobject.SignalConnect(x.GoPointer(), "item-activated", cbRefPtr)1184 return gobject.SignalConnect(x.GoPointer(), "item-activated", cbRefPtr)
1185 }1185 }
1186 1186
@@ -1213,7 +1213,7 @@ func (x *IconView) ConnectMoveCursor(cb *func(IconView, MovementStep, int, bool,
1213 1213
1214 }1214 }
1215 cbRefPtr := purego.NewCallback(fcb)1215 cbRefPtr := purego.NewCallback(fcb)
1216- glib.SaveCallback(cbPtr, cbRefPtr)1216+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1217 return gobject.SignalConnect(x.GoPointer(), "move-cursor", cbRefPtr)1217 return gobject.SignalConnect(x.GoPointer(), "move-cursor", cbRefPtr)
1218 }1218 }
1219 1219
@@ -1240,7 +1240,7 @@ func (x *IconView) ConnectSelectAll(cb *func(IconView)) uint32 {
1240 1240
1241 }1241 }
1242 cbRefPtr := purego.NewCallback(fcb)1242 cbRefPtr := purego.NewCallback(fcb)
1243- glib.SaveCallback(cbPtr, cbRefPtr)1243+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1244 return gobject.SignalConnect(x.GoPointer(), "select-all", cbRefPtr)1244 return gobject.SignalConnect(x.GoPointer(), "select-all", cbRefPtr)
1245 }1245 }
1246 1246
@@ -1268,7 +1268,7 @@ func (x *IconView) ConnectSelectCursorItem(cb *func(IconView)) uint32 {
1268 1268
1269 }1269 }
1270 cbRefPtr := purego.NewCallback(fcb)1270 cbRefPtr := purego.NewCallback(fcb)
1271- glib.SaveCallback(cbPtr, cbRefPtr)1271+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1272 return gobject.SignalConnect(x.GoPointer(), "select-cursor-item", cbRefPtr)1272 return gobject.SignalConnect(x.GoPointer(), "select-cursor-item", cbRefPtr)
1273 }1273 }
1274 1274
@@ -1289,7 +1289,7 @@ func (x *IconView) ConnectSelectionChanged(cb *func(IconView)) uint32 {
1289 1289
1290 }1290 }
1291 cbRefPtr := purego.NewCallback(fcb)1291 cbRefPtr := purego.NewCallback(fcb)
1292- glib.SaveCallback(cbPtr, cbRefPtr)1292+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1293 return gobject.SignalConnect(x.GoPointer(), "selection-changed", cbRefPtr)1293 return gobject.SignalConnect(x.GoPointer(), "selection-changed", cbRefPtr)
1294 }1294 }
1295 1295
@@ -1318,7 +1318,7 @@ func (x *IconView) ConnectToggleCursorItem(cb *func(IconView)) uint32 {
1318 1318
1319 }1319 }
1320 cbRefPtr := purego.NewCallback(fcb)1320 cbRefPtr := purego.NewCallback(fcb)
1321- glib.SaveCallback(cbPtr, cbRefPtr)1321+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1322 return gobject.SignalConnect(x.GoPointer(), "toggle-cursor-item", cbRefPtr)1322 return gobject.SignalConnect(x.GoPointer(), "toggle-cursor-item", cbRefPtr)
1323 }1323 }
1324 1324
@@ -1345,7 +1345,7 @@ func (x *IconView) ConnectUnselectAll(cb *func(IconView)) uint32 {
1345 1345
1346 }1346 }
1347 cbRefPtr := purego.NewCallback(fcb)1347 cbRefPtr := purego.NewCallback(fcb)
1348- glib.SaveCallback(cbPtr, cbRefPtr)1348+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1349 return gobject.SignalConnect(x.GoPointer(), "unselect-all", cbRefPtr)1349 return gobject.SignalConnect(x.GoPointer(), "unselect-all", cbRefPtr)
1350 }1350 }
1351 1351
M v4/gtk/gtkimcontext.go +6 -6
@@ -1073,7 +1073,7 @@ func (x *IMContext) ConnectCommit(cb *func(IMContext, string)) uint32 {
1073 1073
1074 }1074 }
1075 cbRefPtr := purego.NewCallback(fcb)1075 cbRefPtr := purego.NewCallback(fcb)
1076- glib.SaveCallback(cbPtr, cbRefPtr)1076+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1077 return gobject.SignalConnect(x.GoPointer(), "commit", cbRefPtr)1077 return gobject.SignalConnect(x.GoPointer(), "commit", cbRefPtr)
1078 }1078 }
1079 1079
@@ -1094,7 +1094,7 @@ func (x *IMContext) ConnectDeleteSurrounding(cb *func(IMContext, int, int) bool)
1094 1094
1095 }1095 }
1096 cbRefPtr := purego.NewCallback(fcb)1096 cbRefPtr := purego.NewCallback(fcb)
1097- glib.SaveCallback(cbPtr, cbRefPtr)1097+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1098 return gobject.SignalConnect(x.GoPointer(), "delete-surrounding", cbRefPtr)1098 return gobject.SignalConnect(x.GoPointer(), "delete-surrounding", cbRefPtr)
1099 }1099 }
1100 1100
@@ -1118,7 +1118,7 @@ func (x *IMContext) ConnectPreeditChanged(cb *func(IMContext)) uint32 {
1118 1118
1119 }1119 }
1120 cbRefPtr := purego.NewCallback(fcb)1120 cbRefPtr := purego.NewCallback(fcb)
1121- glib.SaveCallback(cbPtr, cbRefPtr)1121+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1122 return gobject.SignalConnect(x.GoPointer(), "preedit-changed", cbRefPtr)1122 return gobject.SignalConnect(x.GoPointer(), "preedit-changed", cbRefPtr)
1123 }1123 }
1124 1124
@@ -1139,7 +1139,7 @@ func (x *IMContext) ConnectPreeditEnd(cb *func(IMContext)) uint32 {
1139 1139
1140 }1140 }
1141 cbRefPtr := purego.NewCallback(fcb)1141 cbRefPtr := purego.NewCallback(fcb)
1142- glib.SaveCallback(cbPtr, cbRefPtr)1142+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1143 return gobject.SignalConnect(x.GoPointer(), "preedit-end", cbRefPtr)1143 return gobject.SignalConnect(x.GoPointer(), "preedit-end", cbRefPtr)
1144 }1144 }
1145 1145
@@ -1160,7 +1160,7 @@ func (x *IMContext) ConnectPreeditStart(cb *func(IMContext)) uint32 {
1160 1160
1161 }1161 }
1162 cbRefPtr := purego.NewCallback(fcb)1162 cbRefPtr := purego.NewCallback(fcb)
1163- glib.SaveCallback(cbPtr, cbRefPtr)1163+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1164 return gobject.SignalConnect(x.GoPointer(), "preedit-start", cbRefPtr)1164 return gobject.SignalConnect(x.GoPointer(), "preedit-start", cbRefPtr)
1165 }1165 }
1166 1166
@@ -1184,7 +1184,7 @@ func (x *IMContext) ConnectRetrieveSurrounding(cb *func(IMContext) bool) uint32
1184 1184
1185 }1185 }
1186 cbRefPtr := purego.NewCallback(fcb)1186 cbRefPtr := purego.NewCallback(fcb)
1187- glib.SaveCallback(cbPtr, cbRefPtr)1187+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1188 return gobject.SignalConnect(x.GoPointer(), "retrieve-surrounding", cbRefPtr)1188 return gobject.SignalConnect(x.GoPointer(), "retrieve-surrounding", cbRefPtr)
1189 }1189 }
1190 1190
M v4/gtk/gtkinfobar.go +2 -2
@@ -406,7 +406,7 @@ func (x *InfoBar) ConnectClose(cb *func(InfoBar)) uint32 {
406 406
407 }407 }
408 cbRefPtr := purego.NewCallback(fcb)408 cbRefPtr := purego.NewCallback(fcb)
409- glib.SaveCallback(cbPtr, cbRefPtr)409+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
410 return gobject.SignalConnect(x.GoPointer(), "close", cbRefPtr)410 return gobject.SignalConnect(x.GoPointer(), "close", cbRefPtr)
411 }411 }
412 412
@@ -430,7 +430,7 @@ func (x *InfoBar) ConnectResponse(cb *func(InfoBar, int)) uint32 {
430 430
431 }431 }
432 cbRefPtr := purego.NewCallback(fcb)432 cbRefPtr := purego.NewCallback(fcb)
433- glib.SaveCallback(cbPtr, cbRefPtr)433+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
434 return gobject.SignalConnect(x.GoPointer(), "response", cbRefPtr)434 return gobject.SignalConnect(x.GoPointer(), "response", cbRefPtr)
435 }435 }
436 436
M v4/gtk/gtklabel.go +4 -4
@@ -1351,7 +1351,7 @@ func (x *Label) ConnectActivateCurrentLink(cb *func(Label)) uint32 {
1351 1351
1352 }1352 }
1353 cbRefPtr := purego.NewCallback(fcb)1353 cbRefPtr := purego.NewCallback(fcb)
1354- glib.SaveCallback(cbPtr, cbRefPtr)1354+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1355 return gobject.SignalConnect(x.GoPointer(), "activate-current-link", cbRefPtr)1355 return gobject.SignalConnect(x.GoPointer(), "activate-current-link", cbRefPtr)
1356 }1356 }
1357 1357
@@ -1374,7 +1374,7 @@ func (x *Label) ConnectActivateLink(cb *func(Label, string) bool) uint32 {
1374 1374
1375 }1375 }
1376 cbRefPtr := purego.NewCallback(fcb)1376 cbRefPtr := purego.NewCallback(fcb)
1377- glib.SaveCallback(cbPtr, cbRefPtr)1377+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1378 return gobject.SignalConnect(x.GoPointer(), "activate-link", cbRefPtr)1378 return gobject.SignalConnect(x.GoPointer(), "activate-link", cbRefPtr)
1379 }1379 }
1380 1380
@@ -1398,7 +1398,7 @@ func (x *Label) ConnectCopyClipboard(cb *func(Label)) uint32 {
1398 1398
1399 }1399 }
1400 cbRefPtr := purego.NewCallback(fcb)1400 cbRefPtr := purego.NewCallback(fcb)
1401- glib.SaveCallback(cbPtr, cbRefPtr)1401+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1402 return gobject.SignalConnect(x.GoPointer(), "copy-clipboard", cbRefPtr)1402 return gobject.SignalConnect(x.GoPointer(), "copy-clipboard", cbRefPtr)
1403 }1403 }
1404 1404
@@ -1436,7 +1436,7 @@ func (x *Label) ConnectMoveCursor(cb *func(Label, MovementStep, int, bool)) uint
1436 1436
1437 }1437 }
1438 cbRefPtr := purego.NewCallback(fcb)1438 cbRefPtr := purego.NewCallback(fcb)
1439- glib.SaveCallback(cbPtr, cbRefPtr)1439+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1440 return gobject.SignalConnect(x.GoPointer(), "move-cursor", cbRefPtr)1440 return gobject.SignalConnect(x.GoPointer(), "move-cursor", cbRefPtr)
1441 }1441 }
1442 1442
M v4/gtk/gtklevelbar.go +2 -2
@@ -434,7 +434,7 @@ func (x *LevelBar) ConnectOffsetChanged(cb *func(LevelBar, string)) uint32 {
434 434
435 }435 }
436 cbRefPtr := purego.NewCallback(fcb)436 cbRefPtr := purego.NewCallback(fcb)
437- glib.SaveCallback(cbPtr, cbRefPtr)437+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
438 return gobject.SignalConnect(x.GoPointer(), "offset-changed", cbRefPtr)438 return gobject.SignalConnect(x.GoPointer(), "offset-changed", cbRefPtr)
439 }439 }
440 440
@@ -456,7 +456,7 @@ func (x *LevelBar) ConnectOffsetChangedWithDetail(detail string, cb *func(LevelB
456 456
457 }457 }
458 cbRefPtr := purego.NewCallback(fcb)458 cbRefPtr := purego.NewCallback(fcb)
459- glib.SaveCallback(cbPtr, cbRefPtr)459+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
460 return gobject.SignalConnect(x.GoPointer(), signalName, cbRefPtr)460 return gobject.SignalConnect(x.GoPointer(), signalName, cbRefPtr)
461 }461 }
462 462
M v4/gtk/gtklinkbutton.go +1 -1
@@ -229,7 +229,7 @@ func (x *LinkButton) ConnectActivateLink(cb *func(LinkButton) bool) uint32 {
229 229
230 }230 }
231 cbRefPtr := purego.NewCallback(fcb)231 cbRefPtr := purego.NewCallback(fcb)
232- glib.SaveCallback(cbPtr, cbRefPtr)232+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
233 return gobject.SignalConnect(x.GoPointer(), "activate-link", cbRefPtr)233 return gobject.SignalConnect(x.GoPointer(), "activate-link", cbRefPtr)
234 }234 }
235 235
M v4/gtk/gtklistbox.go +18 -18
@@ -221,7 +221,7 @@ func (x *ListBox) BindModel(ModelVar gio.ListModel, CreateWidgetFuncVar *ListBox
221 return cbFn(arg0, arg1)221 return cbFn(arg0, arg1)
222 }222 }
223 CreateWidgetFuncVarRef = purego.NewCallback(fcb)223 CreateWidgetFuncVarRef = purego.NewCallback(fcb)
224- glib.SaveCallback(CreateWidgetFuncVarPtr, CreateWidgetFuncVarRef)224+ glib.SaveCallbackWithClosure(CreateWidgetFuncVarPtr, CreateWidgetFuncVarRef, CreateWidgetFuncVar)
225 }225 }
226 }226 }
227 227
@@ -236,7 +236,7 @@ func (x *ListBox) BindModel(ModelVar gio.ListModel, CreateWidgetFuncVar *ListBox
236 cbFn(arg0)236 cbFn(arg0)
237 }237 }
238 UserDataFreeFuncVarRef = purego.NewCallback(fcb)238 UserDataFreeFuncVarRef = purego.NewCallback(fcb)
239- glib.SaveCallback(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef)239+ glib.SaveCallbackWithClosure(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef, UserDataFreeFuncVar)
240 }240 }
241 }241 }
242 242
@@ -522,7 +522,7 @@ func (x *ListBox) SelectedForeach(FuncVar *ListBoxForeachFunc, DataVar uintptr)
522 cbFn(arg0, arg1, arg2)522 cbFn(arg0, arg1, arg2)
523 }523 }
524 FuncVarRef = purego.NewCallback(fcb)524 FuncVarRef = purego.NewCallback(fcb)
525- glib.SaveCallback(FuncVarPtr, FuncVarRef)525+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
526 }526 }
527 }527 }
528 528
@@ -586,7 +586,7 @@ func (x *ListBox) SetFilterFunc(FilterFuncVar *ListBoxFilterFunc, UserDataVar ui
586 return cbFn(arg0, arg1)586 return cbFn(arg0, arg1)
587 }587 }
588 FilterFuncVarRef = purego.NewCallback(fcb)588 FilterFuncVarRef = purego.NewCallback(fcb)
589- glib.SaveCallback(FilterFuncVarPtr, FilterFuncVarRef)589+ glib.SaveCallbackWithClosure(FilterFuncVarPtr, FilterFuncVarRef, FilterFuncVar)
590 }590 }
591 }591 }
592 592
@@ -601,7 +601,7 @@ func (x *ListBox) SetFilterFunc(FilterFuncVar *ListBoxFilterFunc, UserDataVar ui
601 cbFn(arg0)601 cbFn(arg0)
602 }602 }
603 DestroyVarRef = purego.NewCallback(fcb)603 DestroyVarRef = purego.NewCallback(fcb)
604- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)604+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
605 }605 }
606 }606 }
607 607
@@ -649,7 +649,7 @@ func (x *ListBox) SetHeaderFunc(UpdateHeaderVar *ListBoxUpdateHeaderFunc, UserDa
649 cbFn(arg0, arg1, arg2)649 cbFn(arg0, arg1, arg2)
650 }650 }
651 UpdateHeaderVarRef = purego.NewCallback(fcb)651 UpdateHeaderVarRef = purego.NewCallback(fcb)
652- glib.SaveCallback(UpdateHeaderVarPtr, UpdateHeaderVarRef)652+ glib.SaveCallbackWithClosure(UpdateHeaderVarPtr, UpdateHeaderVarRef, UpdateHeaderVar)
653 }653 }
654 }654 }
655 655
@@ -664,7 +664,7 @@ func (x *ListBox) SetHeaderFunc(UpdateHeaderVar *ListBoxUpdateHeaderFunc, UserDa
664 cbFn(arg0)664 cbFn(arg0)
665 }665 }
666 DestroyVarRef = purego.NewCallback(fcb)666 DestroyVarRef = purego.NewCallback(fcb)
667- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)667+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
668 }668 }
669 }669 }
670 670
@@ -728,7 +728,7 @@ func (x *ListBox) SetSortFunc(SortFuncVar *ListBoxSortFunc, UserDataVar uintptr,
728 return cbFn(arg0, arg1, arg2)728 return cbFn(arg0, arg1, arg2)
729 }729 }
730 SortFuncVarRef = purego.NewCallback(fcb)730 SortFuncVarRef = purego.NewCallback(fcb)
731- glib.SaveCallback(SortFuncVarPtr, SortFuncVarRef)731+ glib.SaveCallbackWithClosure(SortFuncVarPtr, SortFuncVarRef, SortFuncVar)
732 }732 }
733 }733 }
734 734
@@ -743,7 +743,7 @@ func (x *ListBox) SetSortFunc(SortFuncVar *ListBoxSortFunc, UserDataVar uintptr,
743 cbFn(arg0)743 cbFn(arg0)
744 }744 }
745 DestroyVarRef = purego.NewCallback(fcb)745 DestroyVarRef = purego.NewCallback(fcb)
746- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)746+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
747 }747 }
748 }748 }
749 749
@@ -858,7 +858,7 @@ func (x *ListBox) ConnectActivateCursorRow(cb *func(ListBox)) uint32 {
858 858
859 }859 }
860 cbRefPtr := purego.NewCallback(fcb)860 cbRefPtr := purego.NewCallback(fcb)
861- glib.SaveCallback(cbPtr, cbRefPtr)861+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
862 return gobject.SignalConnect(x.GoPointer(), "activate-cursor-row", cbRefPtr)862 return gobject.SignalConnect(x.GoPointer(), "activate-cursor-row", cbRefPtr)
863 }863 }
864 864
@@ -888,7 +888,7 @@ func (x *ListBox) ConnectMoveCursor(cb *func(ListBox, MovementStep, int, bool, b
888 888
889 }889 }
890 cbRefPtr := purego.NewCallback(fcb)890 cbRefPtr := purego.NewCallback(fcb)
891- glib.SaveCallback(cbPtr, cbRefPtr)891+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
892 return gobject.SignalConnect(x.GoPointer(), "move-cursor", cbRefPtr)892 return gobject.SignalConnect(x.GoPointer(), "move-cursor", cbRefPtr)
893 }893 }
894 894
@@ -908,7 +908,7 @@ func (x *ListBox) ConnectRowActivated(cb *func(ListBox, uintptr)) uint32 {
908 908
909 }909 }
910 cbRefPtr := purego.NewCallback(fcb)910 cbRefPtr := purego.NewCallback(fcb)
911- glib.SaveCallback(cbPtr, cbRefPtr)911+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
912 return gobject.SignalConnect(x.GoPointer(), "row-activated", cbRefPtr)912 return gobject.SignalConnect(x.GoPointer(), "row-activated", cbRefPtr)
913 }913 }
914 914
@@ -933,7 +933,7 @@ func (x *ListBox) ConnectRowSelected(cb *func(ListBox, uintptr)) uint32 {
933 933
934 }934 }
935 cbRefPtr := purego.NewCallback(fcb)935 cbRefPtr := purego.NewCallback(fcb)
936- glib.SaveCallback(cbPtr, cbRefPtr)936+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
937 return gobject.SignalConnect(x.GoPointer(), "row-selected", cbRefPtr)937 return gobject.SignalConnect(x.GoPointer(), "row-selected", cbRefPtr)
938 }938 }
939 939
@@ -958,7 +958,7 @@ func (x *ListBox) ConnectSelectAll(cb *func(ListBox)) uint32 {
958 958
959 }959 }
960 cbRefPtr := purego.NewCallback(fcb)960 cbRefPtr := purego.NewCallback(fcb)
961- glib.SaveCallback(cbPtr, cbRefPtr)961+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
962 return gobject.SignalConnect(x.GoPointer(), "select-all", cbRefPtr)962 return gobject.SignalConnect(x.GoPointer(), "select-all", cbRefPtr)
963 }963 }
964 964
@@ -978,7 +978,7 @@ func (x *ListBox) ConnectSelectedRowsChanged(cb *func(ListBox)) uint32 {
978 978
979 }979 }
980 cbRefPtr := purego.NewCallback(fcb)980 cbRefPtr := purego.NewCallback(fcb)
981- glib.SaveCallback(cbPtr, cbRefPtr)981+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
982 return gobject.SignalConnect(x.GoPointer(), "selected-rows-changed", cbRefPtr)982 return gobject.SignalConnect(x.GoPointer(), "selected-rows-changed", cbRefPtr)
983 }983 }
984 984
@@ -1000,7 +1000,7 @@ func (x *ListBox) ConnectToggleCursorRow(cb *func(ListBox)) uint32 {
1000 1000
1001 }1001 }
1002 cbRefPtr := purego.NewCallback(fcb)1002 cbRefPtr := purego.NewCallback(fcb)
1003- glib.SaveCallback(cbPtr, cbRefPtr)1003+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1004 return gobject.SignalConnect(x.GoPointer(), "toggle-cursor-row", cbRefPtr)1004 return gobject.SignalConnect(x.GoPointer(), "toggle-cursor-row", cbRefPtr)
1005 }1005 }
1006 1006
@@ -1026,7 +1026,7 @@ func (x *ListBox) ConnectUnselectAll(cb *func(ListBox)) uint32 {
1026 1026
1027 }1027 }
1028 cbRefPtr := purego.NewCallback(fcb)1028 cbRefPtr := purego.NewCallback(fcb)
1029- glib.SaveCallback(cbPtr, cbRefPtr)1029+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1030 return gobject.SignalConnect(x.GoPointer(), "unselect-all", cbRefPtr)1030 return gobject.SignalConnect(x.GoPointer(), "unselect-all", cbRefPtr)
1031 }1031 }
1032 1032
@@ -1563,7 +1563,7 @@ func (x *ListBoxRow) ConnectActivate(cb *func(ListBoxRow)) uint32 {
1563 1563
1564 }1564 }
1565 cbRefPtr := purego.NewCallback(fcb)1565 cbRefPtr := purego.NewCallback(fcb)
1566- glib.SaveCallback(cbPtr, cbRefPtr)1566+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1567 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)1567 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
1568 }1568 }
1569 1569
M v4/gtk/gtklistview.go +1 -1
@@ -440,7 +440,7 @@ func (x *ListView) ConnectActivate(cb *func(ListView, uint)) uint32 {
440 440
441 }441 }
442 cbRefPtr := purego.NewCallback(fcb)442 cbRefPtr := purego.NewCallback(fcb)
443- glib.SaveCallback(cbPtr, cbRefPtr)443+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
444 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)444 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
445 }445 }
446 446
M v4/gtk/gtkmaplistmodel.go +4 -4
@@ -97,7 +97,7 @@ func NewMapListModel(ModelVar gio.ListModel, MapFuncVar *MapListModelMapFunc, Us
97 return cbFn(arg0, arg1)97 return cbFn(arg0, arg1)
98 }98 }
99 MapFuncVarRef = purego.NewCallback(fcb)99 MapFuncVarRef = purego.NewCallback(fcb)
100- glib.SaveCallback(MapFuncVarPtr, MapFuncVarRef)100+ glib.SaveCallbackWithClosure(MapFuncVarPtr, MapFuncVarRef, MapFuncVar)
101 }101 }
102 }102 }
103 103
@@ -112,7 +112,7 @@ func NewMapListModel(ModelVar gio.ListModel, MapFuncVar *MapListModelMapFunc, Us
112 cbFn(arg0)112 cbFn(arg0)
113 }113 }
114 UserDestroyVarRef = purego.NewCallback(fcb)114 UserDestroyVarRef = purego.NewCallback(fcb)
115- glib.SaveCallback(UserDestroyVarPtr, UserDestroyVarRef)115+ glib.SaveCallbackWithClosure(UserDestroyVarPtr, UserDestroyVarRef, UserDestroyVar)
116 }116 }
117 }117 }
118 118
@@ -179,7 +179,7 @@ func (x *MapListModel) SetMapFunc(MapFuncVar *MapListModelMapFunc, UserDataVar u
179 return cbFn(arg0, arg1)179 return cbFn(arg0, arg1)
180 }180 }
181 MapFuncVarRef = purego.NewCallback(fcb)181 MapFuncVarRef = purego.NewCallback(fcb)
182- glib.SaveCallback(MapFuncVarPtr, MapFuncVarRef)182+ glib.SaveCallbackWithClosure(MapFuncVarPtr, MapFuncVarRef, MapFuncVar)
183 }183 }
184 }184 }
185 185
@@ -194,7 +194,7 @@ func (x *MapListModel) SetMapFunc(MapFuncVar *MapListModelMapFunc, UserDataVar u
194 cbFn(arg0)194 cbFn(arg0)
195 }195 }
196 UserDestroyVarRef = purego.NewCallback(fcb)196 UserDestroyVarRef = purego.NewCallback(fcb)
197- glib.SaveCallback(UserDestroyVarPtr, UserDestroyVarRef)197+ glib.SaveCallbackWithClosure(UserDestroyVarPtr, UserDestroyVarRef, UserDestroyVar)
198 }198 }
199 }199 }
200 200
M v4/gtk/gtkmenubutton.go +3 -3
@@ -367,7 +367,7 @@ func (x *MenuButton) SetCreatePopupFunc(FuncVar *MenuButtonCreatePopupFunc, User
367 cbFn(arg0, arg1)367 cbFn(arg0, arg1)
368 }368 }
369 FuncVarRef = purego.NewCallback(fcb)369 FuncVarRef = purego.NewCallback(fcb)
370- glib.SaveCallback(FuncVarPtr, FuncVarRef)370+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
371 }371 }
372 }372 }
373 373
@@ -382,7 +382,7 @@ func (x *MenuButton) SetCreatePopupFunc(FuncVar *MenuButtonCreatePopupFunc, User
382 cbFn(arg0)382 cbFn(arg0)
383 }383 }
384 DestroyNotifyVarRef = purego.NewCallback(fcb)384 DestroyNotifyVarRef = purego.NewCallback(fcb)
385- glib.SaveCallback(DestroyNotifyVarPtr, DestroyNotifyVarRef)385+ glib.SaveCallbackWithClosure(DestroyNotifyVarPtr, DestroyNotifyVarRef, DestroyNotifyVar)
386 }386 }
387 }387 }
388 388
@@ -672,7 +672,7 @@ func (x *MenuButton) ConnectActivate(cb *func(MenuButton)) uint32 {
672 672
673 }673 }
674 cbRefPtr := purego.NewCallback(fcb)674 cbRefPtr := purego.NewCallback(fcb)
675- glib.SaveCallback(cbPtr, cbRefPtr)675+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
676 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)676 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
677 }677 }
678 678
M v4/gtk/gtknativedialog.go +1 -1
@@ -451,7 +451,7 @@ func (x *NativeDialog) ConnectResponse(cb *func(NativeDialog, int)) uint32 {
451 451
452 }452 }
453 cbRefPtr := purego.NewCallback(fcb)453 cbRefPtr := purego.NewCallback(fcb)
454- glib.SaveCallback(cbPtr, cbRefPtr)454+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
455 return gobject.SignalConnect(x.GoPointer(), "response", cbRefPtr)455 return gobject.SignalConnect(x.GoPointer(), "response", cbRefPtr)
456 }456 }
457 457
M v4/gtk/gtknotebook.go +10 -10
@@ -887,7 +887,7 @@ func (x *Notebook) ConnectChangeCurrentPage(cb *func(Notebook, int) bool) uint32
887 887
888 }888 }
889 cbRefPtr := purego.NewCallback(fcb)889 cbRefPtr := purego.NewCallback(fcb)
890- glib.SaveCallback(cbPtr, cbRefPtr)890+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
891 return gobject.SignalConnect(x.GoPointer(), "change-current-page", cbRefPtr)891 return gobject.SignalConnect(x.GoPointer(), "change-current-page", cbRefPtr)
892 }892 }
893 893
@@ -915,7 +915,7 @@ func (x *Notebook) ConnectCreateWindow(cb *func(Notebook, uintptr) Notebook) uin
915 915
916 }916 }
917 cbRefPtr := purego.NewCallback(fcb)917 cbRefPtr := purego.NewCallback(fcb)
918- glib.SaveCallback(cbPtr, cbRefPtr)918+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
919 return gobject.SignalConnect(x.GoPointer(), "create-window", cbRefPtr)919 return gobject.SignalConnect(x.GoPointer(), "create-window", cbRefPtr)
920 }920 }
921 921
@@ -935,7 +935,7 @@ func (x *Notebook) ConnectFocusTab(cb *func(Notebook, NotebookTab) bool) uint32
935 935
936 }936 }
937 cbRefPtr := purego.NewCallback(fcb)937 cbRefPtr := purego.NewCallback(fcb)
938- glib.SaveCallback(cbPtr, cbRefPtr)938+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
939 return gobject.SignalConnect(x.GoPointer(), "focus-tab", cbRefPtr)939 return gobject.SignalConnect(x.GoPointer(), "focus-tab", cbRefPtr)
940 }940 }
941 941
@@ -961,7 +961,7 @@ func (x *Notebook) ConnectMoveFocusOut(cb *func(Notebook, DirectionType)) uint32
961 961
962 }962 }
963 cbRefPtr := purego.NewCallback(fcb)963 cbRefPtr := purego.NewCallback(fcb)
964- glib.SaveCallback(cbPtr, cbRefPtr)964+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
965 return gobject.SignalConnect(x.GoPointer(), "move-focus-out", cbRefPtr)965 return gobject.SignalConnect(x.GoPointer(), "move-focus-out", cbRefPtr)
966 }966 }
967 967
@@ -982,7 +982,7 @@ func (x *Notebook) ConnectPageAdded(cb *func(Notebook, uintptr, uint)) uint32 {
982 982
983 }983 }
984 cbRefPtr := purego.NewCallback(fcb)984 cbRefPtr := purego.NewCallback(fcb)
985- glib.SaveCallback(cbPtr, cbRefPtr)985+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
986 return gobject.SignalConnect(x.GoPointer(), "page-added", cbRefPtr)986 return gobject.SignalConnect(x.GoPointer(), "page-added", cbRefPtr)
987 }987 }
988 988
@@ -1003,7 +1003,7 @@ func (x *Notebook) ConnectPageRemoved(cb *func(Notebook, uintptr, uint)) uint32
1003 1003
1004 }1004 }
1005 cbRefPtr := purego.NewCallback(fcb)1005 cbRefPtr := purego.NewCallback(fcb)
1006- glib.SaveCallback(cbPtr, cbRefPtr)1006+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1007 return gobject.SignalConnect(x.GoPointer(), "page-removed", cbRefPtr)1007 return gobject.SignalConnect(x.GoPointer(), "page-removed", cbRefPtr)
1008 }1008 }
1009 1009
@@ -1024,7 +1024,7 @@ func (x *Notebook) ConnectPageReordered(cb *func(Notebook, uintptr, uint)) uint3
1024 1024
1025 }1025 }
1026 cbRefPtr := purego.NewCallback(fcb)1026 cbRefPtr := purego.NewCallback(fcb)
1027- glib.SaveCallback(cbPtr, cbRefPtr)1027+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1028 return gobject.SignalConnect(x.GoPointer(), "page-reordered", cbRefPtr)1028 return gobject.SignalConnect(x.GoPointer(), "page-reordered", cbRefPtr)
1029 }1029 }
1030 1030
@@ -1050,7 +1050,7 @@ func (x *Notebook) ConnectReorderTab(cb *func(Notebook, DirectionType, bool) boo
1050 1050
1051 }1051 }
1052 cbRefPtr := purego.NewCallback(fcb)1052 cbRefPtr := purego.NewCallback(fcb)
1053- glib.SaveCallback(cbPtr, cbRefPtr)1053+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1054 return gobject.SignalConnect(x.GoPointer(), "reorder-tab", cbRefPtr)1054 return gobject.SignalConnect(x.GoPointer(), "reorder-tab", cbRefPtr)
1055 }1055 }
1056 1056
@@ -1072,7 +1072,7 @@ func (x *Notebook) ConnectSelectPage(cb *func(Notebook, bool) bool) uint32 {
1072 1072
1073 }1073 }
1074 cbRefPtr := purego.NewCallback(fcb)1074 cbRefPtr := purego.NewCallback(fcb)
1075- glib.SaveCallback(cbPtr, cbRefPtr)1075+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1076 return gobject.SignalConnect(x.GoPointer(), "select-page", cbRefPtr)1076 return gobject.SignalConnect(x.GoPointer(), "select-page", cbRefPtr)
1077 }1077 }
1078 1078
@@ -1092,7 +1092,7 @@ func (x *Notebook) ConnectSwitchPage(cb *func(Notebook, uintptr, uint)) uint32 {
1092 1092
1093 }1093 }
1094 cbRefPtr := purego.NewCallback(fcb)1094 cbRefPtr := purego.NewCallback(fcb)
1095- glib.SaveCallback(cbPtr, cbRefPtr)1095+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1096 return gobject.SignalConnect(x.GoPointer(), "switch-page", cbRefPtr)1096 return gobject.SignalConnect(x.GoPointer(), "switch-page", cbRefPtr)
1097 }1097 }
1098 1098
M v4/gtk/gtkoverlay.go +1 -1
@@ -214,7 +214,7 @@ func (x *Overlay) ConnectGetChildPosition(cb *func(Overlay, uintptr, *uintptr) b
214 214
215 }215 }
216 cbRefPtr := purego.NewCallback(fcb)216 cbRefPtr := purego.NewCallback(fcb)
217- glib.SaveCallback(cbPtr, cbRefPtr)217+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
218 return gobject.SignalConnect(x.GoPointer(), "get-child-position", cbRefPtr)218 return gobject.SignalConnect(x.GoPointer(), "get-child-position", cbRefPtr)
219 }219 }
220 220
M v4/gtk/gtkpaned.go +6 -6
@@ -487,7 +487,7 @@ func (x *Paned) ConnectAcceptPosition(cb *func(Paned) bool) uint32 {
487 487
488 }488 }
489 cbRefPtr := purego.NewCallback(fcb)489 cbRefPtr := purego.NewCallback(fcb)
490- glib.SaveCallback(cbPtr, cbRefPtr)490+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
491 return gobject.SignalConnect(x.GoPointer(), "accept-position", cbRefPtr)491 return gobject.SignalConnect(x.GoPointer(), "accept-position", cbRefPtr)
492 }492 }
493 493
@@ -515,7 +515,7 @@ func (x *Paned) ConnectCancelPosition(cb *func(Paned) bool) uint32 {
515 515
516 }516 }
517 cbRefPtr := purego.NewCallback(fcb)517 cbRefPtr := purego.NewCallback(fcb)
518- glib.SaveCallback(cbPtr, cbRefPtr)518+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
519 return gobject.SignalConnect(x.GoPointer(), "cancel-position", cbRefPtr)519 return gobject.SignalConnect(x.GoPointer(), "cancel-position", cbRefPtr)
520 }520 }
521 521
@@ -539,7 +539,7 @@ func (x *Paned) ConnectCycleChildFocus(cb *func(Paned, bool) bool) uint32 {
539 539
540 }540 }
541 cbRefPtr := purego.NewCallback(fcb)541 cbRefPtr := purego.NewCallback(fcb)
542- glib.SaveCallback(cbPtr, cbRefPtr)542+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
543 return gobject.SignalConnect(x.GoPointer(), "cycle-child-focus", cbRefPtr)543 return gobject.SignalConnect(x.GoPointer(), "cycle-child-focus", cbRefPtr)
544 }544 }
545 545
@@ -564,7 +564,7 @@ func (x *Paned) ConnectCycleHandleFocus(cb *func(Paned, bool) bool) uint32 {
564 564
565 }565 }
566 cbRefPtr := purego.NewCallback(fcb)566 cbRefPtr := purego.NewCallback(fcb)
567- glib.SaveCallback(cbPtr, cbRefPtr)567+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
568 return gobject.SignalConnect(x.GoPointer(), "cycle-handle-focus", cbRefPtr)568 return gobject.SignalConnect(x.GoPointer(), "cycle-handle-focus", cbRefPtr)
569 }569 }
570 570
@@ -593,7 +593,7 @@ func (x *Paned) ConnectMoveHandle(cb *func(Paned, ScrollType) bool) uint32 {
593 593
594 }594 }
595 cbRefPtr := purego.NewCallback(fcb)595 cbRefPtr := purego.NewCallback(fcb)
596- glib.SaveCallback(cbPtr, cbRefPtr)596+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
597 return gobject.SignalConnect(x.GoPointer(), "move-handle", cbRefPtr)597 return gobject.SignalConnect(x.GoPointer(), "move-handle", cbRefPtr)
598 }598 }
599 599
@@ -618,7 +618,7 @@ func (x *Paned) ConnectToggleHandleFocus(cb *func(Paned) bool) uint32 {
618 618
619 }619 }
620 cbRefPtr := purego.NewCallback(fcb)620 cbRefPtr := purego.NewCallback(fcb)
621- glib.SaveCallback(cbPtr, cbRefPtr)621+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
622 return gobject.SignalConnect(x.GoPointer(), "toggle-handle-focus", cbRefPtr)622 return gobject.SignalConnect(x.GoPointer(), "toggle-handle-focus", cbRefPtr)
623 }623 }
624 624
M v4/gtk/gtkpasswordentry.go +1 -1
@@ -225,7 +225,7 @@ func (x *PasswordEntry) ConnectActivate(cb *func(PasswordEntry)) uint32 {
225 225
226 }226 }
227 cbRefPtr := purego.NewCallback(fcb)227 cbRefPtr := purego.NewCallback(fcb)
228- glib.SaveCallback(cbPtr, cbRefPtr)228+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
229 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)229 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
230 }230 }
231 231
M v4/gtk/gtkpopover.go +2 -2
@@ -572,7 +572,7 @@ func (x *Popover) ConnectActivateDefault(cb *func(Popover)) uint32 {
572 572
573 }573 }
574 cbRefPtr := purego.NewCallback(fcb)574 cbRefPtr := purego.NewCallback(fcb)
575- glib.SaveCallback(cbPtr, cbRefPtr)575+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
576 return gobject.SignalConnect(x.GoPointer(), "activate-default", cbRefPtr)576 return gobject.SignalConnect(x.GoPointer(), "activate-default", cbRefPtr)
577 }577 }
578 578
@@ -592,7 +592,7 @@ func (x *Popover) ConnectClosed(cb *func(Popover)) uint32 {
592 592
593 }593 }
594 cbRefPtr := purego.NewCallback(fcb)594 cbRefPtr := purego.NewCallback(fcb)
595- glib.SaveCallback(cbPtr, cbRefPtr)595+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
596 return gobject.SignalConnect(x.GoPointer(), "closed", cbRefPtr)596 return gobject.SignalConnect(x.GoPointer(), "closed", cbRefPtr)
597 }597 }
598 598
M v4/gtk/gtkprintdialog.go +3 -3
@@ -241,7 +241,7 @@ func (x *PrintDialog) Print(ParentVar *Window, SetupVar *PrintSetup, Cancellable
241 cbFn(arg0, arg1, arg2)241 cbFn(arg0, arg1, arg2)
242 }242 }
243 CallbackVarRef = purego.NewCallback(fcb)243 CallbackVarRef = purego.NewCallback(fcb)
244- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)244+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
245 }245 }
246 }246 }
247 247
@@ -268,7 +268,7 @@ func (x *PrintDialog) PrintFile(ParentVar *Window, SetupVar *PrintSetup, FileVar
268 cbFn(arg0, arg1, arg2)268 cbFn(arg0, arg1, arg2)
269 }269 }
270 CallbackVarRef = purego.NewCallback(fcb)270 CallbackVarRef = purego.NewCallback(fcb)
271- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)271+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
272 }272 }
273 }273 }
274 274
@@ -405,7 +405,7 @@ func (x *PrintDialog) Setup(ParentVar *Window, CancellableVar *gio.Cancellable,
405 cbFn(arg0, arg1, arg2)405 cbFn(arg0, arg1, arg2)
406 }406 }
407 CallbackVarRef = purego.NewCallback(fcb)407 CallbackVarRef = purego.NewCallback(fcb)
408- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)408+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
409 }409 }
410 }410 }
411 411
M v4/gtk/gtkprinter.go +3 -3
@@ -86,7 +86,7 @@ func EnumeratePrinters(FuncVar *PrinterFunc, DataVar uintptr, DestroyVar *glib.D
86 return cbFn(arg0, arg1)86 return cbFn(arg0, arg1)
87 }87 }
88 FuncVarRef = purego.NewCallback(fcb)88 FuncVarRef = purego.NewCallback(fcb)
89- glib.SaveCallback(FuncVarPtr, FuncVarRef)89+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
90 }90 }
91 }91 }
92 92
@@ -101,7 +101,7 @@ func EnumeratePrinters(FuncVar *PrinterFunc, DataVar uintptr, DestroyVar *glib.D
101 cbFn(arg0)101 cbFn(arg0)
102 }102 }
103 DestroyVarRef = purego.NewCallback(fcb)103 DestroyVarRef = purego.NewCallback(fcb)
104- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)104+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
105 }105 }
106 }106 }
107 107
@@ -564,7 +564,7 @@ func (x *Printer) ConnectDetailsAcquired(cb *func(Printer, bool)) uint32 {
564 564
565 }565 }
566 cbRefPtr := purego.NewCallback(fcb)566 cbRefPtr := purego.NewCallback(fcb)
567- glib.SaveCallback(cbPtr, cbRefPtr)567+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
568 return gobject.SignalConnect(x.GoPointer(), "details-acquired", cbRefPtr)568 return gobject.SignalConnect(x.GoPointer(), "details-acquired", cbRefPtr)
569 }569 }
570 570
M v4/gtk/gtkprintjob.go +3 -3
@@ -257,7 +257,7 @@ func (x *PrintJob) Send(CallbackVar *PrintJobCompleteFunc, UserDataVar uintptr,
257 cbFn(arg0, arg1, arg2)257 cbFn(arg0, arg1, arg2)
258 }258 }
259 CallbackVarRef = purego.NewCallback(fcb)259 CallbackVarRef = purego.NewCallback(fcb)
260- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)260+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
261 }261 }
262 }262 }
263 263
@@ -272,7 +272,7 @@ func (x *PrintJob) Send(CallbackVar *PrintJobCompleteFunc, UserDataVar uintptr,
272 cbFn(arg0)272 cbFn(arg0)
273 }273 }
274 DnotifyVarRef = purego.NewCallback(fcb)274 DnotifyVarRef = purego.NewCallback(fcb)
275- glib.SaveCallback(DnotifyVarPtr, DnotifyVarRef)275+ glib.SaveCallbackWithClosure(DnotifyVarPtr, DnotifyVarRef, DnotifyVar)
276 }276 }
277 }277 }
278 278
@@ -500,7 +500,7 @@ func (x *PrintJob) ConnectStatusChanged(cb *func(PrintJob)) uint32 {
500 500
501 }501 }
502 cbRefPtr := purego.NewCallback(fcb)502 cbRefPtr := purego.NewCallback(fcb)
503- glib.SaveCallback(cbPtr, cbRefPtr)503+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
504 return gobject.SignalConnect(x.GoPointer(), "status-changed", cbRefPtr)504 return gobject.SignalConnect(x.GoPointer(), "status-changed", cbRefPtr)
505 }505 }
506 506
M v4/gtk/gtkprintoperation.go +12 -12
@@ -541,7 +541,7 @@ func PrintRunPageSetupDialogAsync(ParentVar *Window, PageSetupVar *PageSetup, Se
541 cbFn(arg0, arg1)541 cbFn(arg0, arg1)
542 }542 }
543 DoneCbVarRef = purego.NewCallback(fcb)543 DoneCbVarRef = purego.NewCallback(fcb)
544- glib.SaveCallback(DoneCbVarPtr, DoneCbVarRef)544+ glib.SaveCallbackWithClosure(DoneCbVarPtr, DoneCbVarRef, DoneCbVar)
545 }545 }
546 }546 }
547 547
@@ -1516,7 +1516,7 @@ func (x *PrintOperation) ConnectBeginPrint(cb *func(PrintOperation, uintptr)) ui
1516 1516
1517 }1517 }
1518 cbRefPtr := purego.NewCallback(fcb)1518 cbRefPtr := purego.NewCallback(fcb)
1519- glib.SaveCallback(cbPtr, cbRefPtr)1519+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1520 return gobject.SignalConnect(x.GoPointer(), "begin-print", cbRefPtr)1520 return gobject.SignalConnect(x.GoPointer(), "begin-print", cbRefPtr)
1521 }1521 }
1522 1522
@@ -1547,7 +1547,7 @@ func (x *PrintOperation) ConnectCreateCustomWidget(cb *func(PrintOperation) gobj
1547 1547
1548 }1548 }
1549 cbRefPtr := purego.NewCallback(fcb)1549 cbRefPtr := purego.NewCallback(fcb)
1550- glib.SaveCallback(cbPtr, cbRefPtr)1550+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1551 return gobject.SignalConnect(x.GoPointer(), "create-custom-widget", cbRefPtr)1551 return gobject.SignalConnect(x.GoPointer(), "create-custom-widget", cbRefPtr)
1552 }1552 }
1553 1553
@@ -1572,7 +1572,7 @@ func (x *PrintOperation) ConnectCustomWidgetApply(cb *func(PrintOperation, uintp
1572 1572
1573 }1573 }
1574 cbRefPtr := purego.NewCallback(fcb)1574 cbRefPtr := purego.NewCallback(fcb)
1575- glib.SaveCallback(cbPtr, cbRefPtr)1575+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1576 return gobject.SignalConnect(x.GoPointer(), "custom-widget-apply", cbRefPtr)1576 return gobject.SignalConnect(x.GoPointer(), "custom-widget-apply", cbRefPtr)
1577 }1577 }
1578 1578
@@ -1601,7 +1601,7 @@ func (x *PrintOperation) ConnectDone(cb *func(PrintOperation, PrintOperationResu
1601 1601
1602 }1602 }
1603 cbRefPtr := purego.NewCallback(fcb)1603 cbRefPtr := purego.NewCallback(fcb)
1604- glib.SaveCallback(cbPtr, cbRefPtr)1604+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1605 return gobject.SignalConnect(x.GoPointer(), "done", cbRefPtr)1605 return gobject.SignalConnect(x.GoPointer(), "done", cbRefPtr)
1606 }1606 }
1607 1607
@@ -1674,7 +1674,7 @@ func (x *PrintOperation) ConnectDrawPage(cb *func(PrintOperation, uintptr, int))
1674 1674
1675 }1675 }
1676 cbRefPtr := purego.NewCallback(fcb)1676 cbRefPtr := purego.NewCallback(fcb)
1677- glib.SaveCallback(cbPtr, cbRefPtr)1677+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1678 return gobject.SignalConnect(x.GoPointer(), "draw-page", cbRefPtr)1678 return gobject.SignalConnect(x.GoPointer(), "draw-page", cbRefPtr)
1679 }1679 }
1680 1680
@@ -1697,7 +1697,7 @@ func (x *PrintOperation) ConnectEndPrint(cb *func(PrintOperation, uintptr)) uint
1697 1697
1698 }1698 }
1699 cbRefPtr := purego.NewCallback(fcb)1699 cbRefPtr := purego.NewCallback(fcb)
1700- glib.SaveCallback(cbPtr, cbRefPtr)1700+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1701 return gobject.SignalConnect(x.GoPointer(), "end-print", cbRefPtr)1701 return gobject.SignalConnect(x.GoPointer(), "end-print", cbRefPtr)
1702 }1702 }
1703 1703
@@ -1730,7 +1730,7 @@ func (x *PrintOperation) ConnectPaginate(cb *func(PrintOperation, uintptr) bool)
1730 1730
1731 }1731 }
1732 cbRefPtr := purego.NewCallback(fcb)1732 cbRefPtr := purego.NewCallback(fcb)
1733- glib.SaveCallback(cbPtr, cbRefPtr)1733+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1734 return gobject.SignalConnect(x.GoPointer(), "paginate", cbRefPtr)1734 return gobject.SignalConnect(x.GoPointer(), "paginate", cbRefPtr)
1735 }1735 }
1736 1736
@@ -1766,7 +1766,7 @@ func (x *PrintOperation) ConnectPreview(cb *func(PrintOperation, uintptr, uintpt
1766 1766
1767 }1767 }
1768 cbRefPtr := purego.NewCallback(fcb)1768 cbRefPtr := purego.NewCallback(fcb)
1769- glib.SaveCallback(cbPtr, cbRefPtr)1769+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1770 return gobject.SignalConnect(x.GoPointer(), "preview", cbRefPtr)1770 return gobject.SignalConnect(x.GoPointer(), "preview", cbRefPtr)
1771 }1771 }
1772 1772
@@ -1790,7 +1790,7 @@ func (x *PrintOperation) ConnectRequestPageSetup(cb *func(PrintOperation, uintpt
1790 1790
1791 }1791 }
1792 cbRefPtr := purego.NewCallback(fcb)1792 cbRefPtr := purego.NewCallback(fcb)
1793- glib.SaveCallback(cbPtr, cbRefPtr)1793+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1794 return gobject.SignalConnect(x.GoPointer(), "request-page-setup", cbRefPtr)1794 return gobject.SignalConnect(x.GoPointer(), "request-page-setup", cbRefPtr)
1795 }1795 }
1796 1796
@@ -1814,7 +1814,7 @@ func (x *PrintOperation) ConnectStatusChanged(cb *func(PrintOperation)) uint32 {
1814 1814
1815 }1815 }
1816 cbRefPtr := purego.NewCallback(fcb)1816 cbRefPtr := purego.NewCallback(fcb)
1817- glib.SaveCallback(cbPtr, cbRefPtr)1817+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1818 return gobject.SignalConnect(x.GoPointer(), "status-changed", cbRefPtr)1818 return gobject.SignalConnect(x.GoPointer(), "status-changed", cbRefPtr)
1819 }1819 }
1820 1820
@@ -1837,7 +1837,7 @@ func (x *PrintOperation) ConnectUpdateCustomWidget(cb *func(PrintOperation, uint
1837 1837
1838 }1838 }
1839 cbRefPtr := purego.NewCallback(fcb)1839 cbRefPtr := purego.NewCallback(fcb)
1840- glib.SaveCallback(cbPtr, cbRefPtr)1840+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1841 return gobject.SignalConnect(x.GoPointer(), "update-custom-widget", cbRefPtr)1841 return gobject.SignalConnect(x.GoPointer(), "update-custom-widget", cbRefPtr)
1842 }1842 }
1843 1843
M v4/gtk/gtkprintsettings.go +1 -1
@@ -269,7 +269,7 @@ func (x *PrintSettings) Foreach(FuncVar *PrintSettingsFunc, UserDataVar uintptr)
269 cbFn(arg0, arg1, arg2)269 cbFn(arg0, arg1, arg2)
270 }270 }
271 FuncVarRef = purego.NewCallback(fcb)271 FuncVarRef = purego.NewCallback(fcb)
272- glib.SaveCallback(FuncVarPtr, FuncVarRef)272+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
273 }273 }
274 }274 }
275 275
M v4/gtk/gtkrange.go +4 -4
@@ -590,7 +590,7 @@ func (x *Range) ConnectAdjustBounds(cb *func(Range, float64)) uint32 {
590 590
591 }591 }
592 cbRefPtr := purego.NewCallback(fcb)592 cbRefPtr := purego.NewCallback(fcb)
593- glib.SaveCallback(cbPtr, cbRefPtr)593+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
594 return gobject.SignalConnect(x.GoPointer(), "adjust-bounds", cbRefPtr)594 return gobject.SignalConnect(x.GoPointer(), "adjust-bounds", cbRefPtr)
595 }595 }
596 596
@@ -621,7 +621,7 @@ func (x *Range) ConnectChangeValue(cb *func(Range, ScrollType, float64) bool) ui
621 621
622 }622 }
623 cbRefPtr := purego.NewCallback(fcb)623 cbRefPtr := purego.NewCallback(fcb)
624- glib.SaveCallback(cbPtr, cbRefPtr)624+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
625 return gobject.SignalConnect(x.GoPointer(), "change-value", cbRefPtr)625 return gobject.SignalConnect(x.GoPointer(), "change-value", cbRefPtr)
626 }626 }
627 627
@@ -643,7 +643,7 @@ func (x *Range) ConnectMoveSlider(cb *func(Range, ScrollType)) uint32 {
643 643
644 }644 }
645 cbRefPtr := purego.NewCallback(fcb)645 cbRefPtr := purego.NewCallback(fcb)
646- glib.SaveCallback(cbPtr, cbRefPtr)646+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
647 return gobject.SignalConnect(x.GoPointer(), "move-slider", cbRefPtr)647 return gobject.SignalConnect(x.GoPointer(), "move-slider", cbRefPtr)
648 }648 }
649 649
@@ -663,7 +663,7 @@ func (x *Range) ConnectValueChanged(cb *func(Range)) uint32 {
663 663
664 }664 }
665 cbRefPtr := purego.NewCallback(fcb)665 cbRefPtr := purego.NewCallback(fcb)
666- glib.SaveCallback(cbPtr, cbRefPtr)666+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
667 return gobject.SignalConnect(x.GoPointer(), "value-changed", cbRefPtr)667 return gobject.SignalConnect(x.GoPointer(), "value-changed", cbRefPtr)
668 }668 }
669 669
M v4/gtk/gtkrecentmanager.go +1 -1
@@ -833,7 +833,7 @@ func (x *RecentManager) ConnectChanged(cb *func(RecentManager)) uint32 {
833 833
834 }834 }
835 cbRefPtr := purego.NewCallback(fcb)835 cbRefPtr := purego.NewCallback(fcb)
836- glib.SaveCallback(cbPtr, cbRefPtr)836+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
837 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)837 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
838 }838 }
839 839
M v4/gtk/gtkscale.go +2 -2
@@ -372,7 +372,7 @@ func (x *Scale) SetFormatValueFunc(FuncVar *ScaleFormatValueFunc, UserDataVar ui
372 return cbFn(arg0, arg1, arg2)372 return cbFn(arg0, arg1, arg2)
373 }373 }
374 FuncVarRef = purego.NewCallback(fcb)374 FuncVarRef = purego.NewCallback(fcb)
375- glib.SaveCallback(FuncVarPtr, FuncVarRef)375+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
376 }376 }
377 }377 }
378 378
@@ -387,7 +387,7 @@ func (x *Scale) SetFormatValueFunc(FuncVar *ScaleFormatValueFunc, UserDataVar ui
387 cbFn(arg0)387 cbFn(arg0)
388 }388 }
389 DestroyNotifyVarRef = purego.NewCallback(fcb)389 DestroyNotifyVarRef = purego.NewCallback(fcb)
390- glib.SaveCallback(DestroyNotifyVarPtr, DestroyNotifyVarRef)390+ glib.SaveCallbackWithClosure(DestroyNotifyVarPtr, DestroyNotifyVarRef, DestroyNotifyVar)
391 }391 }
392 }392 }
393 393
M v4/gtk/gtkscalebutton.go +3 -3
@@ -377,7 +377,7 @@ func (x *ScaleButton) ConnectPopdown(cb *func(ScaleButton)) uint32 {
377 377
378 }378 }
379 cbRefPtr := purego.NewCallback(fcb)379 cbRefPtr := purego.NewCallback(fcb)
380- glib.SaveCallback(cbPtr, cbRefPtr)380+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
381 return gobject.SignalConnect(x.GoPointer(), "popdown", cbRefPtr)381 return gobject.SignalConnect(x.GoPointer(), "popdown", cbRefPtr)
382 }382 }
383 383
@@ -402,7 +402,7 @@ func (x *ScaleButton) ConnectPopup(cb *func(ScaleButton)) uint32 {
402 402
403 }403 }
404 cbRefPtr := purego.NewCallback(fcb)404 cbRefPtr := purego.NewCallback(fcb)
405- glib.SaveCallback(cbPtr, cbRefPtr)405+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
406 return gobject.SignalConnect(x.GoPointer(), "popup", cbRefPtr)406 return gobject.SignalConnect(x.GoPointer(), "popup", cbRefPtr)
407 }407 }
408 408
@@ -422,7 +422,7 @@ func (x *ScaleButton) ConnectValueChanged(cb *func(ScaleButton, float64)) uint32
422 422
423 }423 }
424 cbRefPtr := purego.NewCallback(fcb)424 cbRefPtr := purego.NewCallback(fcb)
425- glib.SaveCallback(cbPtr, cbRefPtr)425+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
426 return gobject.SignalConnect(x.GoPointer(), "value-changed", cbRefPtr)426 return gobject.SignalConnect(x.GoPointer(), "value-changed", cbRefPtr)
427 }427 }
428 428
M v4/gtk/gtkscrolledwindow.go +4 -4
@@ -799,7 +799,7 @@ func (x *ScrolledWindow) ConnectEdgeOvershot(cb *func(ScrolledWindow, PositionTy
799 799
800 }800 }
801 cbRefPtr := purego.NewCallback(fcb)801 cbRefPtr := purego.NewCallback(fcb)
802- glib.SaveCallback(cbPtr, cbRefPtr)802+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
803 return gobject.SignalConnect(x.GoPointer(), "edge-overshot", cbRefPtr)803 return gobject.SignalConnect(x.GoPointer(), "edge-overshot", cbRefPtr)
804 }804 }
805 805
@@ -827,7 +827,7 @@ func (x *ScrolledWindow) ConnectEdgeReached(cb *func(ScrolledWindow, PositionTyp
827 827
828 }828 }
829 cbRefPtr := purego.NewCallback(fcb)829 cbRefPtr := purego.NewCallback(fcb)
830- glib.SaveCallback(cbPtr, cbRefPtr)830+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
831 return gobject.SignalConnect(x.GoPointer(), "edge-reached", cbRefPtr)831 return gobject.SignalConnect(x.GoPointer(), "edge-reached", cbRefPtr)
832 }832 }
833 833
@@ -854,7 +854,7 @@ func (x *ScrolledWindow) ConnectMoveFocusOut(cb *func(ScrolledWindow, DirectionT
854 854
855 }855 }
856 cbRefPtr := purego.NewCallback(fcb)856 cbRefPtr := purego.NewCallback(fcb)
857- glib.SaveCallback(cbPtr, cbRefPtr)857+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
858 return gobject.SignalConnect(x.GoPointer(), "move-focus-out", cbRefPtr)858 return gobject.SignalConnect(x.GoPointer(), "move-focus-out", cbRefPtr)
859 }859 }
860 860
@@ -879,7 +879,7 @@ func (x *ScrolledWindow) ConnectScrollChild(cb *func(ScrolledWindow, ScrollType,
879 879
880 }880 }
881 cbRefPtr := purego.NewCallback(fcb)881 cbRefPtr := purego.NewCallback(fcb)
882- glib.SaveCallback(cbPtr, cbRefPtr)882+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
883 return gobject.SignalConnect(x.GoPointer(), "scroll-child", cbRefPtr)883 return gobject.SignalConnect(x.GoPointer(), "scroll-child", cbRefPtr)
884 }884 }
885 885
M v4/gtk/gtksearchentry.go +6 -6
@@ -310,7 +310,7 @@ func (x *SearchEntry) ConnectActivate(cb *func(SearchEntry)) uint32 {
310 310
311 }311 }
312 cbRefPtr := purego.NewCallback(fcb)312 cbRefPtr := purego.NewCallback(fcb)
313- glib.SaveCallback(cbPtr, cbRefPtr)313+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
314 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)314 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
315 }315 }
316 316
@@ -338,7 +338,7 @@ func (x *SearchEntry) ConnectNextMatch(cb *func(SearchEntry)) uint32 {
338 338
339 }339 }
340 cbRefPtr := purego.NewCallback(fcb)340 cbRefPtr := purego.NewCallback(fcb)
341- glib.SaveCallback(cbPtr, cbRefPtr)341+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
342 return gobject.SignalConnect(x.GoPointer(), "next-match", cbRefPtr)342 return gobject.SignalConnect(x.GoPointer(), "next-match", cbRefPtr)
343 }343 }
344 344
@@ -367,7 +367,7 @@ func (x *SearchEntry) ConnectPreviousMatch(cb *func(SearchEntry)) uint32 {
367 367
368 }368 }
369 cbRefPtr := purego.NewCallback(fcb)369 cbRefPtr := purego.NewCallback(fcb)
370- glib.SaveCallback(cbPtr, cbRefPtr)370+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
371 return gobject.SignalConnect(x.GoPointer(), "previous-match", cbRefPtr)371 return gobject.SignalConnect(x.GoPointer(), "previous-match", cbRefPtr)
372 }372 }
373 373
@@ -389,7 +389,7 @@ func (x *SearchEntry) ConnectSearchChanged(cb *func(SearchEntry)) uint32 {
389 389
390 }390 }
391 cbRefPtr := purego.NewCallback(fcb)391 cbRefPtr := purego.NewCallback(fcb)
392- glib.SaveCallback(cbPtr, cbRefPtr)392+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
393 return gobject.SignalConnect(x.GoPointer(), "search-changed", cbRefPtr)393 return gobject.SignalConnect(x.GoPointer(), "search-changed", cbRefPtr)
394 }394 }
395 395
@@ -409,7 +409,7 @@ func (x *SearchEntry) ConnectSearchStarted(cb *func(SearchEntry)) uint32 {
409 409
410 }410 }
411 cbRefPtr := purego.NewCallback(fcb)411 cbRefPtr := purego.NewCallback(fcb)
412- glib.SaveCallback(cbPtr, cbRefPtr)412+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
413 return gobject.SignalConnect(x.GoPointer(), "search-started", cbRefPtr)413 return gobject.SignalConnect(x.GoPointer(), "search-started", cbRefPtr)
414 }414 }
415 415
@@ -436,7 +436,7 @@ func (x *SearchEntry) ConnectStopSearch(cb *func(SearchEntry)) uint32 {
436 436
437 }437 }
438 cbRefPtr := purego.NewCallback(fcb)438 cbRefPtr := purego.NewCallback(fcb)
439- glib.SaveCallback(cbPtr, cbRefPtr)439+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
440 return gobject.SignalConnect(x.GoPointer(), "stop-search", cbRefPtr)440 return gobject.SignalConnect(x.GoPointer(), "stop-search", cbRefPtr)
441 }441 }
442 442
M v4/gtk/gtkshortcutaction.go +2 -2
@@ -175,7 +175,7 @@ func NewCallbackAction(CallbackVar *ShortcutFunc, DataVar uintptr, DestroyVar *g
175 return cbFn(arg0, arg1, arg2)175 return cbFn(arg0, arg1, arg2)
176 }176 }
177 CallbackVarRef = purego.NewCallback(fcb)177 CallbackVarRef = purego.NewCallback(fcb)
178- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)178+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
179 }179 }
180 }180 }
181 181
@@ -190,7 +190,7 @@ func NewCallbackAction(CallbackVar *ShortcutFunc, DataVar uintptr, DestroyVar *g
190 cbFn(arg0)190 cbFn(arg0)
191 }191 }
192 DestroyVarRef = purego.NewCallback(fcb)192 DestroyVarRef = purego.NewCallback(fcb)
193- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)193+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
194 }194 }
195 }195 }
196 196
M v4/gtk/gtkshortcutssection.go +1 -1
@@ -216,7 +216,7 @@ func (x *ShortcutsSection) ConnectChangeCurrentPage(cb *func(ShortcutsSection, i
216 216
217 }217 }
218 cbRefPtr := purego.NewCallback(fcb)218 cbRefPtr := purego.NewCallback(fcb)
219- glib.SaveCallback(cbPtr, cbRefPtr)219+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
220 return gobject.SignalConnect(x.GoPointer(), "change-current-page", cbRefPtr)220 return gobject.SignalConnect(x.GoPointer(), "change-current-page", cbRefPtr)
221 }221 }
222 222
M v4/gtk/gtkshortcutswindow.go +2 -2
@@ -200,7 +200,7 @@ func (x *ShortcutsWindow) ConnectClose(cb *func(ShortcutsWindow)) uint32 {
200 200
201 }201 }
202 cbRefPtr := purego.NewCallback(fcb)202 cbRefPtr := purego.NewCallback(fcb)
203- glib.SaveCallback(cbPtr, cbRefPtr)203+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
204 return gobject.SignalConnect(x.GoPointer(), "close", cbRefPtr)204 return gobject.SignalConnect(x.GoPointer(), "close", cbRefPtr)
205 }205 }
206 206
@@ -224,7 +224,7 @@ func (x *ShortcutsWindow) ConnectSearch(cb *func(ShortcutsWindow)) uint32 {
224 224
225 }225 }
226 cbRefPtr := purego.NewCallback(fcb)226 cbRefPtr := purego.NewCallback(fcb)
227- glib.SaveCallback(cbPtr, cbRefPtr)227+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
228 return gobject.SignalConnect(x.GoPointer(), "search", cbRefPtr)228 return gobject.SignalConnect(x.GoPointer(), "search", cbRefPtr)
229 }229 }
230 230
M v4/gtk/gtkshow.go +1 -1
@@ -42,7 +42,7 @@ func ShowUriFull(ParentVar *Window, UriVar string, TimestampVar uint32, Cancella
42 cbFn(arg0, arg1, arg2)42 cbFn(arg0, arg1, arg2)
43 }43 }
44 CallbackVarRef = purego.NewCallback(fcb)44 CallbackVarRef = purego.NewCallback(fcb)
45- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)45+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
46 }46 }
47 }47 }
48 48
M v4/gtk/gtksignallistitemfactory.go +4 -4
@@ -130,7 +130,7 @@ func (x *SignalListItemFactory) ConnectBind(cb *func(SignalListItemFactory, uint
130 130
131 }131 }
132 cbRefPtr := purego.NewCallback(fcb)132 cbRefPtr := purego.NewCallback(fcb)
133- glib.SaveCallback(cbPtr, cbRefPtr)133+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
134 return gobject.SignalConnect(x.GoPointer(), "bind", cbRefPtr)134 return gobject.SignalConnect(x.GoPointer(), "bind", cbRefPtr)
135 }135 }
136 136
@@ -158,7 +158,7 @@ func (x *SignalListItemFactory) ConnectSetup(cb *func(SignalListItemFactory, uin
158 158
159 }159 }
160 cbRefPtr := purego.NewCallback(fcb)160 cbRefPtr := purego.NewCallback(fcb)
161- glib.SaveCallback(cbPtr, cbRefPtr)161+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
162 return gobject.SignalConnect(x.GoPointer(), "setup", cbRefPtr)162 return gobject.SignalConnect(x.GoPointer(), "setup", cbRefPtr)
163 }163 }
164 164
@@ -183,7 +183,7 @@ func (x *SignalListItemFactory) ConnectTeardown(cb *func(SignalListItemFactory,
183 183
184 }184 }
185 cbRefPtr := purego.NewCallback(fcb)185 cbRefPtr := purego.NewCallback(fcb)
186- glib.SaveCallback(cbPtr, cbRefPtr)186+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
187 return gobject.SignalConnect(x.GoPointer(), "teardown", cbRefPtr)187 return gobject.SignalConnect(x.GoPointer(), "teardown", cbRefPtr)
188 }188 }
189 189
@@ -210,7 +210,7 @@ func (x *SignalListItemFactory) ConnectUnbind(cb *func(SignalListItemFactory, ui
210 210
211 }211 }
212 cbRefPtr := purego.NewCallback(fcb)212 cbRefPtr := purego.NewCallback(fcb)
213- glib.SaveCallback(cbPtr, cbRefPtr)213+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
214 return gobject.SignalConnect(x.GoPointer(), "unbind", cbRefPtr)214 return gobject.SignalConnect(x.GoPointer(), "unbind", cbRefPtr)
215 }215 }
216 216
M v4/gtk/gtksorter.go +1 -1
@@ -458,7 +458,7 @@ func (x *Sorter) ConnectChanged(cb *func(Sorter, SorterChange)) uint32 {
458 458
459 }459 }
460 cbRefPtr := purego.NewCallback(fcb)460 cbRefPtr := purego.NewCallback(fcb)
461- glib.SaveCallback(cbPtr, cbRefPtr)461+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
462 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)462 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
463 }463 }
464 464
M v4/gtk/gtkspinbutton.go +6 -6
@@ -704,7 +704,7 @@ func (x *SpinButton) ConnectActivate(cb *func(SpinButton)) uint32 {
704 704
705 }705 }
706 cbRefPtr := purego.NewCallback(fcb)706 cbRefPtr := purego.NewCallback(fcb)
707- glib.SaveCallback(cbPtr, cbRefPtr)707+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
708 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)708 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
709 }709 }
710 710
@@ -732,7 +732,7 @@ func (x *SpinButton) ConnectChangeValue(cb *func(SpinButton, ScrollType)) uint32
732 732
733 }733 }
734 cbRefPtr := purego.NewCallback(fcb)734 cbRefPtr := purego.NewCallback(fcb)
735- glib.SaveCallback(cbPtr, cbRefPtr)735+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
736 return gobject.SignalConnect(x.GoPointer(), "change-value", cbRefPtr)736 return gobject.SignalConnect(x.GoPointer(), "change-value", cbRefPtr)
737 }737 }
738 738
@@ -758,7 +758,7 @@ func (x *SpinButton) ConnectInput(cb *func(SpinButton, *float64) int) uint32 {
758 758
759 }759 }
760 cbRefPtr := purego.NewCallback(fcb)760 cbRefPtr := purego.NewCallback(fcb)
761- glib.SaveCallback(cbPtr, cbRefPtr)761+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
762 return gobject.SignalConnect(x.GoPointer(), "input", cbRefPtr)762 return gobject.SignalConnect(x.GoPointer(), "input", cbRefPtr)
763 }763 }
764 764
@@ -799,7 +799,7 @@ func (x *SpinButton) ConnectOutput(cb *func(SpinButton) bool) uint32 {
799 799
800 }800 }
801 cbRefPtr := purego.NewCallback(fcb)801 cbRefPtr := purego.NewCallback(fcb)
802- glib.SaveCallback(cbPtr, cbRefPtr)802+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
803 return gobject.SignalConnect(x.GoPointer(), "output", cbRefPtr)803 return gobject.SignalConnect(x.GoPointer(), "output", cbRefPtr)
804 }804 }
805 805
@@ -821,7 +821,7 @@ func (x *SpinButton) ConnectValueChanged(cb *func(SpinButton)) uint32 {
821 821
822 }822 }
823 cbRefPtr := purego.NewCallback(fcb)823 cbRefPtr := purego.NewCallback(fcb)
824- glib.SaveCallback(cbPtr, cbRefPtr)824+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
825 return gobject.SignalConnect(x.GoPointer(), "value-changed", cbRefPtr)825 return gobject.SignalConnect(x.GoPointer(), "value-changed", cbRefPtr)
826 }826 }
827 827
@@ -842,7 +842,7 @@ func (x *SpinButton) ConnectWrapped(cb *func(SpinButton)) uint32 {
842 842
843 }843 }
844 cbRefPtr := purego.NewCallback(fcb)844 cbRefPtr := purego.NewCallback(fcb)
845- glib.SaveCallback(cbPtr, cbRefPtr)845+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
846 return gobject.SignalConnect(x.GoPointer(), "wrapped", cbRefPtr)846 return gobject.SignalConnect(x.GoPointer(), "wrapped", cbRefPtr)
847 }847 }
848 848
M v4/gtk/gtkstatusbar.go +2 -2
@@ -169,7 +169,7 @@ func (x *Statusbar) ConnectTextPopped(cb *func(Statusbar, uint, string)) uint32
169 169
170 }170 }
171 cbRefPtr := purego.NewCallback(fcb)171 cbRefPtr := purego.NewCallback(fcb)
172- glib.SaveCallback(cbPtr, cbRefPtr)172+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
173 return gobject.SignalConnect(x.GoPointer(), "text-popped", cbRefPtr)173 return gobject.SignalConnect(x.GoPointer(), "text-popped", cbRefPtr)
174 }174 }
175 175
@@ -189,7 +189,7 @@ func (x *Statusbar) ConnectTextPushed(cb *func(Statusbar, uint, string)) uint32
189 189
190 }190 }
191 cbRefPtr := purego.NewCallback(fcb)191 cbRefPtr := purego.NewCallback(fcb)
192- glib.SaveCallback(cbPtr, cbRefPtr)192+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
193 return gobject.SignalConnect(x.GoPointer(), "text-pushed", cbRefPtr)193 return gobject.SignalConnect(x.GoPointer(), "text-pushed", cbRefPtr)
194 }194 }
195 195
M v4/gtk/gtkswitch.go +2 -2
@@ -211,7 +211,7 @@ func (x *Switch) ConnectActivate(cb *func(Switch)) uint32 {
211 211
212 }212 }
213 cbRefPtr := purego.NewCallback(fcb)213 cbRefPtr := purego.NewCallback(fcb)
214- glib.SaveCallback(cbPtr, cbRefPtr)214+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
215 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)215 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
216 }216 }
217 217
@@ -241,7 +241,7 @@ func (x *Switch) ConnectStateSet(cb *func(Switch, bool) bool) uint32 {
241 241
242 }242 }
243 cbRefPtr := purego.NewCallback(fcb)243 cbRefPtr := purego.NewCallback(fcb)
244- glib.SaveCallback(cbPtr, cbRefPtr)244+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
245 return gobject.SignalConnect(x.GoPointer(), "state-set", cbRefPtr)245 return gobject.SignalConnect(x.GoPointer(), "state-set", cbRefPtr)
246 }246 }
247 247
M v4/gtk/gtktext.go +11 -11
@@ -890,7 +890,7 @@ func (x *Text) ConnectActivate(cb *func(Text)) uint32 {
890 890
891 }891 }
892 cbRefPtr := purego.NewCallback(fcb)892 cbRefPtr := purego.NewCallback(fcb)
893- glib.SaveCallback(cbPtr, cbRefPtr)893+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
894 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)894 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
895 }895 }
896 896
@@ -915,7 +915,7 @@ func (x *Text) ConnectBackspace(cb *func(Text)) uint32 {
915 915
916 }916 }
917 cbRefPtr := purego.NewCallback(fcb)917 cbRefPtr := purego.NewCallback(fcb)
918- glib.SaveCallback(cbPtr, cbRefPtr)918+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
919 return gobject.SignalConnect(x.GoPointer(), "backspace", cbRefPtr)919 return gobject.SignalConnect(x.GoPointer(), "backspace", cbRefPtr)
920 }920 }
921 921
@@ -941,7 +941,7 @@ func (x *Text) ConnectCopyClipboard(cb *func(Text)) uint32 {
941 941
942 }942 }
943 cbRefPtr := purego.NewCallback(fcb)943 cbRefPtr := purego.NewCallback(fcb)
944- glib.SaveCallback(cbPtr, cbRefPtr)944+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
945 return gobject.SignalConnect(x.GoPointer(), "copy-clipboard", cbRefPtr)945 return gobject.SignalConnect(x.GoPointer(), "copy-clipboard", cbRefPtr)
946 }946 }
947 947
@@ -967,7 +967,7 @@ func (x *Text) ConnectCutClipboard(cb *func(Text)) uint32 {
967 967
968 }968 }
969 cbRefPtr := purego.NewCallback(fcb)969 cbRefPtr := purego.NewCallback(fcb)
970- glib.SaveCallback(cbPtr, cbRefPtr)970+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
971 return gobject.SignalConnect(x.GoPointer(), "cut-clipboard", cbRefPtr)971 return gobject.SignalConnect(x.GoPointer(), "cut-clipboard", cbRefPtr)
972 }972 }
973 973
@@ -997,7 +997,7 @@ func (x *Text) ConnectDeleteFromCursor(cb *func(Text, DeleteType, int)) uint32 {
997 997
998 }998 }
999 cbRefPtr := purego.NewCallback(fcb)999 cbRefPtr := purego.NewCallback(fcb)
1000- glib.SaveCallback(cbPtr, cbRefPtr)1000+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1001 return gobject.SignalConnect(x.GoPointer(), "delete-from-cursor", cbRefPtr)1001 return gobject.SignalConnect(x.GoPointer(), "delete-from-cursor", cbRefPtr)
1002 }1002 }
1003 1003
@@ -1022,7 +1022,7 @@ func (x *Text) ConnectInsertAtCursor(cb *func(Text, string)) uint32 {
1022 1022
1023 }1023 }
1024 cbRefPtr := purego.NewCallback(fcb)1024 cbRefPtr := purego.NewCallback(fcb)
1025- glib.SaveCallback(cbPtr, cbRefPtr)1025+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1026 return gobject.SignalConnect(x.GoPointer(), "insert-at-cursor", cbRefPtr)1026 return gobject.SignalConnect(x.GoPointer(), "insert-at-cursor", cbRefPtr)
1027 }1027 }
1028 1028
@@ -1048,7 +1048,7 @@ func (x *Text) ConnectInsertEmoji(cb *func(Text)) uint32 {
1048 1048
1049 }1049 }
1050 cbRefPtr := purego.NewCallback(fcb)1050 cbRefPtr := purego.NewCallback(fcb)
1051- glib.SaveCallback(cbPtr, cbRefPtr)1051+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1052 return gobject.SignalConnect(x.GoPointer(), "insert-emoji", cbRefPtr)1052 return gobject.SignalConnect(x.GoPointer(), "insert-emoji", cbRefPtr)
1053 }1053 }
1054 1054
@@ -1087,7 +1087,7 @@ func (x *Text) ConnectMoveCursor(cb *func(Text, MovementStep, int, bool)) uint32
1087 1087
1088 }1088 }
1089 cbRefPtr := purego.NewCallback(fcb)1089 cbRefPtr := purego.NewCallback(fcb)
1090- glib.SaveCallback(cbPtr, cbRefPtr)1090+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1091 return gobject.SignalConnect(x.GoPointer(), "move-cursor", cbRefPtr)1091 return gobject.SignalConnect(x.GoPointer(), "move-cursor", cbRefPtr)
1092 }1092 }
1093 1093
@@ -1112,7 +1112,7 @@ func (x *Text) ConnectPasteClipboard(cb *func(Text)) uint32 {
1112 1112
1113 }1113 }
1114 cbRefPtr := purego.NewCallback(fcb)1114 cbRefPtr := purego.NewCallback(fcb)
1115- glib.SaveCallback(cbPtr, cbRefPtr)1115+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1116 return gobject.SignalConnect(x.GoPointer(), "paste-clipboard", cbRefPtr)1116 return gobject.SignalConnect(x.GoPointer(), "paste-clipboard", cbRefPtr)
1117 }1117 }
1118 1118
@@ -1136,7 +1136,7 @@ func (x *Text) ConnectPreeditChanged(cb *func(Text, string)) uint32 {
1136 1136
1137 }1137 }
1138 cbRefPtr := purego.NewCallback(fcb)1138 cbRefPtr := purego.NewCallback(fcb)
1139- glib.SaveCallback(cbPtr, cbRefPtr)1139+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1140 return gobject.SignalConnect(x.GoPointer(), "preedit-changed", cbRefPtr)1140 return gobject.SignalConnect(x.GoPointer(), "preedit-changed", cbRefPtr)
1141 }1141 }
1142 1142
@@ -1160,7 +1160,7 @@ func (x *Text) ConnectToggleOverwrite(cb *func(Text)) uint32 {
1160 1160
1161 }1161 }
1162 cbRefPtr := purego.NewCallback(fcb)1162 cbRefPtr := purego.NewCallback(fcb)
1163- glib.SaveCallback(cbPtr, cbRefPtr)1163+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1164 return gobject.SignalConnect(x.GoPointer(), "toggle-overwrite", cbRefPtr)1164 return gobject.SignalConnect(x.GoPointer(), "toggle-overwrite", cbRefPtr)
1165 }1165 }
1166 1166
M v4/gtk/gtktextbuffer.go +17 -17
@@ -639,7 +639,7 @@ func (x *TextBuffer) AddCommitNotify(FlagsVar TextBufferNotifyFlags, CommitNotif
639 cbFn(arg0, arg1, arg2, arg3, arg4)639 cbFn(arg0, arg1, arg2, arg3, arg4)
640 }640 }
641 CommitNotifyVarRef = purego.NewCallback(fcb)641 CommitNotifyVarRef = purego.NewCallback(fcb)
642- glib.SaveCallback(CommitNotifyVarPtr, CommitNotifyVarRef)642+ glib.SaveCallbackWithClosure(CommitNotifyVarPtr, CommitNotifyVarRef, CommitNotifyVar)
643 }643 }
644 }644 }
645 645
@@ -654,7 +654,7 @@ func (x *TextBuffer) AddCommitNotify(FlagsVar TextBufferNotifyFlags, CommitNotif
654 cbFn(arg0)654 cbFn(arg0)
655 }655 }
656 DestroyVarRef = purego.NewCallback(fcb)656 DestroyVarRef = purego.NewCallback(fcb)
657- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)657+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
658 }658 }
659 }659 }
660 660
@@ -1897,7 +1897,7 @@ func (x *TextBuffer) ConnectApplyTag(cb *func(TextBuffer, uintptr, uintptr, uint
1897 1897
1898 }1898 }
1899 cbRefPtr := purego.NewCallback(fcb)1899 cbRefPtr := purego.NewCallback(fcb)
1900- glib.SaveCallback(cbPtr, cbRefPtr)1900+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1901 return gobject.SignalConnect(x.GoPointer(), "apply-tag", cbRefPtr)1901 return gobject.SignalConnect(x.GoPointer(), "apply-tag", cbRefPtr)
1902 }1902 }
1903 1903
@@ -1926,7 +1926,7 @@ func (x *TextBuffer) ConnectBeginUserAction(cb *func(TextBuffer)) uint32 {
1926 1926
1927 }1927 }
1928 cbRefPtr := purego.NewCallback(fcb)1928 cbRefPtr := purego.NewCallback(fcb)
1929- glib.SaveCallback(cbPtr, cbRefPtr)1929+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1930 return gobject.SignalConnect(x.GoPointer(), "begin-user-action", cbRefPtr)1930 return gobject.SignalConnect(x.GoPointer(), "begin-user-action", cbRefPtr)
1931 }1931 }
1932 1932
@@ -1946,7 +1946,7 @@ func (x *TextBuffer) ConnectChanged(cb *func(TextBuffer)) uint32 {
1946 1946
1947 }1947 }
1948 cbRefPtr := purego.NewCallback(fcb)1948 cbRefPtr := purego.NewCallback(fcb)
1949- glib.SaveCallback(cbPtr, cbRefPtr)1949+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1950 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)1950 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
1951 }1951 }
1952 1952
@@ -1976,7 +1976,7 @@ func (x *TextBuffer) ConnectDeleteRange(cb *func(TextBuffer, uintptr, uintptr))
1976 1976
1977 }1977 }
1978 cbRefPtr := purego.NewCallback(fcb)1978 cbRefPtr := purego.NewCallback(fcb)
1979- glib.SaveCallback(cbPtr, cbRefPtr)1979+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1980 return gobject.SignalConnect(x.GoPointer(), "delete-range", cbRefPtr)1980 return gobject.SignalConnect(x.GoPointer(), "delete-range", cbRefPtr)
1981 }1981 }
1982 1982
@@ -2006,7 +2006,7 @@ func (x *TextBuffer) ConnectEndUserAction(cb *func(TextBuffer)) uint32 {
2006 2006
2007 }2007 }
2008 cbRefPtr := purego.NewCallback(fcb)2008 cbRefPtr := purego.NewCallback(fcb)
2009- glib.SaveCallback(cbPtr, cbRefPtr)2009+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2010 return gobject.SignalConnect(x.GoPointer(), "end-user-action", cbRefPtr)2010 return gobject.SignalConnect(x.GoPointer(), "end-user-action", cbRefPtr)
2011 }2011 }
2012 2012
@@ -2035,7 +2035,7 @@ func (x *TextBuffer) ConnectInsertChildAnchor(cb *func(TextBuffer, uintptr, uint
2035 2035
2036 }2036 }
2037 cbRefPtr := purego.NewCallback(fcb)2037 cbRefPtr := purego.NewCallback(fcb)
2038- glib.SaveCallback(cbPtr, cbRefPtr)2038+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2039 return gobject.SignalConnect(x.GoPointer(), "insert-child-anchor", cbRefPtr)2039 return gobject.SignalConnect(x.GoPointer(), "insert-child-anchor", cbRefPtr)
2040 }2040 }
2041 2041
@@ -2064,7 +2064,7 @@ func (x *TextBuffer) ConnectInsertPaintable(cb *func(TextBuffer, uintptr, uintpt
2064 2064
2065 }2065 }
2066 cbRefPtr := purego.NewCallback(fcb)2066 cbRefPtr := purego.NewCallback(fcb)
2067- glib.SaveCallback(cbPtr, cbRefPtr)2067+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2068 return gobject.SignalConnect(x.GoPointer(), "insert-paintable", cbRefPtr)2068 return gobject.SignalConnect(x.GoPointer(), "insert-paintable", cbRefPtr)
2069 }2069 }
2070 2070
@@ -2094,7 +2094,7 @@ func (x *TextBuffer) ConnectInsertText(cb *func(TextBuffer, uintptr, string, int
2094 2094
2095 }2095 }
2096 cbRefPtr := purego.NewCallback(fcb)2096 cbRefPtr := purego.NewCallback(fcb)
2097- glib.SaveCallback(cbPtr, cbRefPtr)2097+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2098 return gobject.SignalConnect(x.GoPointer(), "insert-text", cbRefPtr)2098 return gobject.SignalConnect(x.GoPointer(), "insert-text", cbRefPtr)
2099 }2099 }
2100 2100
@@ -2116,7 +2116,7 @@ func (x *TextBuffer) ConnectMarkDeleted(cb *func(TextBuffer, uintptr)) uint32 {
2116 2116
2117 }2117 }
2118 cbRefPtr := purego.NewCallback(fcb)2118 cbRefPtr := purego.NewCallback(fcb)
2119- glib.SaveCallback(cbPtr, cbRefPtr)2119+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2120 return gobject.SignalConnect(x.GoPointer(), "mark-deleted", cbRefPtr)2120 return gobject.SignalConnect(x.GoPointer(), "mark-deleted", cbRefPtr)
2121 }2121 }
2122 2122
@@ -2140,7 +2140,7 @@ func (x *TextBuffer) ConnectMarkSet(cb *func(TextBuffer, uintptr, uintptr)) uint
2140 2140
2141 }2141 }
2142 cbRefPtr := purego.NewCallback(fcb)2142 cbRefPtr := purego.NewCallback(fcb)
2143- glib.SaveCallback(cbPtr, cbRefPtr)2143+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2144 return gobject.SignalConnect(x.GoPointer(), "mark-set", cbRefPtr)2144 return gobject.SignalConnect(x.GoPointer(), "mark-set", cbRefPtr)
2145 }2145 }
2146 2146
@@ -2162,7 +2162,7 @@ func (x *TextBuffer) ConnectModifiedChanged(cb *func(TextBuffer)) uint32 {
2162 2162
2163 }2163 }
2164 cbRefPtr := purego.NewCallback(fcb)2164 cbRefPtr := purego.NewCallback(fcb)
2165- glib.SaveCallback(cbPtr, cbRefPtr)2165+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2166 return gobject.SignalConnect(x.GoPointer(), "modified-changed", cbRefPtr)2166 return gobject.SignalConnect(x.GoPointer(), "modified-changed", cbRefPtr)
2167 }2167 }
2168 2168
@@ -2186,7 +2186,7 @@ func (x *TextBuffer) ConnectPasteDone(cb *func(TextBuffer, uintptr)) uint32 {
2186 2186
2187 }2187 }
2188 cbRefPtr := purego.NewCallback(fcb)2188 cbRefPtr := purego.NewCallback(fcb)
2189- glib.SaveCallback(cbPtr, cbRefPtr)2189+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2190 return gobject.SignalConnect(x.GoPointer(), "paste-done", cbRefPtr)2190 return gobject.SignalConnect(x.GoPointer(), "paste-done", cbRefPtr)
2191 }2191 }
2192 2192
@@ -2207,7 +2207,7 @@ func (x *TextBuffer) ConnectRedo(cb *func(TextBuffer)) uint32 {
2207 2207
2208 }2208 }
2209 cbRefPtr := purego.NewCallback(fcb)2209 cbRefPtr := purego.NewCallback(fcb)
2210- glib.SaveCallback(cbPtr, cbRefPtr)2210+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2211 return gobject.SignalConnect(x.GoPointer(), "redo", cbRefPtr)2211 return gobject.SignalConnect(x.GoPointer(), "redo", cbRefPtr)
2212 }2212 }
2213 2213
@@ -2236,7 +2236,7 @@ func (x *TextBuffer) ConnectRemoveTag(cb *func(TextBuffer, uintptr, uintptr, uin
2236 2236
2237 }2237 }
2238 cbRefPtr := purego.NewCallback(fcb)2238 cbRefPtr := purego.NewCallback(fcb)
2239- glib.SaveCallback(cbPtr, cbRefPtr)2239+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2240 return gobject.SignalConnect(x.GoPointer(), "remove-tag", cbRefPtr)2240 return gobject.SignalConnect(x.GoPointer(), "remove-tag", cbRefPtr)
2241 }2241 }
2242 2242
@@ -2258,7 +2258,7 @@ func (x *TextBuffer) ConnectUndo(cb *func(TextBuffer)) uint32 {
2258 2258
2259 }2259 }
2260 cbRefPtr := purego.NewCallback(fcb)2260 cbRefPtr := purego.NewCallback(fcb)
2261- glib.SaveCallback(cbPtr, cbRefPtr)2261+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2262 return gobject.SignalConnect(x.GoPointer(), "undo", cbRefPtr)2262 return gobject.SignalConnect(x.GoPointer(), "undo", cbRefPtr)
2263 }2263 }
2264 2264
M v4/gtk/gtktextiter.go +2 -2
@@ -151,7 +151,7 @@ func (x *TextIter) BackwardFindChar(PredVar *TextCharPredicate, UserDataVar uint
151 return cbFn(arg0, arg1)151 return cbFn(arg0, arg1)
152 }152 }
153 PredVarRef = purego.NewCallback(fcb)153 PredVarRef = purego.NewCallback(fcb)
154- glib.SaveCallback(PredVarPtr, PredVarRef)154+ glib.SaveCallbackWithClosure(PredVarPtr, PredVarRef, PredVar)
155 }155 }
156 }156 }
157 157
@@ -609,7 +609,7 @@ func (x *TextIter) ForwardFindChar(PredVar *TextCharPredicate, UserDataVar uintp
609 return cbFn(arg0, arg1)609 return cbFn(arg0, arg1)
610 }610 }
611 PredVarRef = purego.NewCallback(fcb)611 PredVarRef = purego.NewCallback(fcb)
612- glib.SaveCallback(PredVarPtr, PredVarRef)612+ glib.SaveCallbackWithClosure(PredVarPtr, PredVarRef, PredVar)
613 }613 }
614 }614 }
615 615
M v4/gtk/gtktexttagtable.go +4 -4
@@ -106,7 +106,7 @@ func (x *TextTagTable) Foreach(FuncVar *TextTagTableForeach, DataVar uintptr) {
106 cbFn(arg0, arg1)106 cbFn(arg0, arg1)
107 }107 }
108 FuncVarRef = purego.NewCallback(fcb)108 FuncVarRef = purego.NewCallback(fcb)
109- glib.SaveCallback(FuncVarPtr, FuncVarRef)109+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
110 }110 }
111 }111 }
112 112
@@ -182,7 +182,7 @@ func (x *TextTagTable) ConnectTagAdded(cb *func(TextTagTable, uintptr)) uint32 {
182 182
183 }183 }
184 cbRefPtr := purego.NewCallback(fcb)184 cbRefPtr := purego.NewCallback(fcb)
185- glib.SaveCallback(cbPtr, cbRefPtr)185+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
186 return gobject.SignalConnect(x.GoPointer(), "tag-added", cbRefPtr)186 return gobject.SignalConnect(x.GoPointer(), "tag-added", cbRefPtr)
187 }187 }
188 188
@@ -202,7 +202,7 @@ func (x *TextTagTable) ConnectTagChanged(cb *func(TextTagTable, uintptr, bool))
202 202
203 }203 }
204 cbRefPtr := purego.NewCallback(fcb)204 cbRefPtr := purego.NewCallback(fcb)
205- glib.SaveCallback(cbPtr, cbRefPtr)205+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
206 return gobject.SignalConnect(x.GoPointer(), "tag-changed", cbRefPtr)206 return gobject.SignalConnect(x.GoPointer(), "tag-changed", cbRefPtr)
207 }207 }
208 208
@@ -225,7 +225,7 @@ func (x *TextTagTable) ConnectTagRemoved(cb *func(TextTagTable, uintptr)) uint32
225 225
226 }226 }
227 cbRefPtr := purego.NewCallback(fcb)227 cbRefPtr := purego.NewCallback(fcb)
228- glib.SaveCallback(cbPtr, cbRefPtr)228+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
229 return gobject.SignalConnect(x.GoPointer(), "tag-removed", cbRefPtr)229 return gobject.SignalConnect(x.GoPointer(), "tag-removed", cbRefPtr)
230 }230 }
231 231
M v4/gtk/gtktextview.go +15 -15
@@ -2018,7 +2018,7 @@ func (x *TextView) ConnectBackspace(cb *func(TextView)) uint32 {
2018 2018
2019 }2019 }
2020 cbRefPtr := purego.NewCallback(fcb)2020 cbRefPtr := purego.NewCallback(fcb)
2021- glib.SaveCallback(cbPtr, cbRefPtr)2021+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2022 return gobject.SignalConnect(x.GoPointer(), "backspace", cbRefPtr)2022 return gobject.SignalConnect(x.GoPointer(), "backspace", cbRefPtr)
2023 }2023 }
2024 2024
@@ -2044,7 +2044,7 @@ func (x *TextView) ConnectCopyClipboard(cb *func(TextView)) uint32 {
2044 2044
2045 }2045 }
2046 cbRefPtr := purego.NewCallback(fcb)2046 cbRefPtr := purego.NewCallback(fcb)
2047- glib.SaveCallback(cbPtr, cbRefPtr)2047+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2048 return gobject.SignalConnect(x.GoPointer(), "copy-clipboard", cbRefPtr)2048 return gobject.SignalConnect(x.GoPointer(), "copy-clipboard", cbRefPtr)
2049 }2049 }
2050 2050
@@ -2070,7 +2070,7 @@ func (x *TextView) ConnectCutClipboard(cb *func(TextView)) uint32 {
2070 2070
2071 }2071 }
2072 cbRefPtr := purego.NewCallback(fcb)2072 cbRefPtr := purego.NewCallback(fcb)
2073- glib.SaveCallback(cbPtr, cbRefPtr)2073+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2074 return gobject.SignalConnect(x.GoPointer(), "cut-clipboard", cbRefPtr)2074 return gobject.SignalConnect(x.GoPointer(), "cut-clipboard", cbRefPtr)
2075 }2075 }
2076 2076
@@ -2101,7 +2101,7 @@ func (x *TextView) ConnectDeleteFromCursor(cb *func(TextView, DeleteType, int))
2101 2101
2102 }2102 }
2103 cbRefPtr := purego.NewCallback(fcb)2103 cbRefPtr := purego.NewCallback(fcb)
2104- glib.SaveCallback(cbPtr, cbRefPtr)2104+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2105 return gobject.SignalConnect(x.GoPointer(), "delete-from-cursor", cbRefPtr)2105 return gobject.SignalConnect(x.GoPointer(), "delete-from-cursor", cbRefPtr)
2106 }2106 }
2107 2107
@@ -2121,7 +2121,7 @@ func (x *TextView) ConnectExtendSelection(cb *func(TextView, TextExtendSelection
2121 2121
2122 }2122 }
2123 cbRefPtr := purego.NewCallback(fcb)2123 cbRefPtr := purego.NewCallback(fcb)
2124- glib.SaveCallback(cbPtr, cbRefPtr)2124+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2125 return gobject.SignalConnect(x.GoPointer(), "extend-selection", cbRefPtr)2125 return gobject.SignalConnect(x.GoPointer(), "extend-selection", cbRefPtr)
2126 }2126 }
2127 2127
@@ -2146,7 +2146,7 @@ func (x *TextView) ConnectInsertAtCursor(cb *func(TextView, string)) uint32 {
2146 2146
2147 }2147 }
2148 cbRefPtr := purego.NewCallback(fcb)2148 cbRefPtr := purego.NewCallback(fcb)
2149- glib.SaveCallback(cbPtr, cbRefPtr)2149+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2150 return gobject.SignalConnect(x.GoPointer(), "insert-at-cursor", cbRefPtr)2150 return gobject.SignalConnect(x.GoPointer(), "insert-at-cursor", cbRefPtr)
2151 }2151 }
2152 2152
@@ -2172,7 +2172,7 @@ func (x *TextView) ConnectInsertEmoji(cb *func(TextView)) uint32 {
2172 2172
2173 }2173 }
2174 cbRefPtr := purego.NewCallback(fcb)2174 cbRefPtr := purego.NewCallback(fcb)
2175- glib.SaveCallback(cbPtr, cbRefPtr)2175+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2176 return gobject.SignalConnect(x.GoPointer(), "insert-emoji", cbRefPtr)2176 return gobject.SignalConnect(x.GoPointer(), "insert-emoji", cbRefPtr)
2177 }2177 }
2178 2178
@@ -2213,7 +2213,7 @@ func (x *TextView) ConnectMoveCursor(cb *func(TextView, MovementStep, int, bool)
2213 2213
2214 }2214 }
2215 cbRefPtr := purego.NewCallback(fcb)2215 cbRefPtr := purego.NewCallback(fcb)
2216- glib.SaveCallback(cbPtr, cbRefPtr)2216+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2217 return gobject.SignalConnect(x.GoPointer(), "move-cursor", cbRefPtr)2217 return gobject.SignalConnect(x.GoPointer(), "move-cursor", cbRefPtr)
2218 }2218 }
2219 2219
@@ -2240,7 +2240,7 @@ func (x *TextView) ConnectMoveViewport(cb *func(TextView, ScrollStep, int)) uint
2240 2240
2241 }2241 }
2242 cbRefPtr := purego.NewCallback(fcb)2242 cbRefPtr := purego.NewCallback(fcb)
2243- glib.SaveCallback(cbPtr, cbRefPtr)2243+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2244 return gobject.SignalConnect(x.GoPointer(), "move-viewport", cbRefPtr)2244 return gobject.SignalConnect(x.GoPointer(), "move-viewport", cbRefPtr)
2245 }2245 }
2246 2246
@@ -2267,7 +2267,7 @@ func (x *TextView) ConnectPasteClipboard(cb *func(TextView)) uint32 {
2267 2267
2268 }2268 }
2269 cbRefPtr := purego.NewCallback(fcb)2269 cbRefPtr := purego.NewCallback(fcb)
2270- glib.SaveCallback(cbPtr, cbRefPtr)2270+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2271 return gobject.SignalConnect(x.GoPointer(), "paste-clipboard", cbRefPtr)2271 return gobject.SignalConnect(x.GoPointer(), "paste-clipboard", cbRefPtr)
2272 }2272 }
2273 2273
@@ -2294,7 +2294,7 @@ func (x *TextView) ConnectPreeditChanged(cb *func(TextView, string)) uint32 {
2294 2294
2295 }2295 }
2296 cbRefPtr := purego.NewCallback(fcb)2296 cbRefPtr := purego.NewCallback(fcb)
2297- glib.SaveCallback(cbPtr, cbRefPtr)2297+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2298 return gobject.SignalConnect(x.GoPointer(), "preedit-changed", cbRefPtr)2298 return gobject.SignalConnect(x.GoPointer(), "preedit-changed", cbRefPtr)
2299 }2299 }
2300 2300
@@ -2322,7 +2322,7 @@ func (x *TextView) ConnectSelectAll(cb *func(TextView, bool)) uint32 {
2322 2322
2323 }2323 }
2324 cbRefPtr := purego.NewCallback(fcb)2324 cbRefPtr := purego.NewCallback(fcb)
2325- glib.SaveCallback(cbPtr, cbRefPtr)2325+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2326 return gobject.SignalConnect(x.GoPointer(), "select-all", cbRefPtr)2326 return gobject.SignalConnect(x.GoPointer(), "select-all", cbRefPtr)
2327 }2327 }
2328 2328
@@ -2349,7 +2349,7 @@ func (x *TextView) ConnectSetAnchor(cb *func(TextView)) uint32 {
2349 2349
2350 }2350 }
2351 cbRefPtr := purego.NewCallback(fcb)2351 cbRefPtr := purego.NewCallback(fcb)
2352- glib.SaveCallback(cbPtr, cbRefPtr)2352+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2353 return gobject.SignalConnect(x.GoPointer(), "set-anchor", cbRefPtr)2353 return gobject.SignalConnect(x.GoPointer(), "set-anchor", cbRefPtr)
2354 }2354 }
2355 2355
@@ -2374,7 +2374,7 @@ func (x *TextView) ConnectToggleCursorVisible(cb *func(TextView)) uint32 {
2374 2374
2375 }2375 }
2376 cbRefPtr := purego.NewCallback(fcb)2376 cbRefPtr := purego.NewCallback(fcb)
2377- glib.SaveCallback(cbPtr, cbRefPtr)2377+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2378 return gobject.SignalConnect(x.GoPointer(), "toggle-cursor-visible", cbRefPtr)2378 return gobject.SignalConnect(x.GoPointer(), "toggle-cursor-visible", cbRefPtr)
2379 }2379 }
2380 2380
@@ -2398,7 +2398,7 @@ func (x *TextView) ConnectToggleOverwrite(cb *func(TextView)) uint32 {
2398 2398
2399 }2399 }
2400 cbRefPtr := purego.NewCallback(fcb)2400 cbRefPtr := purego.NewCallback(fcb)
2401- glib.SaveCallback(cbPtr, cbRefPtr)2401+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2402 return gobject.SignalConnect(x.GoPointer(), "toggle-overwrite", cbRefPtr)2402 return gobject.SignalConnect(x.GoPointer(), "toggle-overwrite", cbRefPtr)
2403 }2403 }
2404 2404
M v4/gtk/gtktogglebutton.go +1 -1
@@ -304,7 +304,7 @@ func (x *ToggleButton) ConnectToggled(cb *func(ToggleButton)) uint32 {
304 304
305 }305 }
306 cbRefPtr := purego.NewCallback(fcb)306 cbRefPtr := purego.NewCallback(fcb)
307- glib.SaveCallback(cbPtr, cbRefPtr)307+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
308 return gobject.SignalConnect(x.GoPointer(), "toggled", cbRefPtr)308 return gobject.SignalConnect(x.GoPointer(), "toggled", cbRefPtr)
309 }309 }
310 310
M v4/gtk/gtktreelistmodel.go +2 -2
@@ -77,7 +77,7 @@ func NewTreeListModel(RootVar gio.ListModel, PassthroughVar bool, AutoexpandVar
77 return cbFn(arg0, arg1)77 return cbFn(arg0, arg1)
78 }78 }
79 CreateFuncVarRef = purego.NewCallback(fcb)79 CreateFuncVarRef = purego.NewCallback(fcb)
80- glib.SaveCallback(CreateFuncVarPtr, CreateFuncVarRef)80+ glib.SaveCallbackWithClosure(CreateFuncVarPtr, CreateFuncVarRef, CreateFuncVar)
81 }81 }
82 }82 }
83 83
@@ -92,7 +92,7 @@ func NewTreeListModel(RootVar gio.ListModel, PassthroughVar bool, AutoexpandVar
92 cbFn(arg0)92 cbFn(arg0)
93 }93 }
94 UserDestroyVarRef = purego.NewCallback(fcb)94 UserDestroyVarRef = purego.NewCallback(fcb)
95- glib.SaveCallback(UserDestroyVarPtr, UserDestroyVarRef)95+ glib.SaveCallbackWithClosure(UserDestroyVarPtr, UserDestroyVarRef, UserDestroyVar)
96 }96 }
97 }97 }
98 98
M v4/gtk/gtktreemodelfilter.go +4 -4
@@ -305,7 +305,7 @@ func (x *TreeModelFilter) SetModifyFunc(NColumnsVar int, TypesVar []types.GType,
305 cbFn(arg0, arg1, arg2, arg3, arg4)305 cbFn(arg0, arg1, arg2, arg3, arg4)
306 }306 }
307 FuncVarRef = purego.NewCallback(fcb)307 FuncVarRef = purego.NewCallback(fcb)
308- glib.SaveCallback(FuncVarPtr, FuncVarRef)308+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
309 }309 }
310 }310 }
311 311
@@ -320,7 +320,7 @@ func (x *TreeModelFilter) SetModifyFunc(NColumnsVar int, TypesVar []types.GType,
320 cbFn(arg0)320 cbFn(arg0)
321 }321 }
322 DestroyVarRef = purego.NewCallback(fcb)322 DestroyVarRef = purego.NewCallback(fcb)
323- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)323+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
324 }324 }
325 }325 }
326 326
@@ -397,7 +397,7 @@ func (x *TreeModelFilter) SetVisibleFunc(FuncVar *TreeModelFilterVisibleFunc, Da
397 return cbFn(arg0, arg1, arg2)397 return cbFn(arg0, arg1, arg2)
398 }398 }
399 FuncVarRef = purego.NewCallback(fcb)399 FuncVarRef = purego.NewCallback(fcb)
400- glib.SaveCallback(FuncVarPtr, FuncVarRef)400+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
401 }401 }
402 }402 }
403 403
@@ -412,7 +412,7 @@ func (x *TreeModelFilter) SetVisibleFunc(FuncVar *TreeModelFilterVisibleFunc, Da
412 cbFn(arg0)412 cbFn(arg0)
413 }413 }
414 DestroyVarRef = purego.NewCallback(fcb)414 DestroyVarRef = purego.NewCallback(fcb)
415- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)415+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
416 }416 }
417 }417 }
418 418
M v4/gtk/gtktreeselection.go +4 -4
@@ -232,7 +232,7 @@ func (x *TreeSelection) SelectedForeach(FuncVar *TreeSelectionForeachFunc, DataV
232 cbFn(arg0, arg1, arg2, arg3)232 cbFn(arg0, arg1, arg2, arg3)
233 }233 }
234 FuncVarRef = purego.NewCallback(fcb)234 FuncVarRef = purego.NewCallback(fcb)
235- glib.SaveCallback(FuncVarPtr, FuncVarRef)235+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
236 }236 }
237 }237 }
238 238
@@ -272,7 +272,7 @@ func (x *TreeSelection) SetSelectFunction(FuncVar *TreeSelectionFunc, DataVar ui
272 return cbFn(arg0, arg1, arg2, arg3, arg4)272 return cbFn(arg0, arg1, arg2, arg3, arg4)
273 }273 }
274 FuncVarRef = purego.NewCallback(fcb)274 FuncVarRef = purego.NewCallback(fcb)
275- glib.SaveCallback(FuncVarPtr, FuncVarRef)275+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
276 }276 }
277 }277 }
278 278
@@ -287,7 +287,7 @@ func (x *TreeSelection) SetSelectFunction(FuncVar *TreeSelectionFunc, DataVar ui
287 cbFn(arg0)287 cbFn(arg0)
288 }288 }
289 DestroyVarRef = purego.NewCallback(fcb)289 DestroyVarRef = purego.NewCallback(fcb)
290- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)290+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
291 }291 }
292 }292 }
293 293
@@ -362,7 +362,7 @@ func (x *TreeSelection) ConnectChanged(cb *func(TreeSelection)) uint32 {
362 362
363 }363 }
364 cbRefPtr := purego.NewCallback(fcb)364 cbRefPtr := purego.NewCallback(fcb)
365- glib.SaveCallback(cbPtr, cbRefPtr)365+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
366 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)366 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
367 }367 }
368 368
M v4/gtk/gtktreeview.go +24 -24
@@ -1232,7 +1232,7 @@ func (x *TreeView) InsertColumnWithDataFunc(PositionVar int, TitleVar string, Ce
1232 cbFn(arg0, arg1, arg2, arg3, arg4)1232 cbFn(arg0, arg1, arg2, arg3, arg4)
1233 }1233 }
1234 FuncVarRef = purego.NewCallback(fcb)1234 FuncVarRef = purego.NewCallback(fcb)
1235- glib.SaveCallback(FuncVarPtr, FuncVarRef)1235+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
1236 }1236 }
1237 }1237 }
1238 1238
@@ -1247,7 +1247,7 @@ func (x *TreeView) InsertColumnWithDataFunc(PositionVar int, TitleVar string, Ce
1247 cbFn(arg0)1247 cbFn(arg0)
1248 }1248 }
1249 DnotifyVarRef = purego.NewCallback(fcb)1249 DnotifyVarRef = purego.NewCallback(fcb)
1250- glib.SaveCallback(DnotifyVarPtr, DnotifyVarRef)1250+ glib.SaveCallbackWithClosure(DnotifyVarPtr, DnotifyVarRef, DnotifyVar)
1251 }1251 }
1252 }1252 }
1253 1253
@@ -1309,7 +1309,7 @@ func (x *TreeView) MapExpandedRows(FuncVar *TreeViewMappingFunc, DataVar uintptr
1309 cbFn(arg0, arg1, arg2)1309 cbFn(arg0, arg1, arg2)
1310 }1310 }
1311 FuncVarRef = purego.NewCallback(fcb)1311 FuncVarRef = purego.NewCallback(fcb)
1312- glib.SaveCallback(FuncVarPtr, FuncVarRef)1312+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
1313 }1313 }
1314 }1314 }
1315 1315
@@ -1429,7 +1429,7 @@ func (x *TreeView) SetColumnDragFunction(FuncVar *TreeViewColumnDropFunc, UserDa
1429 return cbFn(arg0, arg1, arg2, arg3, arg4)1429 return cbFn(arg0, arg1, arg2, arg3, arg4)
1430 }1430 }
1431 FuncVarRef = purego.NewCallback(fcb)1431 FuncVarRef = purego.NewCallback(fcb)
1432- glib.SaveCallback(FuncVarPtr, FuncVarRef)1432+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
1433 }1433 }
1434 }1434 }
1435 1435
@@ -1444,7 +1444,7 @@ func (x *TreeView) SetColumnDragFunction(FuncVar *TreeViewColumnDropFunc, UserDa
1444 cbFn(arg0)1444 cbFn(arg0)
1445 }1445 }
1446 DestroyVarRef = purego.NewCallback(fcb)1446 DestroyVarRef = purego.NewCallback(fcb)
1447- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)1447+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
1448 }1448 }
1449 }1449 }
1450 1450
@@ -1667,7 +1667,7 @@ func (x *TreeView) SetRowSeparatorFunc(FuncVar *TreeViewRowSeparatorFunc, DataVa
1667 return cbFn(arg0, arg1, arg2)1667 return cbFn(arg0, arg1, arg2)
1668 }1668 }
1669 FuncVarRef = purego.NewCallback(fcb)1669 FuncVarRef = purego.NewCallback(fcb)
1670- glib.SaveCallback(FuncVarPtr, FuncVarRef)1670+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
1671 }1671 }
1672 }1672 }
1673 1673
@@ -1682,7 +1682,7 @@ func (x *TreeView) SetRowSeparatorFunc(FuncVar *TreeViewRowSeparatorFunc, DataVa
1682 cbFn(arg0)1682 cbFn(arg0)
1683 }1683 }
1684 DestroyVarRef = purego.NewCallback(fcb)1684 DestroyVarRef = purego.NewCallback(fcb)
1685- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)1685+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
1686 }1686 }
1687 }1687 }
1688 1688
@@ -1749,7 +1749,7 @@ func (x *TreeView) SetSearchEqualFunc(SearchEqualFuncVar *TreeViewSearchEqualFun
1749 return cbFn(arg0, arg1, arg2, arg3, arg4)1749 return cbFn(arg0, arg1, arg2, arg3, arg4)
1750 }1750 }
1751 SearchEqualFuncVarRef = purego.NewCallback(fcb)1751 SearchEqualFuncVarRef = purego.NewCallback(fcb)
1752- glib.SaveCallback(SearchEqualFuncVarPtr, SearchEqualFuncVarRef)1752+ glib.SaveCallbackWithClosure(SearchEqualFuncVarPtr, SearchEqualFuncVarRef, SearchEqualFuncVar)
1753 }1753 }
1754 }1754 }
1755 1755
@@ -1764,7 +1764,7 @@ func (x *TreeView) SetSearchEqualFunc(SearchEqualFuncVar *TreeViewSearchEqualFun
1764 cbFn(arg0)1764 cbFn(arg0)
1765 }1765 }
1766 SearchDestroyVarRef = purego.NewCallback(fcb)1766 SearchDestroyVarRef = purego.NewCallback(fcb)
1767- glib.SaveCallback(SearchDestroyVarPtr, SearchDestroyVarRef)1767+ glib.SaveCallbackWithClosure(SearchDestroyVarPtr, SearchDestroyVarRef, SearchDestroyVar)
1768 }1768 }
1769 }1769 }
1770 1770
@@ -2138,7 +2138,7 @@ func (x *TreeView) ConnectColumnsChanged(cb *func(TreeView)) uint32 {
2138 2138
2139 }2139 }
2140 cbRefPtr := purego.NewCallback(fcb)2140 cbRefPtr := purego.NewCallback(fcb)
2141- glib.SaveCallback(cbPtr, cbRefPtr)2141+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2142 return gobject.SignalConnect(x.GoPointer(), "columns-changed", cbRefPtr)2142 return gobject.SignalConnect(x.GoPointer(), "columns-changed", cbRefPtr)
2143 }2143 }
2144 2144
@@ -2158,7 +2158,7 @@ func (x *TreeView) ConnectCursorChanged(cb *func(TreeView)) uint32 {
2158 2158
2159 }2159 }
2160 cbRefPtr := purego.NewCallback(fcb)2160 cbRefPtr := purego.NewCallback(fcb)
2161- glib.SaveCallback(cbPtr, cbRefPtr)2161+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2162 return gobject.SignalConnect(x.GoPointer(), "cursor-changed", cbRefPtr)2162 return gobject.SignalConnect(x.GoPointer(), "cursor-changed", cbRefPtr)
2163 }2163 }
2164 2164
@@ -2177,7 +2177,7 @@ func (x *TreeView) ConnectExpandCollapseCursorRow(cb *func(TreeView, bool, bool,
2177 2177
2178 }2178 }
2179 cbRefPtr := purego.NewCallback(fcb)2179 cbRefPtr := purego.NewCallback(fcb)
2180- glib.SaveCallback(cbPtr, cbRefPtr)2180+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2181 return gobject.SignalConnect(x.GoPointer(), "expand-collapse-cursor-row", cbRefPtr)2181 return gobject.SignalConnect(x.GoPointer(), "expand-collapse-cursor-row", cbRefPtr)
2182 }2182 }
2183 2183
@@ -2205,7 +2205,7 @@ func (x *TreeView) ConnectMoveCursor(cb *func(TreeView, MovementStep, int, bool,
2205 2205
2206 }2206 }
2207 cbRefPtr := purego.NewCallback(fcb)2207 cbRefPtr := purego.NewCallback(fcb)
2208- glib.SaveCallback(cbPtr, cbRefPtr)2208+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2209 return gobject.SignalConnect(x.GoPointer(), "move-cursor", cbRefPtr)2209 return gobject.SignalConnect(x.GoPointer(), "move-cursor", cbRefPtr)
2210 }2210 }
2211 2211
@@ -2238,7 +2238,7 @@ func (x *TreeView) ConnectRowActivated(cb *func(TreeView, uintptr, uintptr)) uin
2238 2238
2239 }2239 }
2240 cbRefPtr := purego.NewCallback(fcb)2240 cbRefPtr := purego.NewCallback(fcb)
2241- glib.SaveCallback(cbPtr, cbRefPtr)2241+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2242 return gobject.SignalConnect(x.GoPointer(), "row-activated", cbRefPtr)2242 return gobject.SignalConnect(x.GoPointer(), "row-activated", cbRefPtr)
2243 }2243 }
2244 2244
@@ -2258,7 +2258,7 @@ func (x *TreeView) ConnectRowCollapsed(cb *func(TreeView, uintptr, uintptr)) uin
2258 2258
2259 }2259 }
2260 cbRefPtr := purego.NewCallback(fcb)2260 cbRefPtr := purego.NewCallback(fcb)
2261- glib.SaveCallback(cbPtr, cbRefPtr)2261+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2262 return gobject.SignalConnect(x.GoPointer(), "row-collapsed", cbRefPtr)2262 return gobject.SignalConnect(x.GoPointer(), "row-collapsed", cbRefPtr)
2263 }2263 }
2264 2264
@@ -2278,7 +2278,7 @@ func (x *TreeView) ConnectRowExpanded(cb *func(TreeView, uintptr, uintptr)) uint
2278 2278
2279 }2279 }
2280 cbRefPtr := purego.NewCallback(fcb)2280 cbRefPtr := purego.NewCallback(fcb)
2281- glib.SaveCallback(cbPtr, cbRefPtr)2281+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2282 return gobject.SignalConnect(x.GoPointer(), "row-expanded", cbRefPtr)2282 return gobject.SignalConnect(x.GoPointer(), "row-expanded", cbRefPtr)
2283 }2283 }
2284 2284
@@ -2297,7 +2297,7 @@ func (x *TreeView) ConnectSelectAll(cb *func(TreeView) bool) uint32 {
2297 2297
2298 }2298 }
2299 cbRefPtr := purego.NewCallback(fcb)2299 cbRefPtr := purego.NewCallback(fcb)
2300- glib.SaveCallback(cbPtr, cbRefPtr)2300+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2301 return gobject.SignalConnect(x.GoPointer(), "select-all", cbRefPtr)2301 return gobject.SignalConnect(x.GoPointer(), "select-all", cbRefPtr)
2302 }2302 }
2303 2303
@@ -2316,7 +2316,7 @@ func (x *TreeView) ConnectSelectCursorParent(cb *func(TreeView) bool) uint32 {
2316 2316
2317 }2317 }
2318 cbRefPtr := purego.NewCallback(fcb)2318 cbRefPtr := purego.NewCallback(fcb)
2319- glib.SaveCallback(cbPtr, cbRefPtr)2319+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2320 return gobject.SignalConnect(x.GoPointer(), "select-cursor-parent", cbRefPtr)2320 return gobject.SignalConnect(x.GoPointer(), "select-cursor-parent", cbRefPtr)
2321 }2321 }
2322 2322
@@ -2335,7 +2335,7 @@ func (x *TreeView) ConnectSelectCursorRow(cb *func(TreeView, bool) bool) uint32
2335 2335
2336 }2336 }
2337 cbRefPtr := purego.NewCallback(fcb)2337 cbRefPtr := purego.NewCallback(fcb)
2338- glib.SaveCallback(cbPtr, cbRefPtr)2338+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2339 return gobject.SignalConnect(x.GoPointer(), "select-cursor-row", cbRefPtr)2339 return gobject.SignalConnect(x.GoPointer(), "select-cursor-row", cbRefPtr)
2340 }2340 }
2341 2341
@@ -2354,7 +2354,7 @@ func (x *TreeView) ConnectStartInteractiveSearch(cb *func(TreeView) bool) uint32
2354 2354
2355 }2355 }
2356 cbRefPtr := purego.NewCallback(fcb)2356 cbRefPtr := purego.NewCallback(fcb)
2357- glib.SaveCallback(cbPtr, cbRefPtr)2357+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2358 return gobject.SignalConnect(x.GoPointer(), "start-interactive-search", cbRefPtr)2358 return gobject.SignalConnect(x.GoPointer(), "start-interactive-search", cbRefPtr)
2359 }2359 }
2360 2360
@@ -2375,7 +2375,7 @@ func (x *TreeView) ConnectTestCollapseRow(cb *func(TreeView, uintptr, uintptr) b
2375 2375
2376 }2376 }
2377 cbRefPtr := purego.NewCallback(fcb)2377 cbRefPtr := purego.NewCallback(fcb)
2378- glib.SaveCallback(cbPtr, cbRefPtr)2378+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2379 return gobject.SignalConnect(x.GoPointer(), "test-collapse-row", cbRefPtr)2379 return gobject.SignalConnect(x.GoPointer(), "test-collapse-row", cbRefPtr)
2380 }2380 }
2381 2381
@@ -2396,7 +2396,7 @@ func (x *TreeView) ConnectTestExpandRow(cb *func(TreeView, uintptr, uintptr) boo
2396 2396
2397 }2397 }
2398 cbRefPtr := purego.NewCallback(fcb)2398 cbRefPtr := purego.NewCallback(fcb)
2399- glib.SaveCallback(cbPtr, cbRefPtr)2399+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2400 return gobject.SignalConnect(x.GoPointer(), "test-expand-row", cbRefPtr)2400 return gobject.SignalConnect(x.GoPointer(), "test-expand-row", cbRefPtr)
2401 }2401 }
2402 2402
@@ -2415,7 +2415,7 @@ func (x *TreeView) ConnectToggleCursorRow(cb *func(TreeView) bool) uint32 {
2415 2415
2416 }2416 }
2417 cbRefPtr := purego.NewCallback(fcb)2417 cbRefPtr := purego.NewCallback(fcb)
2418- glib.SaveCallback(cbPtr, cbRefPtr)2418+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2419 return gobject.SignalConnect(x.GoPointer(), "toggle-cursor-row", cbRefPtr)2419 return gobject.SignalConnect(x.GoPointer(), "toggle-cursor-row", cbRefPtr)
2420 }2420 }
2421 2421
@@ -2434,7 +2434,7 @@ func (x *TreeView) ConnectUnselectAll(cb *func(TreeView) bool) uint32 {
2434 2434
2435 }2435 }
2436 cbRefPtr := purego.NewCallback(fcb)2436 cbRefPtr := purego.NewCallback(fcb)
2437- glib.SaveCallback(cbPtr, cbRefPtr)2437+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
2438 return gobject.SignalConnect(x.GoPointer(), "unselect-all", cbRefPtr)2438 return gobject.SignalConnect(x.GoPointer(), "unselect-all", cbRefPtr)
2439 }2439 }
2440 2440
M v4/gtk/gtktreeviewcolumn.go +3 -3
@@ -553,7 +553,7 @@ func (x *TreeViewColumn) SetCellDataFunc(CellRendererVar *CellRenderer, FuncVar
553 cbFn(arg0, arg1, arg2, arg3, arg4)553 cbFn(arg0, arg1, arg2, arg3, arg4)
554 }554 }
555 FuncVarRef = purego.NewCallback(fcb)555 FuncVarRef = purego.NewCallback(fcb)
556- glib.SaveCallback(FuncVarPtr, FuncVarRef)556+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
557 }557 }
558 }558 }
559 559
@@ -568,7 +568,7 @@ func (x *TreeViewColumn) SetCellDataFunc(CellRendererVar *CellRenderer, FuncVar
568 cbFn(arg0)568 cbFn(arg0)
569 }569 }
570 DestroyVarRef = purego.NewCallback(fcb)570 DestroyVarRef = purego.NewCallback(fcb)
571- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)571+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
572 }572 }
573 }573 }
574 574
@@ -995,7 +995,7 @@ func (x *TreeViewColumn) ConnectClicked(cb *func(TreeViewColumn)) uint32 {
995 995
996 }996 }
997 cbRefPtr := purego.NewCallback(fcb)997 cbRefPtr := purego.NewCallback(fcb)
998- glib.SaveCallback(cbPtr, cbRefPtr)998+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
999 return gobject.SignalConnect(x.GoPointer(), "clicked", cbRefPtr)999 return gobject.SignalConnect(x.GoPointer(), "clicked", cbRefPtr)
1000 }1000 }
1001 1001
M v4/gtk/gtkurilauncher.go +1 -1
@@ -113,7 +113,7 @@ func (x *UriLauncher) Launch(ParentVar *Window, CancellableVar *gio.Cancellable,
113 cbFn(arg0, arg1, arg2)113 cbFn(arg0, arg1, arg2)
114 }114 }
115 CallbackVarRef = purego.NewCallback(fcb)115 CallbackVarRef = purego.NewCallback(fcb)
116- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)116+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
117 }117 }
118 }118 }
119 119
M v4/gtk/gtkwidget.go +18 -18
@@ -173,7 +173,7 @@ func (x *WidgetClass) AddBinding(KeyvalVar uint, ModsVar gdk.ModifierType, Callb
173 return cbFn(arg0, arg1, arg2)173 return cbFn(arg0, arg1, arg2)
174 }174 }
175 CallbackVarRef = purego.NewCallback(fcb)175 CallbackVarRef = purego.NewCallback(fcb)
176- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)176+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
177 }177 }
178 }178 }
179 179
@@ -269,7 +269,7 @@ func (x *WidgetClass) BindTemplateCallbackFull(CallbackNameVar string, CallbackS
269 cbFn()269 cbFn()
270 }270 }
271 CallbackSymbolVarRef = purego.NewCallback(fcb)271 CallbackSymbolVarRef = purego.NewCallback(fcb)
272- glib.SaveCallback(CallbackSymbolVarPtr, CallbackSymbolVarRef)272+ glib.SaveCallbackWithClosure(CallbackSymbolVarPtr, CallbackSymbolVarRef, CallbackSymbolVar)
273 }273 }
274 }274 }
275 275
@@ -388,7 +388,7 @@ func (x *WidgetClass) InstallAction(ActionNameVar string, ParameterTypeVar *stri
388 cbFn(arg0, arg1, arg2)388 cbFn(arg0, arg1, arg2)
389 }389 }
390 ActivateVarRef = purego.NewCallback(fcb)390 ActivateVarRef = purego.NewCallback(fcb)
391- glib.SaveCallback(ActivateVarPtr, ActivateVarRef)391+ glib.SaveCallbackWithClosure(ActivateVarPtr, ActivateVarRef, ActivateVar)
392 }392 }
393 }393 }
394 394
@@ -1919,7 +1919,7 @@ func (x *Widget) AddTickCallback(CallbackVar *TickCallback, UserDataVar uintptr,
1919 return cbFn(arg0, arg1, arg2)1919 return cbFn(arg0, arg1, arg2)
1920 }1920 }
1921 CallbackVarRef = purego.NewCallback(fcb)1921 CallbackVarRef = purego.NewCallback(fcb)
1922- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)1922+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
1923 }1923 }
1924 }1924 }
1925 1925
@@ -1934,7 +1934,7 @@ func (x *Widget) AddTickCallback(CallbackVar *TickCallback, UserDataVar uintptr,
1934 cbFn(arg0)1934 cbFn(arg0)
1935 }1935 }
1936 NotifyVarRef = purego.NewCallback(fcb)1936 NotifyVarRef = purego.NewCallback(fcb)
1937- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)1937+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
1938 }1938 }
1939 }1939 }
1940 1940
@@ -5169,7 +5169,7 @@ func (x *Widget) ConnectDestroy(cb *func(Widget)) uint32 {
5169 5169
5170 }5170 }
5171 cbRefPtr := purego.NewCallback(fcb)5171 cbRefPtr := purego.NewCallback(fcb)
5172- glib.SaveCallback(cbPtr, cbRefPtr)5172+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
5173 return gobject.SignalConnect(x.GoPointer(), "destroy", cbRefPtr)5173 return gobject.SignalConnect(x.GoPointer(), "destroy", cbRefPtr)
5174 }5174 }
5175 5175
@@ -5189,7 +5189,7 @@ func (x *Widget) ConnectDirectionChanged(cb *func(Widget, TextDirection)) uint32
5189 5189
5190 }5190 }
5191 cbRefPtr := purego.NewCallback(fcb)5191 cbRefPtr := purego.NewCallback(fcb)
5192- glib.SaveCallback(cbPtr, cbRefPtr)5192+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
5193 return gobject.SignalConnect(x.GoPointer(), "direction-changed", cbRefPtr)5193 return gobject.SignalConnect(x.GoPointer(), "direction-changed", cbRefPtr)
5194 }5194 }
5195 5195
@@ -5209,7 +5209,7 @@ func (x *Widget) ConnectHide(cb *func(Widget)) uint32 {
5209 5209
5210 }5210 }
5211 cbRefPtr := purego.NewCallback(fcb)5211 cbRefPtr := purego.NewCallback(fcb)
5212- glib.SaveCallback(cbPtr, cbRefPtr)5212+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
5213 return gobject.SignalConnect(x.GoPointer(), "hide", cbRefPtr)5213 return gobject.SignalConnect(x.GoPointer(), "hide", cbRefPtr)
5214 }5214 }
5215 5215
@@ -5231,7 +5231,7 @@ func (x *Widget) ConnectKeynavFailed(cb *func(Widget, DirectionType) bool) uint3
5231 5231
5232 }5232 }
5233 cbRefPtr := purego.NewCallback(fcb)5233 cbRefPtr := purego.NewCallback(fcb)
5234- glib.SaveCallback(cbPtr, cbRefPtr)5234+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
5235 return gobject.SignalConnect(x.GoPointer(), "keynav-failed", cbRefPtr)5235 return gobject.SignalConnect(x.GoPointer(), "keynav-failed", cbRefPtr)
5236 }5236 }
5237 5237
@@ -5259,7 +5259,7 @@ func (x *Widget) ConnectMap(cb *func(Widget)) uint32 {
5259 5259
5260 }5260 }
5261 cbRefPtr := purego.NewCallback(fcb)5261 cbRefPtr := purego.NewCallback(fcb)
5262- glib.SaveCallback(cbPtr, cbRefPtr)5262+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
5263 return gobject.SignalConnect(x.GoPointer(), "map", cbRefPtr)5263 return gobject.SignalConnect(x.GoPointer(), "map", cbRefPtr)
5264 }5264 }
5265 5265
@@ -5282,7 +5282,7 @@ func (x *Widget) ConnectMnemonicActivate(cb *func(Widget, bool) bool) uint32 {
5282 5282
5283 }5283 }
5284 cbRefPtr := purego.NewCallback(fcb)5284 cbRefPtr := purego.NewCallback(fcb)
5285- glib.SaveCallback(cbPtr, cbRefPtr)5285+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
5286 return gobject.SignalConnect(x.GoPointer(), "mnemonic-activate", cbRefPtr)5286 return gobject.SignalConnect(x.GoPointer(), "mnemonic-activate", cbRefPtr)
5287 }5287 }
5288 5288
@@ -5307,7 +5307,7 @@ func (x *Widget) ConnectMoveFocus(cb *func(Widget, DirectionType)) uint32 {
5307 5307
5308 }5308 }
5309 cbRefPtr := purego.NewCallback(fcb)5309 cbRefPtr := purego.NewCallback(fcb)
5310- glib.SaveCallback(cbPtr, cbRefPtr)5310+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
5311 return gobject.SignalConnect(x.GoPointer(), "move-focus", cbRefPtr)5311 return gobject.SignalConnect(x.GoPointer(), "move-focus", cbRefPtr)
5312 }5312 }
5313 5313
@@ -5339,7 +5339,7 @@ func (x *Widget) ConnectQueryTooltip(cb *func(Widget, int, int, bool, uintptr) b
5339 5339
5340 }5340 }
5341 cbRefPtr := purego.NewCallback(fcb)5341 cbRefPtr := purego.NewCallback(fcb)
5342- glib.SaveCallback(cbPtr, cbRefPtr)5342+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
5343 return gobject.SignalConnect(x.GoPointer(), "query-tooltip", cbRefPtr)5343 return gobject.SignalConnect(x.GoPointer(), "query-tooltip", cbRefPtr)
5344 }5344 }
5345 5345
@@ -5362,7 +5362,7 @@ func (x *Widget) ConnectRealize(cb *func(Widget)) uint32 {
5362 5362
5363 }5363 }
5364 cbRefPtr := purego.NewCallback(fcb)5364 cbRefPtr := purego.NewCallback(fcb)
5365- glib.SaveCallback(cbPtr, cbRefPtr)5365+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
5366 return gobject.SignalConnect(x.GoPointer(), "realize", cbRefPtr)5366 return gobject.SignalConnect(x.GoPointer(), "realize", cbRefPtr)
5367 }5367 }
5368 5368
@@ -5382,7 +5382,7 @@ func (x *Widget) ConnectShow(cb *func(Widget)) uint32 {
5382 5382
5383 }5383 }
5384 cbRefPtr := purego.NewCallback(fcb)5384 cbRefPtr := purego.NewCallback(fcb)
5385- glib.SaveCallback(cbPtr, cbRefPtr)5385+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
5386 return gobject.SignalConnect(x.GoPointer(), "show", cbRefPtr)5386 return gobject.SignalConnect(x.GoPointer(), "show", cbRefPtr)
5387 }5387 }
5388 5388
@@ -5404,7 +5404,7 @@ func (x *Widget) ConnectStateFlagsChanged(cb *func(Widget, StateFlags)) uint32 {
5404 5404
5405 }5405 }
5406 cbRefPtr := purego.NewCallback(fcb)5406 cbRefPtr := purego.NewCallback(fcb)
5407- glib.SaveCallback(cbPtr, cbRefPtr)5407+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
5408 return gobject.SignalConnect(x.GoPointer(), "state-flags-changed", cbRefPtr)5408 return gobject.SignalConnect(x.GoPointer(), "state-flags-changed", cbRefPtr)
5409 }5409 }
5410 5410
@@ -5430,7 +5430,7 @@ func (x *Widget) ConnectUnmap(cb *func(Widget)) uint32 {
5430 5430
5431 }5431 }
5432 cbRefPtr := purego.NewCallback(fcb)5432 cbRefPtr := purego.NewCallback(fcb)
5433- glib.SaveCallback(cbPtr, cbRefPtr)5433+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
5434 return gobject.SignalConnect(x.GoPointer(), "unmap", cbRefPtr)5434 return gobject.SignalConnect(x.GoPointer(), "unmap", cbRefPtr)
5435 }5435 }
5436 5436
@@ -5453,7 +5453,7 @@ func (x *Widget) ConnectUnrealize(cb *func(Widget)) uint32 {
5453 5453
5454 }5454 }
5455 cbRefPtr := purego.NewCallback(fcb)5455 cbRefPtr := purego.NewCallback(fcb)
5456- glib.SaveCallback(cbPtr, cbRefPtr)5456+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
5457 return gobject.SignalConnect(x.GoPointer(), "unrealize", cbRefPtr)5457 return gobject.SignalConnect(x.GoPointer(), "unrealize", cbRefPtr)
5458 }5458 }
5459 5459
M v4/gtk/gtkwindow.go +5 -5
@@ -1599,7 +1599,7 @@ func (x *Window) ConnectActivateDefault(cb *func(Window)) uint32 {
1599 1599
1600 }1600 }
1601 cbRefPtr := purego.NewCallback(fcb)1601 cbRefPtr := purego.NewCallback(fcb)
1602- glib.SaveCallback(cbPtr, cbRefPtr)1602+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1603 return gobject.SignalConnect(x.GoPointer(), "activate-default", cbRefPtr)1603 return gobject.SignalConnect(x.GoPointer(), "activate-default", cbRefPtr)
1604 }1604 }
1605 1605
@@ -1624,7 +1624,7 @@ func (x *Window) ConnectActivateFocus(cb *func(Window)) uint32 {
1624 1624
1625 }1625 }
1626 cbRefPtr := purego.NewCallback(fcb)1626 cbRefPtr := purego.NewCallback(fcb)
1627- glib.SaveCallback(cbPtr, cbRefPtr)1627+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1628 return gobject.SignalConnect(x.GoPointer(), "activate-focus", cbRefPtr)1628 return gobject.SignalConnect(x.GoPointer(), "activate-focus", cbRefPtr)
1629 }1629 }
1630 1630
@@ -1644,7 +1644,7 @@ func (x *Window) ConnectCloseRequest(cb *func(Window) bool) uint32 {
1644 1644
1645 }1645 }
1646 cbRefPtr := purego.NewCallback(fcb)1646 cbRefPtr := purego.NewCallback(fcb)
1647- glib.SaveCallback(cbPtr, cbRefPtr)1647+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1648 return gobject.SignalConnect(x.GoPointer(), "close-request", cbRefPtr)1648 return gobject.SignalConnect(x.GoPointer(), "close-request", cbRefPtr)
1649 }1649 }
1650 1650
@@ -1674,7 +1674,7 @@ func (x *Window) ConnectEnableDebugging(cb *func(Window, bool) bool) uint32 {
1674 1674
1675 }1675 }
1676 cbRefPtr := purego.NewCallback(fcb)1676 cbRefPtr := purego.NewCallback(fcb)
1677- glib.SaveCallback(cbPtr, cbRefPtr)1677+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1678 return gobject.SignalConnect(x.GoPointer(), "enable-debugging", cbRefPtr)1678 return gobject.SignalConnect(x.GoPointer(), "enable-debugging", cbRefPtr)
1679 }1679 }
1680 1680
@@ -1695,7 +1695,7 @@ func (x *Window) ConnectKeysChanged(cb *func(Window)) uint32 {
1695 1695
1696 }1696 }
1697 cbRefPtr := purego.NewCallback(fcb)1697 cbRefPtr := purego.NewCallback(fcb)
1698- glib.SaveCallback(cbPtr, cbRefPtr)1698+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
1699 return gobject.SignalConnect(x.GoPointer(), "keys-changed", cbRefPtr)1699 return gobject.SignalConnect(x.GoPointer(), "keys-changed", cbRefPtr)
1700 }1700 }
1701 1701
M v4/pango/pango-attributes.go +3 -3
@@ -408,7 +408,7 @@ func (x *AttrList) Filter(FuncVar *AttrFilterFunc, DataVar uintptr) *AttrList {
408 return cbFn(arg0, arg1)408 return cbFn(arg0, arg1)
409 }409 }
410 FuncVarRef = purego.NewCallback(fcb)410 FuncVarRef = purego.NewCallback(fcb)
411- glib.SaveCallback(FuncVarPtr, FuncVarRef)411+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
412 }412 }
413 }413 }
414 414
@@ -1397,7 +1397,7 @@ func AttrShapeNewWithData(InkRectVar *Rectangle, LogicalRectVar *Rectangle, Data
1397 return cbFn(arg0)1397 return cbFn(arg0)
1398 }1398 }
1399 CopyFuncVarRef = purego.NewCallback(fcb)1399 CopyFuncVarRef = purego.NewCallback(fcb)
1400- glib.SaveCallback(CopyFuncVarPtr, CopyFuncVarRef)1400+ glib.SaveCallbackWithClosure(CopyFuncVarPtr, CopyFuncVarRef, CopyFuncVar)
1401 }1401 }
1402 }1402 }
1403 1403
@@ -1412,7 +1412,7 @@ func AttrShapeNewWithData(InkRectVar *Rectangle, LogicalRectVar *Rectangle, Data
1412 cbFn(arg0)1412 cbFn(arg0)
1413 }1413 }
1414 DestroyFuncVarRef = purego.NewCallback(fcb)1414 DestroyFuncVarRef = purego.NewCallback(fcb)
1415- glib.SaveCallback(DestroyFuncVarPtr, DestroyFuncVarRef)1415+ glib.SaveCallbackWithClosure(DestroyFuncVarPtr, DestroyFuncVarRef, DestroyFuncVar)
1416 }1416 }
1417 }1417 }
1418 1418
M v4/pango/pango-fontset.go +1 -1
@@ -300,7 +300,7 @@ func (x *Fontset) Foreach(FuncVar *FontsetForeachFunc, DataVar uintptr) {
300 return cbFn(arg0, arg1, arg2)300 return cbFn(arg0, arg1, arg2)
301 }301 }
302 FuncVarRef = purego.NewCallback(fcb)302 FuncVarRef = purego.NewCallback(fcb)
303- glib.SaveCallback(FuncVarPtr, FuncVarRef)303+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
304 }304 }
305 }305 }
306 306
M v4/pangocairo/pangocairo.go +2 -2
@@ -255,7 +255,7 @@ func ContextSetShapeRenderer(ContextVar *pango.Context, FuncVar *ShapeRendererFu
255 cbFn(arg0, arg1, arg2, arg3)255 cbFn(arg0, arg1, arg2, arg3)
256 }256 }
257 FuncVarRef = purego.NewCallback(fcb)257 FuncVarRef = purego.NewCallback(fcb)
258- glib.SaveCallback(FuncVarPtr, FuncVarRef)258+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
259 }259 }
260 }260 }
261 261
@@ -270,7 +270,7 @@ func ContextSetShapeRenderer(ContextVar *pango.Context, FuncVar *ShapeRendererFu
270 cbFn(arg0)270 cbFn(arg0)
271 }271 }
272 DnotifyVarRef = purego.NewCallback(fcb)272 DnotifyVarRef = purego.NewCallback(fcb)
273- glib.SaveCallback(DnotifyVarPtr, DnotifyVarRef)273+ glib.SaveCallbackWithClosure(DnotifyVarPtr, DnotifyVarRef, DnotifyVar)
274 }274 }
275 }275 }
276 276

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 102

↑↓ moveenter openesc close