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 (
1111
1212 var callbacks = struct {
1313 sync.RWMutex
14- refs map[uintptr]uintptr
14+ refs map[uintptr]uintptr
15+ closures map[uintptr]interface{}
1516 }{
16- refs: make(map[uintptr]uintptr),
17+ refs: make(map[uintptr]uintptr),
18+ closures: make(map[uintptr]interface{}),
1719 }
1820
1921 // GetCallback retrives a callback reference by value.
@@ -33,6 +35,26 @@ func SaveCallback(cbPtr uintptr, refPtr uintptr) {
3335 callbacks.Unlock()
3436 }
3537
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+
3658 // UnrefCallbackValue unreferences the provided callback by reflect.value to free a purego slot
3759 //
3860 // 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}} {
9292 {{if .RetRaw}}return {{end}}cbFn({{range $i, $t := .PureTypes}}{{if $i}}, {{end}}arg{{$i}}{{end}})
9393 }
9494 {{.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}})
9696 }
9797 }
9898 {{end}}
@@ -126,7 +126,7 @@ func (x *{{$outer.Name}}) {{.Name}}({{conv .Args.API.Full}}) {{.Ret.Return}} {
126126 {{if .RetRaw}}return {{end}}cbFn({{range $i, $t := .PureTypes}}{{if $i}}, {{end}}arg{{$i}}{{end}})
127127 }
128128 {{.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}})
130130 }
131131 }
132132 {{end}}
@@ -315,7 +315,7 @@ func {{.Name}}({{conv .Args.API.Full}}) {{.Ret.Return}} {
315315 {{if .RetRaw}}return {{end}}cbFn({{range $i, $t := .PureTypes}}{{if $i}}, {{end}}arg{{$i}}{{end}})
316316 }
317317 {{.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}})
319319 }
320320 }
321321 {{end}}
@@ -372,7 +372,7 @@ func {{.Name}}({{conv .Args.API.Full}}) {{.Ret.Return}} {
372372 {{if .RetRaw}}return {{end}}cbFn({{range $i, $t := .PureTypes}}{{if $i}}, {{end}}arg{{$i}}{{end}})
373373 }
374374 {{.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}})
376376 }
377377 }
378378 {{end}}
@@ -406,7 +406,7 @@ func (x *{{$outer.Name}}) {{.Name}}({{conv .Args.API.Full}}) {{.Ret.Return}} {
406406 {{if .RetRaw}}return {{end}}cbFn({{range $i, $t := .PureTypes}}{{if $i}}, {{end}}arg{{$i}}{{end}})
407407 }
408408 {{.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}})
410410 }
411411 }
412412 {{end}}
@@ -477,7 +477,7 @@ func (x *{{$outer.Name}}) Connect{{.Name}}(cb *func({{$outer.Name}} {{convc .Arg
477477 {{end}}
478478 }
479479 cbRefPtr := purego.NewCallback(fcb)
480- {{if $NotGLib}}glib.{{end}}SaveCallback(cbPtr, cbRefPtr)
480+ {{if $NotGLib}}glib.{{end}}SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
481481 return {{if $NotGObject}}gobject.{{end}}SignalConnect(x.GoPointer(), "{{.CName}}", cbRefPtr)
482482 }
483483 {{if .Detailed}}
@@ -504,7 +504,7 @@ func (x *{{$outer.Name}}) Connect{{.Name}}WithDetail(detail string, cb *func({{$
504504 {{end}}
505505 }
506506 cbRefPtr := purego.NewCallback(fcb)
507- {{if $NotGLib}}glib.{{end}}SaveCallback(cbPtr, cbRefPtr)
507+ {{if $NotGLib}}glib.{{end}}SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
508508 return {{if $NotGObject}}gobject.{{end}}SignalConnect(x.GoPointer(), signalName, cbRefPtr)
509509 }
510510 {{end}}
@@ -545,7 +545,7 @@ func {{.Name}}({{conv .Args.API.Full}}) {{.Ret.Return}} {
545545 {{if .RetRaw}}return {{end}}cbFn({{range $i, $t := .PureTypes}}{{if $i}}, {{end}}arg{{$i}}{{end}})
546546 }
547547 {{.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}})
549549 }
550550 }
551551 {{end}}
M v4/adw/adw-about-dialog.go +1 -1
@@ -1736,7 +1736,7 @@ func (x *AboutDialog) ConnectActivateLink(cb *func(AboutDialog, string) bool) ui
17361736
17371737 }
17381738 cbRefPtr := purego.NewCallback(fcb)
1739- glib.SaveCallback(cbPtr, cbRefPtr)
1739+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
17401740 return gobject.SignalConnect(x.GoPointer(), "activate-link", cbRefPtr)
17411741 }
17421742
M v4/adw/adw-about-window.go +1 -1
@@ -1706,7 +1706,7 @@ func (x *AboutWindow) ConnectActivateLink(cb *func(AboutWindow, string) bool) ui
17061706
17071707 }
17081708 cbRefPtr := purego.NewCallback(fcb)
1709- glib.SaveCallback(cbPtr, cbRefPtr)
1709+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
17101710 return gobject.SignalConnect(x.GoPointer(), "activate-link", cbRefPtr)
17111711 }
17121712
M v4/adw/adw-action-row.go +1 -1
@@ -451,7 +451,7 @@ func (x *ActionRow) ConnectActivated(cb *func(ActionRow)) uint32 {
451451
452452 }
453453 cbRefPtr := purego.NewCallback(fcb)
454- glib.SaveCallback(cbPtr, cbRefPtr)
454+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
455455 return gobject.SignalConnect(x.GoPointer(), "activated", cbRefPtr)
456456 }
457457
M v4/adw/adw-alert-dialog.go +3 -3
@@ -342,7 +342,7 @@ func (x *AlertDialog) Choose(ParentVar *gtk.Widget, CancellableVar *gio.Cancella
342342 cbFn(arg0, arg1, arg2)
343343 }
344344 CallbackVarRef = purego.NewCallback(fcb)
345- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
345+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
346346 }
347347 }
348348
@@ -916,7 +916,7 @@ func (x *AlertDialog) ConnectResponse(cb *func(AlertDialog, string)) uint32 {
916916
917917 }
918918 cbRefPtr := purego.NewCallback(fcb)
919- glib.SaveCallback(cbPtr, cbRefPtr)
919+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
920920 return gobject.SignalConnect(x.GoPointer(), "response", cbRefPtr)
921921 }
922922
@@ -938,7 +938,7 @@ func (x *AlertDialog) ConnectResponseWithDetail(detail string, cb *func(AlertDia
938938
939939 }
940940 cbRefPtr := purego.NewCallback(fcb)
941- glib.SaveCallback(cbPtr, cbRefPtr)
941+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
942942 return gobject.SignalConnect(x.GoPointer(), signalName, cbRefPtr)
943943 }
944944
M v4/adw/adw-animation-target.go +2 -2
@@ -103,7 +103,7 @@ func NewCallbackAnimationTarget(CallbackVar *AnimationTargetFunc, UserDataVar ui
103103 cbFn(arg0, arg1)
104104 }
105105 CallbackVarRef = purego.NewCallback(fcb)
106- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
106+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
107107 }
108108 }
109109
@@ -118,7 +118,7 @@ func NewCallbackAnimationTarget(CallbackVar *AnimationTargetFunc, UserDataVar ui
118118 cbFn(arg0)
119119 }
120120 DestroyVarRef = purego.NewCallback(fcb)
121- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
121+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
122122 }
123123 }
124124
M v4/adw/adw-animation.go +1 -1
@@ -363,7 +363,7 @@ func (x *Animation) ConnectDone(cb *func(Animation)) uint32 {
363363
364364 }
365365 cbRefPtr := purego.NewCallback(fcb)
366- glib.SaveCallback(cbPtr, cbRefPtr)
366+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
367367 return gobject.SignalConnect(x.GoPointer(), "done", cbRefPtr)
368368 }
369369
M v4/adw/adw-banner.go +1 -1
@@ -343,7 +343,7 @@ func (x *Banner) ConnectButtonClicked(cb *func(Banner)) uint32 {
343343
344344 }
345345 cbRefPtr := purego.NewCallback(fcb)
346- glib.SaveCallback(cbPtr, cbRefPtr)
346+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
347347 return gobject.SignalConnect(x.GoPointer(), "button-clicked", cbRefPtr)
348348 }
349349
M v4/adw/adw-bottom-sheet.go +1 -1
@@ -692,7 +692,7 @@ func (x *BottomSheet) ConnectCloseAttempt(cb *func(BottomSheet)) uint32 {
692692
693693 }
694694 cbRefPtr := purego.NewCallback(fcb)
695- glib.SaveCallback(cbPtr, cbRefPtr)
695+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
696696 return gobject.SignalConnect(x.GoPointer(), "close-attempt", cbRefPtr)
697697 }
698698
M v4/adw/adw-breakpoint.go +2 -2
@@ -474,7 +474,7 @@ func (x *Breakpoint) ConnectApply(cb *func(Breakpoint)) uint32 {
474474
475475 }
476476 cbRefPtr := purego.NewCallback(fcb)
477- glib.SaveCallback(cbPtr, cbRefPtr)
477+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
478478 return gobject.SignalConnect(x.GoPointer(), "apply", cbRefPtr)
479479 }
480480
@@ -496,7 +496,7 @@ func (x *Breakpoint) ConnectUnapply(cb *func(Breakpoint)) uint32 {
496496
497497 }
498498 cbRefPtr := purego.NewCallback(fcb)
499- glib.SaveCallback(cbPtr, cbRefPtr)
499+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
500500 return gobject.SignalConnect(x.GoPointer(), "unapply", cbRefPtr)
501501 }
502502
M v4/adw/adw-button-row.go +1 -1
@@ -214,7 +214,7 @@ func (x *ButtonRow) ConnectActivated(cb *func(ButtonRow)) uint32 {
214214
215215 }
216216 cbRefPtr := purego.NewCallback(fcb)
217- glib.SaveCallback(cbPtr, cbRefPtr)
217+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
218218 return gobject.SignalConnect(x.GoPointer(), "activated", cbRefPtr)
219219 }
220220
M v4/adw/adw-carousel.go +1 -1
@@ -532,7 +532,7 @@ func (x *Carousel) ConnectPageChanged(cb *func(Carousel, uint)) uint32 {
532532
533533 }
534534 cbRefPtr := purego.NewCallback(fcb)
535- glib.SaveCallback(cbPtr, cbRefPtr)
535+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
536536 return gobject.SignalConnect(x.GoPointer(), "page-changed", cbRefPtr)
537537 }
538538
M v4/adw/adw-dialog.go +2 -2
@@ -642,7 +642,7 @@ func (x *Dialog) ConnectCloseAttempt(cb *func(Dialog)) uint32 {
642642
643643 }
644644 cbRefPtr := purego.NewCallback(fcb)
645- glib.SaveCallback(cbPtr, cbRefPtr)
645+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
646646 return gobject.SignalConnect(x.GoPointer(), "close-attempt", cbRefPtr)
647647 }
648648
@@ -662,7 +662,7 @@ func (x *Dialog) ConnectClosed(cb *func(Dialog)) uint32 {
662662
663663 }
664664 cbRefPtr := purego.NewCallback(fcb)
665- glib.SaveCallback(cbPtr, cbRefPtr)
665+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
666666 return gobject.SignalConnect(x.GoPointer(), "closed", cbRefPtr)
667667 }
668668
M v4/adw/adw-entry-row.go +2 -2
@@ -443,7 +443,7 @@ func (x *EntryRow) ConnectApply(cb *func(EntryRow)) uint32 {
443443
444444 }
445445 cbRefPtr := purego.NewCallback(fcb)
446- glib.SaveCallback(cbPtr, cbRefPtr)
446+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
447447 return gobject.SignalConnect(x.GoPointer(), "apply", cbRefPtr)
448448 }
449449
@@ -463,7 +463,7 @@ func (x *EntryRow) ConnectEntryActivated(cb *func(EntryRow)) uint32 {
463463
464464 }
465465 cbRefPtr := purego.NewCallback(fcb)
466- glib.SaveCallback(cbPtr, cbRefPtr)
466+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
467467 return gobject.SignalConnect(x.GoPointer(), "entry-activated", cbRefPtr)
468468 }
469469
M v4/adw/adw-message-dialog.go +3 -3
@@ -315,7 +315,7 @@ func (x *MessageDialog) Choose(CancellableVar *gio.Cancellable, CallbackVar *gio
315315 cbFn(arg0, arg1, arg2)
316316 }
317317 CallbackVarRef = purego.NewCallback(fcb)
318- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
318+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
319319 }
320320 }
321321
@@ -855,7 +855,7 @@ func (x *MessageDialog) ConnectResponse(cb *func(MessageDialog, string)) uint32
855855
856856 }
857857 cbRefPtr := purego.NewCallback(fcb)
858- glib.SaveCallback(cbPtr, cbRefPtr)
858+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
859859 return gobject.SignalConnect(x.GoPointer(), "response", cbRefPtr)
860860 }
861861
@@ -877,7 +877,7 @@ func (x *MessageDialog) ConnectResponseWithDetail(detail string, cb *func(Messag
877877
878878 }
879879 cbRefPtr := purego.NewCallback(fcb)
880- glib.SaveCallback(cbPtr, cbRefPtr)
880+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
881881 return gobject.SignalConnect(x.GoPointer(), signalName, cbRefPtr)
882882 }
883883
M v4/adw/adw-navigation-view.go +8 -8
@@ -446,7 +446,7 @@ func (x *NavigationPage) ConnectHidden(cb *func(NavigationPage)) uint32 {
446446
447447 }
448448 cbRefPtr := purego.NewCallback(fcb)
449- glib.SaveCallback(cbPtr, cbRefPtr)
449+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
450450 return gobject.SignalConnect(x.GoPointer(), "hidden", cbRefPtr)
451451 }
452452
@@ -470,7 +470,7 @@ func (x *NavigationPage) ConnectHiding(cb *func(NavigationPage)) uint32 {
470470
471471 }
472472 cbRefPtr := purego.NewCallback(fcb)
473- glib.SaveCallback(cbPtr, cbRefPtr)
473+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
474474 return gobject.SignalConnect(x.GoPointer(), "hiding", cbRefPtr)
475475 }
476476
@@ -494,7 +494,7 @@ func (x *NavigationPage) ConnectShowing(cb *func(NavigationPage)) uint32 {
494494
495495 }
496496 cbRefPtr := purego.NewCallback(fcb)
497- glib.SaveCallback(cbPtr, cbRefPtr)
497+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
498498 return gobject.SignalConnect(x.GoPointer(), "showing", cbRefPtr)
499499 }
500500
@@ -518,7 +518,7 @@ func (x *NavigationPage) ConnectShown(cb *func(NavigationPage)) uint32 {
518518
519519 }
520520 cbRefPtr := purego.NewCallback(fcb)
521- glib.SaveCallback(cbPtr, cbRefPtr)
521+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
522522 return gobject.SignalConnect(x.GoPointer(), "shown", cbRefPtr)
523523 }
524524
@@ -1496,7 +1496,7 @@ func (x *NavigationView) ConnectGetNextPage(cb *func(NavigationView) NavigationP
14961496
14971497 }
14981498 cbRefPtr := purego.NewCallback(fcb)
1499- glib.SaveCallback(cbPtr, cbRefPtr)
1499+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
15001500 return gobject.SignalConnect(x.GoPointer(), "get-next-page", cbRefPtr)
15011501 }
15021502
@@ -1522,7 +1522,7 @@ func (x *NavigationView) ConnectPopped(cb *func(NavigationView, uintptr)) uint32
15221522
15231523 }
15241524 cbRefPtr := purego.NewCallback(fcb)
1525- glib.SaveCallback(cbPtr, cbRefPtr)
1525+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
15261526 return gobject.SignalConnect(x.GoPointer(), "popped", cbRefPtr)
15271527 }
15281528
@@ -1544,7 +1544,7 @@ func (x *NavigationView) ConnectPushed(cb *func(NavigationView)) uint32 {
15441544
15451545 }
15461546 cbRefPtr := purego.NewCallback(fcb)
1547- glib.SaveCallback(cbPtr, cbRefPtr)
1547+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
15481548 return gobject.SignalConnect(x.GoPointer(), "pushed", cbRefPtr)
15491549 }
15501550
@@ -1566,7 +1566,7 @@ func (x *NavigationView) ConnectReplaced(cb *func(NavigationView)) uint32 {
15661566
15671567 }
15681568 cbRefPtr := purego.NewCallback(fcb)
1569- glib.SaveCallback(cbPtr, cbRefPtr)
1569+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
15701570 return gobject.SignalConnect(x.GoPointer(), "replaced", cbRefPtr)
15711571 }
15721572
M v4/adw/adw-preferences-group.go +2 -2
@@ -125,7 +125,7 @@ func (x *PreferencesGroup) BindModel(ModelVar gio.ListModel, CreateRowFuncVar *g
125125 return cbFn(arg0, arg1)
126126 }
127127 CreateRowFuncVarRef = purego.NewCallback(fcb)
128- glib.SaveCallback(CreateRowFuncVarPtr, CreateRowFuncVarRef)
128+ glib.SaveCallbackWithClosure(CreateRowFuncVarPtr, CreateRowFuncVarRef, CreateRowFuncVar)
129129 }
130130 }
131131
@@ -140,7 +140,7 @@ func (x *PreferencesGroup) BindModel(ModelVar gio.ListModel, CreateRowFuncVar *g
140140 cbFn(arg0)
141141 }
142142 UserDataFreeFuncVarRef = purego.NewCallback(fcb)
143- glib.SaveCallback(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef)
143+ glib.SaveCallbackWithClosure(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef, UserDataFreeFuncVar)
144144 }
145145 }
146146
M v4/adw/adw-spin-row.go +3 -3
@@ -454,7 +454,7 @@ func (x *SpinRow) ConnectInput(cb *func(SpinRow, *float64) int) uint32 {
454454
455455 }
456456 cbRefPtr := purego.NewCallback(fcb)
457- glib.SaveCallback(cbPtr, cbRefPtr)
457+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
458458 return gobject.SignalConnect(x.GoPointer(), "input", cbRefPtr)
459459 }
460460
@@ -476,7 +476,7 @@ func (x *SpinRow) ConnectOutput(cb *func(SpinRow) bool) uint32 {
476476
477477 }
478478 cbRefPtr := purego.NewCallback(fcb)
479- glib.SaveCallback(cbPtr, cbRefPtr)
479+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
480480 return gobject.SignalConnect(x.GoPointer(), "output", cbRefPtr)
481481 }
482482
@@ -498,7 +498,7 @@ func (x *SpinRow) ConnectWrapped(cb *func(SpinRow)) uint32 {
498498
499499 }
500500 cbRefPtr := purego.NewCallback(fcb)
501- glib.SaveCallback(cbPtr, cbRefPtr)
501+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
502502 return gobject.SignalConnect(x.GoPointer(), "wrapped", cbRefPtr)
503503 }
504504
M v4/adw/adw-split-button.go +2 -2
@@ -503,7 +503,7 @@ func (x *SplitButton) ConnectActivate(cb *func(SplitButton)) uint32 {
503503
504504 }
505505 cbRefPtr := purego.NewCallback(fcb)
506- glib.SaveCallback(cbPtr, cbRefPtr)
506+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
507507 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
508508 }
509509
@@ -523,7 +523,7 @@ func (x *SplitButton) ConnectClicked(cb *func(SplitButton)) uint32 {
523523
524524 }
525525 cbRefPtr := purego.NewCallback(fcb)
526- glib.SaveCallback(cbPtr, cbRefPtr)
526+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
527527 return gobject.SignalConnect(x.GoPointer(), "clicked", cbRefPtr)
528528 }
529529
M v4/adw/adw-swipe-tracker.go +4 -4
@@ -408,7 +408,7 @@ func (x *SwipeTracker) ConnectBeginSwipe(cb *func(SwipeTracker)) uint32 {
408408
409409 }
410410 cbRefPtr := purego.NewCallback(fcb)
411- glib.SaveCallback(cbPtr, cbRefPtr)
411+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
412412 return gobject.SignalConnect(x.GoPointer(), "begin-swipe", cbRefPtr)
413413 }
414414
@@ -433,7 +433,7 @@ func (x *SwipeTracker) ConnectEndSwipe(cb *func(SwipeTracker, float64, float64))
433433
434434 }
435435 cbRefPtr := purego.NewCallback(fcb)
436- glib.SaveCallback(cbPtr, cbRefPtr)
436+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
437437 return gobject.SignalConnect(x.GoPointer(), "end-swipe", cbRefPtr)
438438 }
439439
@@ -456,7 +456,7 @@ func (x *SwipeTracker) ConnectPrepare(cb *func(SwipeTracker, NavigationDirection
456456
457457 }
458458 cbRefPtr := purego.NewCallback(fcb)
459- glib.SaveCallback(cbPtr, cbRefPtr)
459+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
460460 return gobject.SignalConnect(x.GoPointer(), "prepare", cbRefPtr)
461461 }
462462
@@ -476,7 +476,7 @@ func (x *SwipeTracker) ConnectUpdateSwipe(cb *func(SwipeTracker, float64)) uint3
476476
477477 }
478478 cbRefPtr := purego.NewCallback(fcb)
479- glib.SaveCallback(cbPtr, cbRefPtr)
479+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
480480 return gobject.SignalConnect(x.GoPointer(), "update-swipe", cbRefPtr)
481481 }
482482
M v4/adw/adw-tab-bar.go +2 -2
@@ -459,7 +459,7 @@ func (x *TabBar) ConnectExtraDragDrop(cb *func(TabBar, uintptr, uintptr) bool) u
459459
460460 }
461461 cbRefPtr := purego.NewCallback(fcb)
462- glib.SaveCallback(cbPtr, cbRefPtr)
462+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
463463 return gobject.SignalConnect(x.GoPointer(), "extra-drag-drop", cbRefPtr)
464464 }
465465
@@ -487,7 +487,7 @@ func (x *TabBar) ConnectExtraDragValue(cb *func(TabBar, uintptr, uintptr) gdk.Dr
487487
488488 }
489489 cbRefPtr := purego.NewCallback(fcb)
490- glib.SaveCallback(cbPtr, cbRefPtr)
490+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
491491 return gobject.SignalConnect(x.GoPointer(), "extra-drag-value", cbRefPtr)
492492 }
493493
M v4/adw/adw-tab-button.go +2 -2
@@ -145,7 +145,7 @@ func (x *TabButton) ConnectActivate(cb *func(TabButton)) uint32 {
145145
146146 }
147147 cbRefPtr := purego.NewCallback(fcb)
148- glib.SaveCallback(cbPtr, cbRefPtr)
148+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
149149 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
150150 }
151151
@@ -165,7 +165,7 @@ func (x *TabButton) ConnectClicked(cb *func(TabButton)) uint32 {
165165
166166 }
167167 cbRefPtr := purego.NewCallback(fcb)
168- glib.SaveCallback(cbPtr, cbRefPtr)
168+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
169169 return gobject.SignalConnect(x.GoPointer(), "clicked", cbRefPtr)
170170 }
171171
M v4/adw/adw-tab-overview.go +3 -3
@@ -596,7 +596,7 @@ func (x *TabOverview) ConnectCreateTab(cb *func(TabOverview) TabPage) uint32 {
596596
597597 }
598598 cbRefPtr := purego.NewCallback(fcb)
599- glib.SaveCallback(cbPtr, cbRefPtr)
599+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
600600 return gobject.SignalConnect(x.GoPointer(), "create-tab", cbRefPtr)
601601 }
602602
@@ -621,7 +621,7 @@ func (x *TabOverview) ConnectExtraDragDrop(cb *func(TabOverview, uintptr, uintpt
621621
622622 }
623623 cbRefPtr := purego.NewCallback(fcb)
624- glib.SaveCallback(cbPtr, cbRefPtr)
624+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
625625 return gobject.SignalConnect(x.GoPointer(), "extra-drag-drop", cbRefPtr)
626626 }
627627
@@ -649,7 +649,7 @@ func (x *TabOverview) ConnectExtraDragValue(cb *func(TabOverview, uintptr, uintp
649649
650650 }
651651 cbRefPtr := purego.NewCallback(fcb)
652- glib.SaveCallback(cbPtr, cbRefPtr)
652+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
653653 return gobject.SignalConnect(x.GoPointer(), "extra-drag-value", cbRefPtr)
654654 }
655655
M v4/adw/adw-tab-view.go +7 -7
@@ -1867,7 +1867,7 @@ func (x *TabView) ConnectClosePage(cb *func(TabView, uintptr) bool) uint32 {
18671867
18681868 }
18691869 cbRefPtr := purego.NewCallback(fcb)
1870- glib.SaveCallback(cbPtr, cbRefPtr)
1870+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
18711871 return gobject.SignalConnect(x.GoPointer(), "close-page", cbRefPtr)
18721872 }
18731873
@@ -1893,7 +1893,7 @@ func (x *TabView) ConnectCreateWindow(cb *func(TabView) TabView) uint32 {
18931893
18941894 }
18951895 cbRefPtr := purego.NewCallback(fcb)
1896- glib.SaveCallback(cbPtr, cbRefPtr)
1896+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
18971897 return gobject.SignalConnect(x.GoPointer(), "create-window", cbRefPtr)
18981898 }
18991899
@@ -1916,7 +1916,7 @@ func (x *TabView) ConnectIndicatorActivated(cb *func(TabView, uintptr)) uint32 {
19161916
19171917 }
19181918 cbRefPtr := purego.NewCallback(fcb)
1919- glib.SaveCallback(cbPtr, cbRefPtr)
1919+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
19201920 return gobject.SignalConnect(x.GoPointer(), "indicator-activated", cbRefPtr)
19211921 }
19221922
@@ -1939,7 +1939,7 @@ func (x *TabView) ConnectPageAttached(cb *func(TabView, uintptr, int)) uint32 {
19391939
19401940 }
19411941 cbRefPtr := purego.NewCallback(fcb)
1942- glib.SaveCallback(cbPtr, cbRefPtr)
1942+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
19431943 return gobject.SignalConnect(x.GoPointer(), "page-attached", cbRefPtr)
19441944 }
19451945
@@ -1967,7 +1967,7 @@ func (x *TabView) ConnectPageDetached(cb *func(TabView, uintptr, int)) uint32 {
19671967
19681968 }
19691969 cbRefPtr := purego.NewCallback(fcb)
1970- glib.SaveCallback(cbPtr, cbRefPtr)
1970+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
19711971 return gobject.SignalConnect(x.GoPointer(), "page-detached", cbRefPtr)
19721972 }
19731973
@@ -1987,7 +1987,7 @@ func (x *TabView) ConnectPageReordered(cb *func(TabView, uintptr, int)) uint32 {
19871987
19881988 }
19891989 cbRefPtr := purego.NewCallback(fcb)
1990- glib.SaveCallback(cbPtr, cbRefPtr)
1990+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
19911991 return gobject.SignalConnect(x.GoPointer(), "page-reordered", cbRefPtr)
19921992 }
19931993
@@ -2012,7 +2012,7 @@ func (x *TabView) ConnectSetupMenu(cb *func(TabView, uintptr)) uint32 {
20122012
20132013 }
20142014 cbRefPtr := purego.NewCallback(fcb)
2015- glib.SaveCallback(cbPtr, cbRefPtr)
2015+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
20162016 return gobject.SignalConnect(x.GoPointer(), "setup-menu", cbRefPtr)
20172017 }
20182018
M v4/adw/adw-toast.go +2 -2
@@ -671,7 +671,7 @@ func (x *Toast) ConnectButtonClicked(cb *func(Toast)) uint32 {
671671
672672 }
673673 cbRefPtr := purego.NewCallback(fcb)
674- glib.SaveCallback(cbPtr, cbRefPtr)
674+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
675675 return gobject.SignalConnect(x.GoPointer(), "button-clicked", cbRefPtr)
676676 }
677677
@@ -691,7 +691,7 @@ func (x *Toast) ConnectDismissed(cb *func(Toast)) uint32 {
691691
692692 }
693693 cbRefPtr := purego.NewCallback(fcb)
694- glib.SaveCallback(cbPtr, cbRefPtr)
694+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
695695 return gobject.SignalConnect(x.GoPointer(), "dismissed", cbRefPtr)
696696 }
697697
M v4/gdk/gdkclipboard.go +6 -6
@@ -127,7 +127,7 @@ func (x *Clipboard) ReadAsync(MimeTypesVar []string, IoPriorityVar int, Cancella
127127 cbFn(arg0, arg1, arg2)
128128 }
129129 CallbackVarRef = purego.NewCallback(fcb)
130- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
130+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
131131 }
132132 }
133133
@@ -178,7 +178,7 @@ func (x *Clipboard) ReadTextAsync(CancellableVar *gio.Cancellable, CallbackVar *
178178 cbFn(arg0, arg1, arg2)
179179 }
180180 CallbackVarRef = purego.NewCallback(fcb)
181- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
181+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
182182 }
183183 }
184184
@@ -223,7 +223,7 @@ func (x *Clipboard) ReadTextureAsync(CancellableVar *gio.Cancellable, CallbackVa
223223 cbFn(arg0, arg1, arg2)
224224 }
225225 CallbackVarRef = purego.NewCallback(fcb)
226- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
226+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
227227 }
228228 }
229229
@@ -275,7 +275,7 @@ func (x *Clipboard) ReadValueAsync(TypeVar types.GType, IoPriorityVar int, Cance
275275 cbFn(arg0, arg1, arg2)
276276 }
277277 CallbackVarRef = purego.NewCallback(fcb)
278- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
278+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
279279 }
280280 }
281281
@@ -403,7 +403,7 @@ func (x *Clipboard) StoreAsync(IoPriorityVar int, CancellableVar *gio.Cancellabl
403403 cbFn(arg0, arg1, arg2)
404404 }
405405 CallbackVarRef = purego.NewCallback(fcb)
406- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
406+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
407407 }
408408 }
409409
@@ -471,7 +471,7 @@ func (x *Clipboard) ConnectChanged(cb *func(Clipboard)) uint32 {
471471
472472 }
473473 cbRefPtr := purego.NewCallback(fcb)
474- glib.SaveCallback(cbPtr, cbRefPtr)
474+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
475475 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
476476 }
477477
M v4/gdk/gdkcontentdeserializer.go +4 -4
@@ -38,7 +38,7 @@ func ContentDeserializeAsync(StreamVar *gio.InputStream, MimeTypeVar string, Typ
3838 cbFn(arg0, arg1, arg2)
3939 }
4040 CallbackVarRef = purego.NewCallback(fcb)
41- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
41+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
4242 }
4343 }
4444
@@ -81,7 +81,7 @@ func ContentRegisterDeserializer(MimeTypeVar string, TypeVar types.GType, Deseri
8181 cbFn(arg0)
8282 }
8383 DeserializeVarRef = purego.NewCallback(fcb)
84- glib.SaveCallback(DeserializeVarPtr, DeserializeVarRef)
84+ glib.SaveCallbackWithClosure(DeserializeVarPtr, DeserializeVarRef, DeserializeVar)
8585 }
8686 }
8787
@@ -96,7 +96,7 @@ func ContentRegisterDeserializer(MimeTypeVar string, TypeVar types.GType, Deseri
9696 cbFn(arg0)
9797 }
9898 NotifyVarRef = purego.NewCallback(fcb)
99- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)
99+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
100100 }
101101 }
102102
@@ -268,7 +268,7 @@ func (x *ContentDeserializer) SetTaskData(DataVar uintptr, NotifyVar *glib.Destr
268268 cbFn(arg0)
269269 }
270270 NotifyVarRef = purego.NewCallback(fcb)
271- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)
271+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
272272 }
273273 }
274274
M v4/gdk/gdkcontentprovider.go +2 -2
@@ -416,7 +416,7 @@ func (x *ContentProvider) WriteMimeTypeAsync(MimeTypeVar string, StreamVar *gio.
416416 cbFn(arg0, arg1, arg2)
417417 }
418418 CallbackVarRef = purego.NewCallback(fcb)
419- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
419+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
420420 }
421421 }
422422
@@ -484,7 +484,7 @@ func (x *ContentProvider) ConnectContentChanged(cb *func(ContentProvider)) uint3
484484
485485 }
486486 cbRefPtr := purego.NewCallback(fcb)
487- glib.SaveCallback(cbPtr, cbRefPtr)
487+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
488488 return gobject.SignalConnect(x.GoPointer(), "content-changed", cbRefPtr)
489489 }
490490
M v4/gdk/gdkcontentserializer.go +4 -4
@@ -39,7 +39,7 @@ func ContentRegisterSerializer(TypeVar types.GType, MimeTypeVar string, Serializ
3939 cbFn(arg0)
4040 }
4141 SerializeVarRef = purego.NewCallback(fcb)
42- glib.SaveCallback(SerializeVarPtr, SerializeVarRef)
42+ glib.SaveCallbackWithClosure(SerializeVarPtr, SerializeVarRef, SerializeVar)
4343 }
4444 }
4545
@@ -54,7 +54,7 @@ func ContentRegisterSerializer(TypeVar types.GType, MimeTypeVar string, Serializ
5454 cbFn(arg0)
5555 }
5656 NotifyVarRef = purego.NewCallback(fcb)
57- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)
57+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
5858 }
5959 }
6060
@@ -81,7 +81,7 @@ func ContentSerializeAsync(StreamVar *gio.OutputStream, MimeTypeVar string, Valu
8181 cbFn(arg0, arg1, arg2)
8282 }
8383 CallbackVarRef = purego.NewCallback(fcb)
84- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
84+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
8585 }
8686 }
8787
@@ -269,7 +269,7 @@ func (x *ContentSerializer) SetTaskData(DataVar uintptr, NotifyVar *glib.Destroy
269269 cbFn(arg0)
270270 }
271271 NotifyVarRef = purego.NewCallback(fcb)
272- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)
272+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
273273 }
274274 }
275275
M v4/gdk/gdkcursor.go +2 -2
@@ -95,7 +95,7 @@ func NewCursorFromCallback(CallbackVar *CursorGetTextureCallback, DataVar uintpt
9595 return cbFn(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7)
9696 }
9797 CallbackVarRef = purego.NewCallback(fcb)
98- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
98+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
9999 }
100100 }
101101
@@ -110,7 +110,7 @@ func NewCursorFromCallback(CallbackVar *CursorGetTextureCallback, DataVar uintpt
110110 cbFn(arg0)
111111 }
112112 DestroyVarRef = purego.NewCallback(fcb)
113- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
113+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
114114 }
115115 }
116116
M v4/gdk/gdkdevice.go +2 -2
@@ -570,7 +570,7 @@ func (x *Device) ConnectChanged(cb *func(Device)) uint32 {
570570
571571 }
572572 cbRefPtr := purego.NewCallback(fcb)
573- glib.SaveCallback(cbPtr, cbRefPtr)
573+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
574574 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
575575 }
576576
@@ -590,7 +590,7 @@ func (x *Device) ConnectToolChanged(cb *func(Device, uintptr)) uint32 {
590590
591591 }
592592 cbRefPtr := purego.NewCallback(fcb)
593- glib.SaveCallback(cbPtr, cbRefPtr)
593+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
594594 return gobject.SignalConnect(x.GoPointer(), "tool-changed", cbRefPtr)
595595 }
596596
M v4/gdk/gdkdisplay.go +5 -5
@@ -581,7 +581,7 @@ func (x *Display) ConnectClosed(cb *func(Display, bool)) uint32 {
581581
582582 }
583583 cbRefPtr := purego.NewCallback(fcb)
584- glib.SaveCallback(cbPtr, cbRefPtr)
584+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
585585 return gobject.SignalConnect(x.GoPointer(), "closed", cbRefPtr)
586586 }
587587
@@ -601,7 +601,7 @@ func (x *Display) ConnectOpened(cb *func(Display)) uint32 {
601601
602602 }
603603 cbRefPtr := purego.NewCallback(fcb)
604- glib.SaveCallback(cbPtr, cbRefPtr)
604+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
605605 return gobject.SignalConnect(x.GoPointer(), "opened", cbRefPtr)
606606 }
607607
@@ -621,7 +621,7 @@ func (x *Display) ConnectSeatAdded(cb *func(Display, uintptr)) uint32 {
621621
622622 }
623623 cbRefPtr := purego.NewCallback(fcb)
624- glib.SaveCallback(cbPtr, cbRefPtr)
624+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
625625 return gobject.SignalConnect(x.GoPointer(), "seat-added", cbRefPtr)
626626 }
627627
@@ -641,7 +641,7 @@ func (x *Display) ConnectSeatRemoved(cb *func(Display, uintptr)) uint32 {
641641
642642 }
643643 cbRefPtr := purego.NewCallback(fcb)
644- glib.SaveCallback(cbPtr, cbRefPtr)
644+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
645645 return gobject.SignalConnect(x.GoPointer(), "seat-removed", cbRefPtr)
646646 }
647647
@@ -661,7 +661,7 @@ func (x *Display) ConnectSettingChanged(cb *func(Display, string)) uint32 {
661661
662662 }
663663 cbRefPtr := purego.NewCallback(fcb)
664- glib.SaveCallback(cbPtr, cbRefPtr)
664+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
665665 return gobject.SignalConnect(x.GoPointer(), "setting-changed", cbRefPtr)
666666 }
667667
M v4/gdk/gdkdisplaymanager.go +1 -1
@@ -202,7 +202,7 @@ func (x *DisplayManager) ConnectDisplayOpened(cb *func(DisplayManager, uintptr))
202202
203203 }
204204 cbRefPtr := purego.NewCallback(fcb)
205- glib.SaveCallback(cbPtr, cbRefPtr)
205+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
206206 return gobject.SignalConnect(x.GoPointer(), "display-opened", cbRefPtr)
207207 }
208208
M v4/gdk/gdkdmabuftexturebuilder.go +1 -1
@@ -142,7 +142,7 @@ func (x *DmabufTextureBuilder) Build(DestroyVar *glib.DestroyNotify, DataVar uin
142142 cbFn(arg0)
143143 }
144144 DestroyVarRef = purego.NewCallback(fcb)
145- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
145+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
146146 }
147147 }
148148
M v4/gdk/gdkdrag.go +3 -3
@@ -266,7 +266,7 @@ func (x *Drag) ConnectCancel(cb *func(Drag, DragCancelReason)) uint32 {
266266
267267 }
268268 cbRefPtr := purego.NewCallback(fcb)
269- glib.SaveCallback(cbPtr, cbRefPtr)
269+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
270270 return gobject.SignalConnect(x.GoPointer(), "cancel", cbRefPtr)
271271 }
272272
@@ -288,7 +288,7 @@ func (x *Drag) ConnectDndFinished(cb *func(Drag)) uint32 {
288288
289289 }
290290 cbRefPtr := purego.NewCallback(fcb)
291- glib.SaveCallback(cbPtr, cbRefPtr)
291+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
292292 return gobject.SignalConnect(x.GoPointer(), "dnd-finished", cbRefPtr)
293293 }
294294
@@ -308,7 +308,7 @@ func (x *Drag) ConnectDropPerformed(cb *func(Drag)) uint32 {
308308
309309 }
310310 cbRefPtr := purego.NewCallback(fcb)
311- glib.SaveCallback(cbPtr, cbRefPtr)
311+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
312312 return gobject.SignalConnect(x.GoPointer(), "drop-performed", cbRefPtr)
313313 }
314314
M v4/gdk/gdkdrop.go +2 -2
@@ -176,7 +176,7 @@ func (x *Drop) ReadAsync(MimeTypesVar []string, IoPriorityVar int, CancellableVa
176176 cbFn(arg0, arg1, arg2)
177177 }
178178 CallbackVarRef = purego.NewCallback(fcb)
179- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
179+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
180180 }
181181 }
182182
@@ -233,7 +233,7 @@ func (x *Drop) ReadValueAsync(TypeVar types.GType, IoPriorityVar int, Cancellabl
233233 cbFn(arg0, arg1, arg2)
234234 }
235235 CallbackVarRef = purego.NewCallback(fcb)
236- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
236+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
237237 }
238238 }
239239
M v4/gdk/gdkframeclock.go +7 -7
@@ -276,7 +276,7 @@ func (x *FrameClock) ConnectAfterPaint(cb *func(FrameClock)) uint32 {
276276
277277 }
278278 cbRefPtr := purego.NewCallback(fcb)
279- glib.SaveCallback(cbPtr, cbRefPtr)
279+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
280280 return gobject.SignalConnect(x.GoPointer(), "after-paint", cbRefPtr)
281281 }
282282
@@ -298,7 +298,7 @@ func (x *FrameClock) ConnectBeforePaint(cb *func(FrameClock)) uint32 {
298298
299299 }
300300 cbRefPtr := purego.NewCallback(fcb)
301- glib.SaveCallback(cbPtr, cbRefPtr)
301+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
302302 return gobject.SignalConnect(x.GoPointer(), "before-paint", cbRefPtr)
303303 }
304304
@@ -321,7 +321,7 @@ func (x *FrameClock) ConnectFlushEvents(cb *func(FrameClock)) uint32 {
321321
322322 }
323323 cbRefPtr := purego.NewCallback(fcb)
324- glib.SaveCallback(cbPtr, cbRefPtr)
324+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
325325 return gobject.SignalConnect(x.GoPointer(), "flush-events", cbRefPtr)
326326 }
327327
@@ -345,7 +345,7 @@ func (x *FrameClock) ConnectLayout(cb *func(FrameClock)) uint32 {
345345
346346 }
347347 cbRefPtr := purego.NewCallback(fcb)
348- glib.SaveCallback(cbPtr, cbRefPtr)
348+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
349349 return gobject.SignalConnect(x.GoPointer(), "layout", cbRefPtr)
350350 }
351351
@@ -371,7 +371,7 @@ func (x *FrameClock) ConnectPaint(cb *func(FrameClock)) uint32 {
371371
372372 }
373373 cbRefPtr := purego.NewCallback(fcb)
374- glib.SaveCallback(cbPtr, cbRefPtr)
374+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
375375 return gobject.SignalConnect(x.GoPointer(), "paint", cbRefPtr)
376376 }
377377
@@ -394,7 +394,7 @@ func (x *FrameClock) ConnectResumeEvents(cb *func(FrameClock)) uint32 {
394394
395395 }
396396 cbRefPtr := purego.NewCallback(fcb)
397- glib.SaveCallback(cbPtr, cbRefPtr)
397+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
398398 return gobject.SignalConnect(x.GoPointer(), "resume-events", cbRefPtr)
399399 }
400400
@@ -420,7 +420,7 @@ func (x *FrameClock) ConnectUpdate(cb *func(FrameClock)) uint32 {
420420
421421 }
422422 cbRefPtr := purego.NewCallback(fcb)
423- glib.SaveCallback(cbPtr, cbRefPtr)
423+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
424424 return gobject.SignalConnect(x.GoPointer(), "update", cbRefPtr)
425425 }
426426
M v4/gdk/gdkgltexture.go +1 -1
@@ -58,7 +58,7 @@ func NewGLTexture(ContextVar *GLContext, IdVar uint, WidthVar int, HeightVar int
5858 cbFn(arg0)
5959 }
6060 DestroyVarRef = purego.NewCallback(fcb)
61- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
61+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
6262 }
6363 }
6464
M v4/gdk/gdkgltexturebuilder.go +1 -1
@@ -92,7 +92,7 @@ func (x *GLTextureBuilder) Build(DestroyVar *glib.DestroyNotify, DataVar uintptr
9292 cbFn(arg0)
9393 }
9494 DestroyVarRef = purego.NewCallback(fcb)
95- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
95+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
9696 }
9797 }
9898
M v4/gdk/gdkmonitor.go +1 -1
@@ -359,7 +359,7 @@ func (x *Monitor) ConnectInvalidate(cb *func(Monitor)) uint32 {
359359
360360 }
361361 cbRefPtr := purego.NewCallback(fcb)
362- glib.SaveCallback(cbPtr, cbRefPtr)
362+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
363363 return gobject.SignalConnect(x.GoPointer(), "invalidate", cbRefPtr)
364364 }
365365
M v4/gdk/gdkseat.go +4 -4
@@ -165,7 +165,7 @@ func (x *Seat) ConnectDeviceAdded(cb *func(Seat, uintptr)) uint32 {
165165
166166 }
167167 cbRefPtr := purego.NewCallback(fcb)
168- glib.SaveCallback(cbPtr, cbRefPtr)
168+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
169169 return gobject.SignalConnect(x.GoPointer(), "device-added", cbRefPtr)
170170 }
171171
@@ -185,7 +185,7 @@ func (x *Seat) ConnectDeviceRemoved(cb *func(Seat, uintptr)) uint32 {
185185
186186 }
187187 cbRefPtr := purego.NewCallback(fcb)
188- glib.SaveCallback(cbPtr, cbRefPtr)
188+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
189189 return gobject.SignalConnect(x.GoPointer(), "device-removed", cbRefPtr)
190190 }
191191
@@ -211,7 +211,7 @@ func (x *Seat) ConnectToolAdded(cb *func(Seat, uintptr)) uint32 {
211211
212212 }
213213 cbRefPtr := purego.NewCallback(fcb)
214- glib.SaveCallback(cbPtr, cbRefPtr)
214+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
215215 return gobject.SignalConnect(x.GoPointer(), "tool-added", cbRefPtr)
216216 }
217217
@@ -231,7 +231,7 @@ func (x *Seat) ConnectToolRemoved(cb *func(Seat, uintptr)) uint32 {
231231
232232 }
233233 cbRefPtr := purego.NewCallback(fcb)
234- glib.SaveCallback(cbPtr, cbRefPtr)
234+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
235235 return gobject.SignalConnect(x.GoPointer(), "tool-removed", cbRefPtr)
236236 }
237237
M v4/gdk/gdksurface.go +5 -5
@@ -579,7 +579,7 @@ func (x *Surface) ConnectEnterMonitor(cb *func(Surface, uintptr)) uint32 {
579579
580580 }
581581 cbRefPtr := purego.NewCallback(fcb)
582- glib.SaveCallback(cbPtr, cbRefPtr)
582+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
583583 return gobject.SignalConnect(x.GoPointer(), "enter-monitor", cbRefPtr)
584584 }
585585
@@ -599,7 +599,7 @@ func (x *Surface) ConnectEvent(cb *func(Surface, *Event) bool) uint32 {
599599
600600 }
601601 cbRefPtr := purego.NewCallback(fcb)
602- glib.SaveCallback(cbPtr, cbRefPtr)
602+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
603603 return gobject.SignalConnect(x.GoPointer(), "event", cbRefPtr)
604604 }
605605
@@ -623,7 +623,7 @@ func (x *Surface) ConnectLayout(cb *func(Surface, int, int)) uint32 {
623623
624624 }
625625 cbRefPtr := purego.NewCallback(fcb)
626- glib.SaveCallback(cbPtr, cbRefPtr)
626+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
627627 return gobject.SignalConnect(x.GoPointer(), "layout", cbRefPtr)
628628 }
629629
@@ -643,7 +643,7 @@ func (x *Surface) ConnectLeaveMonitor(cb *func(Surface, uintptr)) uint32 {
643643
644644 }
645645 cbRefPtr := purego.NewCallback(fcb)
646- glib.SaveCallback(cbPtr, cbRefPtr)
646+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
647647 return gobject.SignalConnect(x.GoPointer(), "leave-monitor", cbRefPtr)
648648 }
649649
@@ -663,7 +663,7 @@ func (x *Surface) ConnectRender(cb *func(Surface, uintptr) bool) uint32 {
663663
664664 }
665665 cbRefPtr := purego.NewCallback(fcb)
666- glib.SaveCallback(cbPtr, cbRefPtr)
666+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
667667 return gobject.SignalConnect(x.GoPointer(), "render", cbRefPtr)
668668 }
669669
M v4/gdk/gdkvulkancontext.go +1 -1
@@ -75,7 +75,7 @@ func (x *VulkanContext) ConnectImagesUpdated(cb *func(VulkanContext)) uint32 {
7575
7676 }
7777 cbRefPtr := purego.NewCallback(fcb)
78- glib.SaveCallback(cbPtr, cbRefPtr)
78+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
7979 return gobject.SignalConnect(x.GoPointer(), "images-updated", cbRefPtr)
8080 }
8181
M v4/gdkpixbuf/gdk-pixbuf-animation.go +1 -1
@@ -602,7 +602,7 @@ func PixbufAnimationNewFromStreamAsync(StreamVar *gio.InputStream, CancellableVa
602602 cbFn(arg0, arg1, arg2)
603603 }
604604 CallbackVarRef = purego.NewCallback(fcb)
605- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
605+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
606606 }
607607 }
608608
M v4/gdkpixbuf/gdk-pixbuf-loader.go +4 -4
@@ -441,7 +441,7 @@ func (x *PixbufLoader) ConnectAreaPrepared(cb *func(PixbufLoader)) uint32 {
441441
442442 }
443443 cbRefPtr := purego.NewCallback(fcb)
444- glib.SaveCallback(cbPtr, cbRefPtr)
444+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
445445 return gobject.SignalConnect(x.GoPointer(), "area-prepared", cbRefPtr)
446446 }
447447
@@ -468,7 +468,7 @@ func (x *PixbufLoader) ConnectAreaUpdated(cb *func(PixbufLoader, int, int, int,
468468
469469 }
470470 cbRefPtr := purego.NewCallback(fcb)
471- glib.SaveCallback(cbPtr, cbRefPtr)
471+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
472472 return gobject.SignalConnect(x.GoPointer(), "area-updated", cbRefPtr)
473473 }
474474
@@ -492,7 +492,7 @@ func (x *PixbufLoader) ConnectClosed(cb *func(PixbufLoader)) uint32 {
492492
493493 }
494494 cbRefPtr := purego.NewCallback(fcb)
495- glib.SaveCallback(cbPtr, cbRefPtr)
495+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
496496 return gobject.SignalConnect(x.GoPointer(), "closed", cbRefPtr)
497497 }
498498
@@ -518,7 +518,7 @@ func (x *PixbufLoader) ConnectSizePrepared(cb *func(PixbufLoader, int, int)) uin
518518
519519 }
520520 cbRefPtr := purego.NewCallback(fcb)
521- glib.SaveCallback(cbPtr, cbRefPtr)
521+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
522522 return gobject.SignalConnect(x.GoPointer(), "size-prepared", cbRefPtr)
523523 }
524524
M v4/gdkpixbuf/gdk-pixbuf.go +8 -8
@@ -232,7 +232,7 @@ func NewPixbufFromData(DataVar []byte, ColorspaceVar Colorspace, HasAlphaVar boo
232232 cbFn(arg0, arg1)
233233 }
234234 DestroyFnVarRef = purego.NewCallback(fcb)
235- glib.SaveCallback(DestroyFnVarPtr, DestroyFnVarRef)
235+ glib.SaveCallbackWithClosure(DestroyFnVarPtr, DestroyFnVarRef, DestroyFnVar)
236236 }
237237 }
238238
@@ -1191,7 +1191,7 @@ func (x *Pixbuf) SaveToCallback(SaveFuncVar *PixbufSaveFunc, UserDataVar uintptr
11911191 return cbFn(arg0, arg1, arg2, arg3)
11921192 }
11931193 SaveFuncVarRef = purego.NewCallback(fcb)
1194- glib.SaveCallback(SaveFuncVarPtr, SaveFuncVarRef)
1194+ glib.SaveCallbackWithClosure(SaveFuncVarPtr, SaveFuncVarRef, SaveFuncVar)
11951195 }
11961196 }
11971197
@@ -1224,7 +1224,7 @@ func (x *Pixbuf) SaveToCallbackv(SaveFuncVar *PixbufSaveFunc, UserDataVar uintpt
12241224 return cbFn(arg0, arg1, arg2, arg3)
12251225 }
12261226 SaveFuncVarRef = purego.NewCallback(fcb)
1227- glib.SaveCallback(SaveFuncVarPtr, SaveFuncVarRef)
1227+ glib.SaveCallbackWithClosure(SaveFuncVarPtr, SaveFuncVarRef, SaveFuncVar)
12281228 }
12291229 }
12301230
@@ -1281,7 +1281,7 @@ func (x *Pixbuf) SaveToStreamAsync(StreamVar *gio.OutputStream, TypeVar string,
12811281 cbFn(arg0, arg1, arg2)
12821282 }
12831283 CallbackVarRef = purego.NewCallback(fcb)
1284- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
1284+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
12851285 }
12861286 }
12871287
@@ -1333,7 +1333,7 @@ func (x *Pixbuf) SaveToStreamvAsync(StreamVar *gio.OutputStream, TypeVar string,
13331333 cbFn(arg0, arg1, arg2)
13341334 }
13351335 CallbackVarRef = purego.NewCallback(fcb)
1336- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
1336+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
13371337 }
13381338 }
13391339
@@ -1746,7 +1746,7 @@ func PixbufGetFileInfoAsync(FilenameVar string, CancellableVar *gio.Cancellable,
17461746 cbFn(arg0, arg1, arg2)
17471747 }
17481748 CallbackVarRef = purego.NewCallback(fcb)
1749- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
1749+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
17501750 }
17511751 }
17521752
@@ -1831,7 +1831,7 @@ func PixbufNewFromStreamAsync(StreamVar *gio.InputStream, CancellableVar *gio.Ca
18311831 cbFn(arg0, arg1, arg2)
18321832 }
18331833 CallbackVarRef = purego.NewCallback(fcb)
1834- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
1834+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
18351835 }
18361836 }
18371837
@@ -1861,7 +1861,7 @@ func PixbufNewFromStreamAtScaleAsync(StreamVar *gio.InputStream, WidthVar int, H
18611861 cbFn(arg0, arg1, arg2)
18621862 }
18631863 CallbackVarRef = purego.NewCallback(fcb)
1864- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
1864+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
18651865 }
18661866 }
18671867
M v4/gio/gappinfo.go +7 -7
@@ -1559,7 +1559,7 @@ func AppInfoGetDefaultForTypeAsync(ContentTypeVar string, MustSupportUrisVar boo
15591559 cbFn(arg0, arg1, arg2)
15601560 }
15611561 CallbackVarRef = purego.NewCallback(fcb)
1562- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
1562+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
15631563 }
15641564 }
15651565
@@ -1630,7 +1630,7 @@ func AppInfoGetDefaultForUriSchemeAsync(UriSchemeVar string, CancellableVar *Can
16301630 cbFn(arg0, arg1, arg2)
16311631 }
16321632 CallbackVarRef = purego.NewCallback(fcb)
1633- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
1633+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
16341634 }
16351635 }
16361636
@@ -1736,7 +1736,7 @@ func AppInfoLaunchDefaultForUriAsync(UriVar string, ContextVar *AppLaunchContext
17361736 cbFn(arg0, arg1, arg2)
17371737 }
17381738 CallbackVarRef = purego.NewCallback(fcb)
1739- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
1739+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
17401740 }
17411741 }
17421742
@@ -1855,7 +1855,7 @@ func (x *AppInfoMonitor) ConnectChanged(cb *func(AppInfoMonitor)) uint32 {
18551855
18561856 }
18571857 cbRefPtr := purego.NewCallback(fcb)
1858- glib.SaveCallback(cbPtr, cbRefPtr)
1858+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
18591859 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
18601860 }
18611861
@@ -2037,7 +2037,7 @@ func (x *AppLaunchContext) ConnectLaunchFailed(cb *func(AppLaunchContext, string
20372037
20382038 }
20392039 cbRefPtr := purego.NewCallback(fcb)
2040- glib.SaveCallback(cbPtr, cbRefPtr)
2040+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
20412041 return gobject.SignalConnect(x.GoPointer(), "launch-failed", cbRefPtr)
20422042 }
20432043
@@ -2075,7 +2075,7 @@ func (x *AppLaunchContext) ConnectLaunchStarted(cb *func(AppLaunchContext, uintp
20752075
20762076 }
20772077 cbRefPtr := purego.NewCallback(fcb)
2078- glib.SaveCallback(cbPtr, cbRefPtr)
2078+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
20792079 return gobject.SignalConnect(x.GoPointer(), "launch-started", cbRefPtr)
20802080 }
20812081
@@ -2115,7 +2115,7 @@ func (x *AppLaunchContext) ConnectLaunched(cb *func(AppLaunchContext, uintptr, u
21152115
21162116 }
21172117 cbRefPtr := purego.NewCallback(fcb)
2118- glib.SaveCallback(cbPtr, cbRefPtr)
2118+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
21192119 return gobject.SignalConnect(x.GoPointer(), "launched", cbRefPtr)
21202120 }
21212121
M v4/gio/gapplication.go +7 -7
@@ -1586,7 +1586,7 @@ func (x *Application) ConnectActivate(cb *func(Application)) uint32 {
15861586
15871587 }
15881588 cbRefPtr := purego.NewCallback(fcb)
1589- glib.SaveCallback(cbPtr, cbRefPtr)
1589+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
15901590 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
15911591 }
15921592
@@ -1608,7 +1608,7 @@ func (x *Application) ConnectCommandLine(cb *func(Application, uintptr) int) uin
16081608
16091609 }
16101610 cbRefPtr := purego.NewCallback(fcb)
1611- glib.SaveCallback(cbPtr, cbRefPtr)
1611+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
16121612 return gobject.SignalConnect(x.GoPointer(), "command-line", cbRefPtr)
16131613 }
16141614
@@ -1668,7 +1668,7 @@ func (x *Application) ConnectHandleLocalOptions(cb *func(Application, uintptr) i
16681668
16691669 }
16701670 cbRefPtr := purego.NewCallback(fcb)
1671- glib.SaveCallback(cbPtr, cbRefPtr)
1671+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
16721672 return gobject.SignalConnect(x.GoPointer(), "handle-local-options", cbRefPtr)
16731673 }
16741674
@@ -1692,7 +1692,7 @@ func (x *Application) ConnectNameLost(cb *func(Application) bool) uint32 {
16921692
16931693 }
16941694 cbRefPtr := purego.NewCallback(fcb)
1695- glib.SaveCallback(cbPtr, cbRefPtr)
1695+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
16961696 return gobject.SignalConnect(x.GoPointer(), "name-lost", cbRefPtr)
16971697 }
16981698
@@ -1713,7 +1713,7 @@ func (x *Application) ConnectOpen(cb *func(Application, uintptr, int, string)) u
17131713
17141714 }
17151715 cbRefPtr := purego.NewCallback(fcb)
1716- glib.SaveCallback(cbPtr, cbRefPtr)
1716+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
17171717 return gobject.SignalConnect(x.GoPointer(), "open", cbRefPtr)
17181718 }
17191719
@@ -1734,7 +1734,7 @@ func (x *Application) ConnectShutdown(cb *func(Application)) uint32 {
17341734
17351735 }
17361736 cbRefPtr := purego.NewCallback(fcb)
1737- glib.SaveCallback(cbPtr, cbRefPtr)
1737+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
17381738 return gobject.SignalConnect(x.GoPointer(), "shutdown", cbRefPtr)
17391739 }
17401740
@@ -1755,7 +1755,7 @@ func (x *Application) ConnectStartup(cb *func(Application)) uint32 {
17551755
17561756 }
17571757 cbRefPtr := purego.NewCallback(fcb)
1758- glib.SaveCallback(cbPtr, cbRefPtr)
1758+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
17591759 return gobject.SignalConnect(x.GoPointer(), "startup", cbRefPtr)
17601760 }
17611761
M v4/gio/gasyncinitable.go +1 -1
@@ -318,7 +318,7 @@ func AsyncInitableNewvAsync(ObjectTypeVar types.GType, NParametersVar uint, Para
318318 cbFn(arg0, arg1, arg2)
319319 }
320320 CallbackVarRef = purego.NewCallback(fcb)
321- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
321+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
322322 }
323323 }
324324
M v4/gio/gbufferedinputstream.go +1 -1
@@ -353,7 +353,7 @@ func (x *BufferedInputStream) FillAsync(CountVar int, IoPriorityVar int, Cancell
353353 cbFn(arg0, arg1, arg2)
354354 }
355355 CallbackVarRef = purego.NewCallback(fcb)
356- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
356+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
357357 }
358358 }
359359
M v4/gio/gcancellable.go +3 -3
@@ -301,7 +301,7 @@ func (x *Cancellable) Connect(CallbackVar *gobject.Callback, DataVar uintptr, Da
301301 cbFn()
302302 }
303303 CallbackVarRef = purego.NewCallback(fcb)
304- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
304+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
305305 }
306306 }
307307
@@ -316,7 +316,7 @@ func (x *Cancellable) Connect(CallbackVar *gobject.Callback, DataVar uintptr, Da
316316 cbFn(arg0)
317317 }
318318 DataDestroyFuncVarRef = purego.NewCallback(fcb)
319- glib.SaveCallback(DataDestroyFuncVarPtr, DataDestroyFuncVarRef)
319+ glib.SaveCallbackWithClosure(DataDestroyFuncVarPtr, DataDestroyFuncVarRef, DataDestroyFuncVar)
320320 }
321321 }
322322
@@ -596,7 +596,7 @@ func (x *Cancellable) ConnectCancelled(cb *func(Cancellable)) uint32 {
596596
597597 }
598598 cbRefPtr := purego.NewCallback(fcb)
599- glib.SaveCallback(cbPtr, cbRefPtr)
599+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
600600 return gobject.SignalConnect(x.GoPointer(), "cancelled", cbRefPtr)
601601 }
602602
M v4/gio/gdatainputstream.go +3 -3
@@ -327,7 +327,7 @@ func (x *DataInputStream) ReadLineAsync(IoPriorityVar int, CancellableVar *Cance
327327 cbFn(arg0, arg1, arg2)
328328 }
329329 CallbackVarRef = purego.NewCallback(fcb)
330- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
330+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
331331 }
332332 }
333333
@@ -505,7 +505,7 @@ func (x *DataInputStream) ReadUntilAsync(StopCharsVar string, IoPriorityVar int,
505505 cbFn(arg0, arg1, arg2)
506506 }
507507 CallbackVarRef = purego.NewCallback(fcb)
508- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
508+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
509509 }
510510 }
511511
@@ -584,7 +584,7 @@ func (x *DataInputStream) ReadUptoAsync(StopCharsVar string, StopCharsLenVar int
584584 cbFn(arg0, arg1, arg2)
585585 }
586586 CallbackVarRef = purego.NewCallback(fcb)
587- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
587+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
588588 }
589589 }
590590
M v4/gio/gdbusaddress.go +1 -1
@@ -71,7 +71,7 @@ func DbusAddressGetStream(AddressVar string, CancellableVar *Cancellable, Callba
7171 cbFn(arg0, arg1, arg2)
7272 }
7373 CallbackVarRef = purego.NewCallback(fcb)
74- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
74+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
7575 }
7676 }
7777
M v4/gio/gdbusauthobserver.go +2 -2
@@ -159,7 +159,7 @@ func (x *DBusAuthObserver) ConnectAllowMechanism(cb *func(DBusAuthObserver, stri
159159
160160 }
161161 cbRefPtr := purego.NewCallback(fcb)
162- glib.SaveCallback(cbPtr, cbRefPtr)
162+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
163163 return gobject.SignalConnect(x.GoPointer(), "allow-mechanism", cbRefPtr)
164164 }
165165
@@ -180,7 +180,7 @@ func (x *DBusAuthObserver) ConnectAuthorizeAuthenticatedPeer(cb *func(DBusAuthOb
180180
181181 }
182182 cbRefPtr := purego.NewCallback(fcb)
183- glib.SaveCallback(cbPtr, cbRefPtr)
183+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
184184 return gobject.SignalConnect(x.GoPointer(), "authorize-authenticated-peer", cbRefPtr)
185185 }
186186
M v4/gio/gdbusconnection.go +15 -15
@@ -237,7 +237,7 @@ func BusGet(BusTypeVar BusType, CancellableVar *Cancellable, CallbackVar *AsyncR
237237 cbFn(arg0, arg1, arg2)
238238 }
239239 CallbackVarRef = purego.NewCallback(fcb)
240- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
240+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
241241 }
242242 }
243243
@@ -543,7 +543,7 @@ func (x *DBusConnection) AddFilter(FilterFunctionVar *DBusMessageFilterFunction,
543543 return cbFn(arg0, arg1, arg2, arg3)
544544 }
545545 FilterFunctionVarRef = purego.NewCallback(fcb)
546- glib.SaveCallback(FilterFunctionVarPtr, FilterFunctionVarRef)
546+ glib.SaveCallbackWithClosure(FilterFunctionVarPtr, FilterFunctionVarRef, FilterFunctionVar)
547547 }
548548 }
549549
@@ -558,7 +558,7 @@ func (x *DBusConnection) AddFilter(FilterFunctionVar *DBusMessageFilterFunction,
558558 cbFn(arg0)
559559 }
560560 UserDataFreeFuncVarRef = purego.NewCallback(fcb)
561- glib.SaveCallback(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef)
561+ glib.SaveCallbackWithClosure(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef, UserDataFreeFuncVar)
562562 }
563563 }
564564
@@ -629,7 +629,7 @@ func (x *DBusConnection) Call(BusNameVar *string, ObjectPathVar string, Interfac
629629 cbFn(arg0, arg1, arg2)
630630 }
631631 CallbackVarRef = purego.NewCallback(fcb)
632- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
632+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
633633 }
634634 }
635635
@@ -742,7 +742,7 @@ func (x *DBusConnection) CallWithUnixFdList(BusNameVar *string, ObjectPathVar st
742742 cbFn(arg0, arg1, arg2)
743743 }
744744 CallbackVarRef = purego.NewCallback(fcb)
745- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
745+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
746746 }
747747 }
748748
@@ -842,7 +842,7 @@ func (x *DBusConnection) Close(CancellableVar *Cancellable, CallbackVar *AsyncRe
842842 cbFn(arg0, arg1, arg2)
843843 }
844844 CallbackVarRef = purego.NewCallback(fcb)
845- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
845+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
846846 }
847847 }
848848
@@ -1002,7 +1002,7 @@ func (x *DBusConnection) Flush(CancellableVar *Cancellable, CallbackVar *AsyncRe
10021002 cbFn(arg0, arg1, arg2)
10031003 }
10041004 CallbackVarRef = purego.NewCallback(fcb)
1005- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
1005+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
10061006 }
10071007 }
10081008
@@ -1223,7 +1223,7 @@ func (x *DBusConnection) RegisterObject(ObjectPathVar string, InterfaceInfoVar *
12231223 cbFn(arg0)
12241224 }
12251225 UserDataFreeFuncVarRef = purego.NewCallback(fcb)
1226- glib.SaveCallback(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef)
1226+ glib.SaveCallbackWithClosure(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef, UserDataFreeFuncVar)
12271227 }
12281228 }
12291229
@@ -1333,7 +1333,7 @@ func (x *DBusConnection) RegisterSubtree(ObjectPathVar string, VtableVar *DBusSu
13331333 cbFn(arg0)
13341334 }
13351335 UserDataFreeFuncVarRef = purego.NewCallback(fcb)
1336- glib.SaveCallback(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef)
1336+ glib.SaveCallbackWithClosure(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef, UserDataFreeFuncVar)
13371337 }
13381338 }
13391339
@@ -1443,7 +1443,7 @@ func (x *DBusConnection) SendMessageWithReply(MessageVar *DBusMessage, FlagsVar
14431443 cbFn(arg0, arg1, arg2)
14441444 }
14451445 CallbackVarRef = purego.NewCallback(fcb)
1446- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
1446+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
14471447 }
14481448 }
14491449
@@ -1615,7 +1615,7 @@ func (x *DBusConnection) SignalSubscribe(SenderVar *string, InterfaceNameVar *st
16151615 cbFn(arg0, arg1, arg2, arg3, arg4, arg5, arg6)
16161616 }
16171617 CallbackVarRef = purego.NewCallback(fcb)
1618- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
1618+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
16191619 }
16201620 }
16211621
@@ -1630,7 +1630,7 @@ func (x *DBusConnection) SignalSubscribe(SenderVar *string, InterfaceNameVar *st
16301630 cbFn(arg0)
16311631 }
16321632 UserDataFreeFuncVarRef = purego.NewCallback(fcb)
1633- glib.SaveCallback(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef)
1633+ glib.SaveCallbackWithClosure(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef, UserDataFreeFuncVar)
16341634 }
16351635 }
16361636
@@ -1894,7 +1894,7 @@ func (x *DBusConnection) ConnectClosed(cb *func(DBusConnection, bool, uintptr))
18941894
18951895 }
18961896 cbRefPtr := purego.NewCallback(fcb)
1897- glib.SaveCallback(cbPtr, cbRefPtr)
1897+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
18981898 return gobject.SignalConnect(x.GoPointer(), "closed", cbRefPtr)
18991899 }
19001900
@@ -2059,7 +2059,7 @@ func DBusConnectionNew(StreamVar *IOStream, GuidVar *string, FlagsVar DBusConnec
20592059 cbFn(arg0, arg1, arg2)
20602060 }
20612061 CallbackVarRef = purego.NewCallback(fcb)
2062- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
2062+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
20632063 }
20642064 }
20652065
@@ -2108,7 +2108,7 @@ func DBusConnectionNewForAddress(AddressVar string, FlagsVar DBusConnectionFlags
21082108 cbFn(arg0, arg1, arg2)
21092109 }
21102110 CallbackVarRef = purego.NewCallback(fcb)
2111- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
2111+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
21122112 }
21132113 }
21142114
M v4/gio/gdbusinterfaceskeleton.go +1 -1
@@ -407,7 +407,7 @@ func (x *DBusInterfaceSkeleton) ConnectGAuthorizeMethod(cb *func(DBusInterfaceSk
407407
408408 }
409409 cbRefPtr := purego.NewCallback(fcb)
410- glib.SaveCallback(cbPtr, cbRefPtr)
410+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
411411 return gobject.SignalConnect(x.GoPointer(), "g-authorize-method", cbRefPtr)
412412 }
413413
M v4/gio/gdbusnameowning.go +7 -7
@@ -84,7 +84,7 @@ func BusOwnName(BusTypeVar BusType, NameVar string, FlagsVar BusNameOwnerFlags,
8484 cbFn(arg0, arg1, arg2)
8585 }
8686 BusAcquiredHandlerVarRef = purego.NewCallback(fcb)
87- glib.SaveCallback(BusAcquiredHandlerVarPtr, BusAcquiredHandlerVarRef)
87+ glib.SaveCallbackWithClosure(BusAcquiredHandlerVarPtr, BusAcquiredHandlerVarRef, BusAcquiredHandlerVar)
8888 }
8989 }
9090
@@ -99,7 +99,7 @@ func BusOwnName(BusTypeVar BusType, NameVar string, FlagsVar BusNameOwnerFlags,
9999 cbFn(arg0, arg1, arg2)
100100 }
101101 NameAcquiredHandlerVarRef = purego.NewCallback(fcb)
102- glib.SaveCallback(NameAcquiredHandlerVarPtr, NameAcquiredHandlerVarRef)
102+ glib.SaveCallbackWithClosure(NameAcquiredHandlerVarPtr, NameAcquiredHandlerVarRef, NameAcquiredHandlerVar)
103103 }
104104 }
105105
@@ -114,7 +114,7 @@ func BusOwnName(BusTypeVar BusType, NameVar string, FlagsVar BusNameOwnerFlags,
114114 cbFn(arg0, arg1, arg2)
115115 }
116116 NameLostHandlerVarRef = purego.NewCallback(fcb)
117- glib.SaveCallback(NameLostHandlerVarPtr, NameLostHandlerVarRef)
117+ glib.SaveCallbackWithClosure(NameLostHandlerVarPtr, NameLostHandlerVarRef, NameLostHandlerVar)
118118 }
119119 }
120120
@@ -129,7 +129,7 @@ func BusOwnName(BusTypeVar BusType, NameVar string, FlagsVar BusNameOwnerFlags,
129129 cbFn(arg0)
130130 }
131131 UserDataFreeFuncVarRef = purego.NewCallback(fcb)
132- glib.SaveCallback(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef)
132+ glib.SaveCallbackWithClosure(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef, UserDataFreeFuncVar)
133133 }
134134 }
135135
@@ -155,7 +155,7 @@ func BusOwnNameOnConnection(ConnectionVar *DBusConnection, NameVar string, Flags
155155 cbFn(arg0, arg1, arg2)
156156 }
157157 NameAcquiredHandlerVarRef = purego.NewCallback(fcb)
158- glib.SaveCallback(NameAcquiredHandlerVarPtr, NameAcquiredHandlerVarRef)
158+ glib.SaveCallbackWithClosure(NameAcquiredHandlerVarPtr, NameAcquiredHandlerVarRef, NameAcquiredHandlerVar)
159159 }
160160 }
161161
@@ -170,7 +170,7 @@ func BusOwnNameOnConnection(ConnectionVar *DBusConnection, NameVar string, Flags
170170 cbFn(arg0, arg1, arg2)
171171 }
172172 NameLostHandlerVarRef = purego.NewCallback(fcb)
173- glib.SaveCallback(NameLostHandlerVarPtr, NameLostHandlerVarRef)
173+ glib.SaveCallbackWithClosure(NameLostHandlerVarPtr, NameLostHandlerVarRef, NameLostHandlerVar)
174174 }
175175 }
176176
@@ -185,7 +185,7 @@ func BusOwnNameOnConnection(ConnectionVar *DBusConnection, NameVar string, Flags
185185 cbFn(arg0)
186186 }
187187 UserDataFreeFuncVarRef = purego.NewCallback(fcb)
188- glib.SaveCallback(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef)
188+ glib.SaveCallbackWithClosure(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef, UserDataFreeFuncVar)
189189 }
190190 }
191191
M v4/gio/gdbusnamewatching.go +6 -6
@@ -80,7 +80,7 @@ func BusWatchName(BusTypeVar BusType, NameVar string, FlagsVar BusNameWatcherFla
8080 cbFn(arg0, arg1, arg2, arg3)
8181 }
8282 NameAppearedHandlerVarRef = purego.NewCallback(fcb)
83- glib.SaveCallback(NameAppearedHandlerVarPtr, NameAppearedHandlerVarRef)
83+ glib.SaveCallbackWithClosure(NameAppearedHandlerVarPtr, NameAppearedHandlerVarRef, NameAppearedHandlerVar)
8484 }
8585 }
8686
@@ -95,7 +95,7 @@ func BusWatchName(BusTypeVar BusType, NameVar string, FlagsVar BusNameWatcherFla
9595 cbFn(arg0, arg1, arg2)
9696 }
9797 NameVanishedHandlerVarRef = purego.NewCallback(fcb)
98- glib.SaveCallback(NameVanishedHandlerVarPtr, NameVanishedHandlerVarRef)
98+ glib.SaveCallbackWithClosure(NameVanishedHandlerVarPtr, NameVanishedHandlerVarRef, NameVanishedHandlerVar)
9999 }
100100 }
101101
@@ -110,7 +110,7 @@ func BusWatchName(BusTypeVar BusType, NameVar string, FlagsVar BusNameWatcherFla
110110 cbFn(arg0)
111111 }
112112 UserDataFreeFuncVarRef = purego.NewCallback(fcb)
113- glib.SaveCallback(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef)
113+ glib.SaveCallbackWithClosure(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef, UserDataFreeFuncVar)
114114 }
115115 }
116116
@@ -136,7 +136,7 @@ func BusWatchNameOnConnection(ConnectionVar *DBusConnection, NameVar string, Fla
136136 cbFn(arg0, arg1, arg2, arg3)
137137 }
138138 NameAppearedHandlerVarRef = purego.NewCallback(fcb)
139- glib.SaveCallback(NameAppearedHandlerVarPtr, NameAppearedHandlerVarRef)
139+ glib.SaveCallbackWithClosure(NameAppearedHandlerVarPtr, NameAppearedHandlerVarRef, NameAppearedHandlerVar)
140140 }
141141 }
142142
@@ -151,7 +151,7 @@ func BusWatchNameOnConnection(ConnectionVar *DBusConnection, NameVar string, Fla
151151 cbFn(arg0, arg1, arg2)
152152 }
153153 NameVanishedHandlerVarRef = purego.NewCallback(fcb)
154- glib.SaveCallback(NameVanishedHandlerVarPtr, NameVanishedHandlerVarRef)
154+ glib.SaveCallbackWithClosure(NameVanishedHandlerVarPtr, NameVanishedHandlerVarRef, NameVanishedHandlerVar)
155155 }
156156 }
157157
@@ -166,7 +166,7 @@ func BusWatchNameOnConnection(ConnectionVar *DBusConnection, NameVar string, Fla
166166 cbFn(arg0)
167167 }
168168 UserDataFreeFuncVarRef = purego.NewCallback(fcb)
169- glib.SaveCallback(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef)
169+ glib.SaveCallbackWithClosure(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef, UserDataFreeFuncVar)
170170 }
171171 }
172172
M v4/gio/gdbusobjectmanagerclient.go +12 -12
@@ -247,7 +247,7 @@ func NewDBusObjectManagerClientForBusSync(BusTypeVar BusType, FlagsVar DBusObjec
247247 return cbFn(arg0, arg1, arg2, arg3)
248248 }
249249 GetProxyTypeFuncVarRef = purego.NewCallback(fcb)
250- glib.SaveCallback(GetProxyTypeFuncVarPtr, GetProxyTypeFuncVarRef)
250+ glib.SaveCallbackWithClosure(GetProxyTypeFuncVarPtr, GetProxyTypeFuncVarRef, GetProxyTypeFuncVar)
251251 }
252252 }
253253
@@ -262,7 +262,7 @@ func NewDBusObjectManagerClientForBusSync(BusTypeVar BusType, FlagsVar DBusObjec
262262 cbFn(arg0)
263263 }
264264 GetProxyTypeDestroyNotifyVarRef = purego.NewCallback(fcb)
265- glib.SaveCallback(GetProxyTypeDestroyNotifyVarPtr, GetProxyTypeDestroyNotifyVarRef)
265+ glib.SaveCallbackWithClosure(GetProxyTypeDestroyNotifyVarPtr, GetProxyTypeDestroyNotifyVarRef, GetProxyTypeDestroyNotifyVar)
266266 }
267267 }
268268
@@ -302,7 +302,7 @@ func NewDBusObjectManagerClientSync(ConnectionVar *DBusConnection, FlagsVar DBus
302302 return cbFn(arg0, arg1, arg2, arg3)
303303 }
304304 GetProxyTypeFuncVarRef = purego.NewCallback(fcb)
305- glib.SaveCallback(GetProxyTypeFuncVarPtr, GetProxyTypeFuncVarRef)
305+ glib.SaveCallbackWithClosure(GetProxyTypeFuncVarPtr, GetProxyTypeFuncVarRef, GetProxyTypeFuncVar)
306306 }
307307 }
308308
@@ -317,7 +317,7 @@ func NewDBusObjectManagerClientSync(ConnectionVar *DBusConnection, FlagsVar DBus
317317 cbFn(arg0)
318318 }
319319 GetProxyTypeDestroyNotifyVarRef = purego.NewCallback(fcb)
320- glib.SaveCallback(GetProxyTypeDestroyNotifyVarPtr, GetProxyTypeDestroyNotifyVarRef)
320+ glib.SaveCallbackWithClosure(GetProxyTypeDestroyNotifyVarPtr, GetProxyTypeDestroyNotifyVarRef, GetProxyTypeDestroyNotifyVar)
321321 }
322322 }
323323
@@ -524,7 +524,7 @@ func (x *DBusObjectManagerClient) ConnectInterfaceProxyPropertiesChanged(cb *fun
524524
525525 }
526526 cbRefPtr := purego.NewCallback(fcb)
527- glib.SaveCallback(cbPtr, cbRefPtr)
527+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
528528 return gobject.SignalConnect(x.GoPointer(), "interface-proxy-properties-changed", cbRefPtr)
529529 }
530530
@@ -551,7 +551,7 @@ func (x *DBusObjectManagerClient) ConnectInterfaceProxySignal(cb *func(DBusObjec
551551
552552 }
553553 cbRefPtr := purego.NewCallback(fcb)
554- glib.SaveCallback(cbPtr, cbRefPtr)
554+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
555555 return gobject.SignalConnect(x.GoPointer(), "interface-proxy-signal", cbRefPtr)
556556 }
557557
@@ -749,7 +749,7 @@ func DBusObjectManagerClientNew(ConnectionVar *DBusConnection, FlagsVar DBusObje
749749 return cbFn(arg0, arg1, arg2, arg3)
750750 }
751751 GetProxyTypeFuncVarRef = purego.NewCallback(fcb)
752- glib.SaveCallback(GetProxyTypeFuncVarPtr, GetProxyTypeFuncVarRef)
752+ glib.SaveCallbackWithClosure(GetProxyTypeFuncVarPtr, GetProxyTypeFuncVarRef, GetProxyTypeFuncVar)
753753 }
754754 }
755755
@@ -764,7 +764,7 @@ func DBusObjectManagerClientNew(ConnectionVar *DBusConnection, FlagsVar DBusObje
764764 cbFn(arg0)
765765 }
766766 GetProxyTypeDestroyNotifyVarRef = purego.NewCallback(fcb)
767- glib.SaveCallback(GetProxyTypeDestroyNotifyVarPtr, GetProxyTypeDestroyNotifyVarRef)
767+ glib.SaveCallbackWithClosure(GetProxyTypeDestroyNotifyVarPtr, GetProxyTypeDestroyNotifyVarRef, GetProxyTypeDestroyNotifyVar)
768768 }
769769 }
770770
@@ -779,7 +779,7 @@ func DBusObjectManagerClientNew(ConnectionVar *DBusConnection, FlagsVar DBusObje
779779 cbFn(arg0, arg1, arg2)
780780 }
781781 CallbackVarRef = purego.NewCallback(fcb)
782- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
782+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
783783 }
784784 }
785785
@@ -811,7 +811,7 @@ func DBusObjectManagerClientNewForBus(BusTypeVar BusType, FlagsVar DBusObjectMan
811811 return cbFn(arg0, arg1, arg2, arg3)
812812 }
813813 GetProxyTypeFuncVarRef = purego.NewCallback(fcb)
814- glib.SaveCallback(GetProxyTypeFuncVarPtr, GetProxyTypeFuncVarRef)
814+ glib.SaveCallbackWithClosure(GetProxyTypeFuncVarPtr, GetProxyTypeFuncVarRef, GetProxyTypeFuncVar)
815815 }
816816 }
817817
@@ -826,7 +826,7 @@ func DBusObjectManagerClientNewForBus(BusTypeVar BusType, FlagsVar DBusObjectMan
826826 cbFn(arg0)
827827 }
828828 GetProxyTypeDestroyNotifyVarRef = purego.NewCallback(fcb)
829- glib.SaveCallback(GetProxyTypeDestroyNotifyVarPtr, GetProxyTypeDestroyNotifyVarRef)
829+ glib.SaveCallbackWithClosure(GetProxyTypeDestroyNotifyVarPtr, GetProxyTypeDestroyNotifyVarRef, GetProxyTypeDestroyNotifyVar)
830830 }
831831 }
832832
@@ -841,7 +841,7 @@ func DBusObjectManagerClientNewForBus(BusTypeVar BusType, FlagsVar DBusObjectMan
841841 cbFn(arg0, arg1, arg2)
842842 }
843843 CallbackVarRef = purego.NewCallback(fcb)
844- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
844+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
845845 }
846846 }
847847
M v4/gio/gdbusobjectskeleton.go +1 -1
@@ -204,7 +204,7 @@ func (x *DBusObjectSkeleton) ConnectAuthorizeMethod(cb *func(DBusObjectSkeleton,
204204
205205 }
206206 cbRefPtr := purego.NewCallback(fcb)
207- glib.SaveCallback(cbPtr, cbRefPtr)
207+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
208208 return gobject.SignalConnect(x.GoPointer(), "authorize-method", cbRefPtr)
209209 }
210210
M v4/gio/gdbusproxy.go +7 -7
@@ -322,7 +322,7 @@ func (x *DBusProxy) Call(MethodNameVar string, ParametersVar *glib.Variant, Flag
322322 cbFn(arg0, arg1, arg2)
323323 }
324324 CallbackVarRef = purego.NewCallback(fcb)
325- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
325+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
326326 }
327327 }
328328
@@ -413,7 +413,7 @@ func (x *DBusProxy) CallWithUnixFdList(MethodNameVar string, ParametersVar *glib
413413 cbFn(arg0, arg1, arg2)
414414 }
415415 CallbackVarRef = purego.NewCallback(fcb)
416- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
416+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
417417 }
418418 }
419419
@@ -840,7 +840,7 @@ func (x *DBusProxy) ConnectGPropertiesChanged(cb *func(DBusProxy, uintptr, []str
840840
841841 }
842842 cbRefPtr := purego.NewCallback(fcb)
843- glib.SaveCallback(cbPtr, cbRefPtr)
843+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
844844 return gobject.SignalConnect(x.GoPointer(), "g-properties-changed", cbRefPtr)
845845 }
846846
@@ -864,7 +864,7 @@ func (x *DBusProxy) ConnectGSignal(cb *func(DBusProxy, string, string, uintptr))
864864
865865 }
866866 cbRefPtr := purego.NewCallback(fcb)
867- glib.SaveCallback(cbPtr, cbRefPtr)
867+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
868868 return gobject.SignalConnect(x.GoPointer(), "g-signal", cbRefPtr)
869869 }
870870
@@ -886,7 +886,7 @@ func (x *DBusProxy) ConnectGSignalWithDetail(detail string, cb *func(DBusProxy,
886886
887887 }
888888 cbRefPtr := purego.NewCallback(fcb)
889- glib.SaveCallback(cbPtr, cbRefPtr)
889+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
890890 return gobject.SignalConnect(x.GoPointer(), signalName, cbRefPtr)
891891 }
892892
@@ -1109,7 +1109,7 @@ func DBusProxyNew(ConnectionVar *DBusConnection, FlagsVar DBusProxyFlags, InfoVa
11091109 cbFn(arg0, arg1, arg2)
11101110 }
11111111 CallbackVarRef = purego.NewCallback(fcb)
1112- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
1112+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
11131113 }
11141114 }
11151115
@@ -1139,7 +1139,7 @@ func DBusProxyNewForBus(BusTypeVar BusType, FlagsVar DBusProxyFlags, InfoVar *DB
11391139 cbFn(arg0, arg1, arg2)
11401140 }
11411141 CallbackVarRef = purego.NewCallback(fcb)
1142- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
1142+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
11431143 }
11441144 }
11451145
M v4/gio/gdbusserver.go +1 -1
@@ -250,7 +250,7 @@ func (x *DBusServer) ConnectNewConnection(cb *func(DBusServer, uintptr) bool) ui
250250
251251 }
252252 cbRefPtr := purego.NewCallback(fcb)
253- glib.SaveCallback(cbPtr, cbRefPtr)
253+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
254254 return gobject.SignalConnect(x.GoPointer(), "new-connection", cbRefPtr)
255255 }
256256
M v4/gio/gdebugcontrollerdbus.go +1 -1
@@ -278,7 +278,7 @@ func (x *DebugControllerDBus) ConnectAuthorize(cb *func(DebugControllerDBus, uin
278278
279279 }
280280 cbRefPtr := purego.NewCallback(fcb)
281- glib.SaveCallback(cbPtr, cbRefPtr)
281+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
282282 return gobject.SignalConnect(x.GoPointer(), "authorize", cbRefPtr)
283283 }
284284
M v4/gio/gfile.go +2 -2
@@ -6299,7 +6299,7 @@ func FileNewTmpAsync(TmplVar *string, IoPriorityVar int, CancellableVar *Cancell
62996299 cbFn(arg0, arg1, arg2)
63006300 }
63016301 CallbackVarRef = purego.NewCallback(fcb)
6302- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
6302+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
63036303 }
63046304 }
63056305
@@ -6332,7 +6332,7 @@ func FileNewTmpDirAsync(TmplVar *string, IoPriorityVar int, CancellableVar *Canc
63326332 cbFn(arg0, arg1, arg2)
63336333 }
63346334 CallbackVarRef = purego.NewCallback(fcb)
6335- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
6335+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
63366336 }
63376337 }
63386338
M v4/gio/gfileenumerator.go +2 -2
@@ -448,7 +448,7 @@ func (x *FileEnumerator) CloseAsync(IoPriorityVar int, CancellableVar *Cancellab
448448 cbFn(arg0, arg1, arg2)
449449 }
450450 CallbackVarRef = purego.NewCallback(fcb)
451- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
451+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
452452 }
453453 }
454454
@@ -719,7 +719,7 @@ func (x *FileEnumerator) NextFilesAsync(NumFilesVar int, IoPriorityVar int, Canc
719719 cbFn(arg0, arg1, arg2)
720720 }
721721 CallbackVarRef = purego.NewCallback(fcb)
722- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
722+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
723723 }
724724 }
725725
M v4/gio/gfileinputstream.go +1 -1
@@ -400,7 +400,7 @@ func (x *FileInputStream) QueryInfoAsync(AttributesVar string, IoPriorityVar int
400400 cbFn(arg0, arg1, arg2)
401401 }
402402 CallbackVarRef = purego.NewCallback(fcb)
403- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
403+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
404404 }
405405 }
406406
M v4/gio/gfileiostream.go +1 -1
@@ -504,7 +504,7 @@ func (x *FileIOStream) QueryInfoAsync(AttributesVar string, IoPriorityVar int, C
504504 cbFn(arg0, arg1, arg2)
505505 }
506506 CallbackVarRef = purego.NewCallback(fcb)
507- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
507+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
508508 }
509509 }
510510
M v4/gio/gfilemonitor.go +1 -1
@@ -358,7 +358,7 @@ func (x *FileMonitor) ConnectChanged(cb *func(FileMonitor, uintptr, uintptr, Fil
358358
359359 }
360360 cbRefPtr := purego.NewCallback(fcb)
361- glib.SaveCallback(cbPtr, cbRefPtr)
361+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
362362 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
363363 }
364364
M v4/gio/gfilenamecompleter.go +1 -1
@@ -220,7 +220,7 @@ func (x *FilenameCompleter) ConnectGotCompletionData(cb *func(FilenameCompleter)
220220
221221 }
222222 cbRefPtr := purego.NewCallback(fcb)
223- glib.SaveCallback(cbPtr, cbRefPtr)
223+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
224224 return gobject.SignalConnect(x.GoPointer(), "got-completion-data", cbRefPtr)
225225 }
226226
M v4/gio/gfileoutputstream.go +1 -1
@@ -499,7 +499,7 @@ func (x *FileOutputStream) QueryInfoAsync(AttributesVar string, IoPriorityVar in
499499 cbFn(arg0, arg1, arg2)
500500 }
501501 CallbackVarRef = purego.NewCallback(fcb)
502- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
502+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
503503 }
504504 }
505505
M v4/gio/ginputstream.go +5 -5
@@ -480,7 +480,7 @@ func (x *InputStream) CloseAsync(IoPriorityVar int, CancellableVar *Cancellable,
480480 cbFn(arg0, arg1, arg2)
481481 }
482482 CallbackVarRef = purego.NewCallback(fcb)
483- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
483+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
484484 }
485485 }
486486
@@ -616,7 +616,7 @@ func (x *InputStream) ReadAllAsync(BufferVar *[]byte, CountVar uint, IoPriorityV
616616 cbFn(arg0, arg1, arg2)
617617 }
618618 CallbackVarRef = purego.NewCallback(fcb)
619- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
619+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
620620 }
621621 }
622622
@@ -685,7 +685,7 @@ func (x *InputStream) ReadAsync(BufferVar *[]byte, CountVar uint, IoPriorityVar
685685 cbFn(arg0, arg1, arg2)
686686 }
687687 CallbackVarRef = purego.NewCallback(fcb)
688- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
688+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
689689 }
690690 }
691691
@@ -765,7 +765,7 @@ func (x *InputStream) ReadBytesAsync(CountVar uint, IoPriorityVar int, Cancellab
765765 cbFn(arg0, arg1, arg2)
766766 }
767767 CallbackVarRef = purego.NewCallback(fcb)
768- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
768+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
769769 }
770770 }
771771
@@ -886,7 +886,7 @@ func (x *InputStream) SkipAsync(CountVar uint, IoPriorityVar int, CancellableVar
886886 cbFn(arg0, arg1, arg2)
887887 }
888888 CallbackVarRef = purego.NewCallback(fcb)
889- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
889+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
890890 }
891891 }
892892
M v4/gio/gioscheduler.go +2 -2
@@ -44,7 +44,7 @@ func IoSchedulerPushJob(JobFuncVar *IOSchedulerJobFunc, UserDataVar uintptr, Not
4444 return cbFn(arg0, arg1, arg2)
4545 }
4646 JobFuncVarRef = purego.NewCallback(fcb)
47- glib.SaveCallback(JobFuncVarPtr, JobFuncVarRef)
47+ glib.SaveCallbackWithClosure(JobFuncVarPtr, JobFuncVarRef, JobFuncVar)
4848 }
4949 }
5050
@@ -59,7 +59,7 @@ func IoSchedulerPushJob(JobFuncVar *IOSchedulerJobFunc, UserDataVar uintptr, Not
5959 cbFn(arg0)
6060 }
6161 NotifyVarRef = purego.NewCallback(fcb)
62- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)
62+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
6363 }
6464 }
6565
M v4/gio/giostream.go +2 -2
@@ -570,7 +570,7 @@ func (x *IOStream) CloseAsync(IoPriorityVar int, CancellableVar *Cancellable, Ca
570570 cbFn(arg0, arg1, arg2)
571571 }
572572 CallbackVarRef = purego.NewCallback(fcb)
573- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
573+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
574574 }
575575 }
576576
@@ -688,7 +688,7 @@ func (x *IOStream) SpliceAsync(Stream2Var *IOStream, FlagsVar IOStreamSpliceFlag
688688 cbFn(arg0, arg1, arg2)
689689 }
690690 CallbackVarRef = purego.NewCallback(fcb)
691- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
691+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
692692 }
693693 }
694694
M v4/gio/giotypes.go +4 -4
@@ -426,7 +426,7 @@ func (x *IOSchedulerJob) SendToMainloop(FuncVar *glib.SourceFunc, UserDataVar ui
426426 return cbFn(arg0)
427427 }
428428 FuncVarRef = purego.NewCallback(fcb)
429- glib.SaveCallback(FuncVarPtr, FuncVarRef)
429+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
430430 }
431431 }
432432
@@ -441,7 +441,7 @@ func (x *IOSchedulerJob) SendToMainloop(FuncVar *glib.SourceFunc, UserDataVar ui
441441 cbFn(arg0)
442442 }
443443 NotifyVarRef = purego.NewCallback(fcb)
444- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)
444+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
445445 }
446446 }
447447
@@ -474,7 +474,7 @@ func (x *IOSchedulerJob) SendToMainloopAsync(FuncVar *glib.SourceFunc, UserDataV
474474 return cbFn(arg0)
475475 }
476476 FuncVarRef = purego.NewCallback(fcb)
477- glib.SaveCallback(FuncVarPtr, FuncVarRef)
477+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
478478 }
479479 }
480480
@@ -489,7 +489,7 @@ func (x *IOSchedulerJob) SendToMainloopAsync(FuncVar *glib.SourceFunc, UserDataV
489489 cbFn(arg0)
490490 }
491491 NotifyVarRef = purego.NewCallback(fcb)
492- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)
492+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
493493 }
494494 }
495495
M v4/gio/gliststore.go +4 -4
@@ -112,7 +112,7 @@ func (x *ListStore) FindWithEqualFunc(ItemVar *gobject.Object, EqualFuncVar *gli
112112 return cbFn(arg0, arg1)
113113 }
114114 EqualFuncVarRef = purego.NewCallback(fcb)
115- glib.SaveCallback(EqualFuncVarPtr, EqualFuncVarRef)
115+ glib.SaveCallbackWithClosure(EqualFuncVarPtr, EqualFuncVarRef, EqualFuncVar)
116116 }
117117 }
118118
@@ -142,7 +142,7 @@ func (x *ListStore) FindWithEqualFuncFull(ItemVar *gobject.Object, EqualFuncVar
142142 return cbFn(arg0, arg1, arg2)
143143 }
144144 EqualFuncVarRef = purego.NewCallback(fcb)
145- glib.SaveCallback(EqualFuncVarPtr, EqualFuncVarRef)
145+ glib.SaveCallbackWithClosure(EqualFuncVarPtr, EqualFuncVarRef, EqualFuncVar)
146146 }
147147 }
148148
@@ -190,7 +190,7 @@ func (x *ListStore) InsertSorted(ItemVar *gobject.Object, CompareFuncVar *glib.C
190190 return cbFn(arg0, arg1, arg2)
191191 }
192192 CompareFuncVarRef = purego.NewCallback(fcb)
193- glib.SaveCallback(CompareFuncVarPtr, CompareFuncVarRef)
193+ glib.SaveCallbackWithClosure(CompareFuncVarPtr, CompareFuncVarRef, CompareFuncVar)
194194 }
195195 }
196196
@@ -237,7 +237,7 @@ func (x *ListStore) Sort(CompareFuncVar *glib.CompareDataFunc, UserDataVar uintp
237237 return cbFn(arg0, arg1, arg2)
238238 }
239239 CompareFuncVarRef = purego.NewCallback(fcb)
240- glib.SaveCallback(CompareFuncVarPtr, CompareFuncVarRef)
240+ glib.SaveCallbackWithClosure(CompareFuncVarPtr, CompareFuncVarRef, CompareFuncVar)
241241 }
242242 }
243243
M v4/gio/gmemoryinputstream.go +2 -2
@@ -224,7 +224,7 @@ func NewMemoryInputStreamFromData(DataVar []byte, LenVar int, DestroyVar *glib.D
224224 cbFn(arg0)
225225 }
226226 DestroyVarRef = purego.NewCallback(fcb)
227- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
227+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
228228 }
229229 }
230230
@@ -263,7 +263,7 @@ func (x *MemoryInputStream) AddData(DataVar []byte, LenVar int, DestroyVar *glib
263263 cbFn(arg0)
264264 }
265265 DestroyVarRef = purego.NewCallback(fcb)
266- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
266+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
267267 }
268268 }
269269
M v4/gio/gmemoryoutputstream.go +2 -2
@@ -239,7 +239,7 @@ func NewMemoryOutputStream(DataVar uintptr, SizeVar uint, ReallocFunctionVar *Re
239239 return cbFn(arg0, arg1)
240240 }
241241 ReallocFunctionVarRef = purego.NewCallback(fcb)
242- glib.SaveCallback(ReallocFunctionVarPtr, ReallocFunctionVarRef)
242+ glib.SaveCallbackWithClosure(ReallocFunctionVarPtr, ReallocFunctionVarRef, ReallocFunctionVar)
243243 }
244244 }
245245
@@ -254,7 +254,7 @@ func NewMemoryOutputStream(DataVar uintptr, SizeVar uint, ReallocFunctionVar *Re
254254 cbFn(arg0)
255255 }
256256 DestroyFunctionVarRef = purego.NewCallback(fcb)
257- glib.SaveCallback(DestroyFunctionVarPtr, DestroyFunctionVarRef)
257+ glib.SaveCallbackWithClosure(DestroyFunctionVarPtr, DestroyFunctionVarRef, DestroyFunctionVar)
258258 }
259259 }
260260
M v4/gio/gmenumodel.go +1 -1
@@ -911,7 +911,7 @@ func (x *MenuModel) ConnectItemsChanged(cb *func(MenuModel, int, int, int)) uint
911911
912912 }
913913 cbRefPtr := purego.NewCallback(fcb)
914- glib.SaveCallback(cbPtr, cbRefPtr)
914+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
915915 return gobject.SignalConnect(x.GoPointer(), "items-changed", cbRefPtr)
916916 }
917917
M v4/gio/gmountoperation.go +6 -6
@@ -840,7 +840,7 @@ func (x *MountOperation) ConnectAborted(cb *func(MountOperation)) uint32 {
840840
841841 }
842842 cbRefPtr := purego.NewCallback(fcb)
843- glib.SaveCallback(cbPtr, cbRefPtr)
843+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
844844 return gobject.SignalConnect(x.GoPointer(), "aborted", cbRefPtr)
845845 }
846846
@@ -864,7 +864,7 @@ func (x *MountOperation) ConnectAskPassword(cb *func(MountOperation, string, str
864864
865865 }
866866 cbRefPtr := purego.NewCallback(fcb)
867- glib.SaveCallback(cbPtr, cbRefPtr)
867+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
868868 return gobject.SignalConnect(x.GoPointer(), "ask-password", cbRefPtr)
869869 }
870870
@@ -889,7 +889,7 @@ func (x *MountOperation) ConnectAskQuestion(cb *func(MountOperation, string, []s
889889
890890 }
891891 cbRefPtr := purego.NewCallback(fcb)
892- glib.SaveCallback(cbPtr, cbRefPtr)
892+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
893893 return gobject.SignalConnect(x.GoPointer(), "ask-question", cbRefPtr)
894894 }
895895
@@ -909,7 +909,7 @@ func (x *MountOperation) ConnectReply(cb *func(MountOperation, MountOperationRes
909909
910910 }
911911 cbRefPtr := purego.NewCallback(fcb)
912- glib.SaveCallback(cbPtr, cbRefPtr)
912+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
913913 return gobject.SignalConnect(x.GoPointer(), "reply", cbRefPtr)
914914 }
915915
@@ -940,7 +940,7 @@ func (x *MountOperation) ConnectShowProcesses(cb *func(MountOperation, string, [
940940
941941 }
942942 cbRefPtr := purego.NewCallback(fcb)
943- glib.SaveCallback(cbPtr, cbRefPtr)
943+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
944944 return gobject.SignalConnect(x.GoPointer(), "show-processes", cbRefPtr)
945945 }
946946
@@ -975,7 +975,7 @@ func (x *MountOperation) ConnectShowUnmountProgress(cb *func(MountOperation, str
975975
976976 }
977977 cbRefPtr := purego.NewCallback(fcb)
978- glib.SaveCallback(cbPtr, cbRefPtr)
978+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
979979 return gobject.SignalConnect(x.GoPointer(), "show-unmount-progress", cbRefPtr)
980980 }
981981
M v4/gio/goutputstream.go +8 -8
@@ -640,7 +640,7 @@ func (x *OutputStream) CloseAsync(IoPriorityVar int, CancellableVar *Cancellable
640640 cbFn(arg0, arg1, arg2)
641641 }
642642 CallbackVarRef = purego.NewCallback(fcb)
643- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
643+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
644644 }
645645 }
646646
@@ -708,7 +708,7 @@ func (x *OutputStream) FlushAsync(IoPriorityVar int, CancellableVar *Cancellable
708708 cbFn(arg0, arg1, arg2)
709709 }
710710 CallbackVarRef = purego.NewCallback(fcb)
711- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
711+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
712712 }
713713 }
714714
@@ -839,7 +839,7 @@ func (x *OutputStream) SpliceAsync(SourceVar *InputStream, FlagsVar OutputStream
839839 cbFn(arg0, arg1, arg2)
840840 }
841841 CallbackVarRef = purego.NewCallback(fcb)
842- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
842+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
843843 }
844844 }
845845
@@ -980,7 +980,7 @@ func (x *OutputStream) WriteAllAsync(BufferVar []byte, CountVar uint, IoPriority
980980 cbFn(arg0, arg1, arg2)
981981 }
982982 CallbackVarRef = purego.NewCallback(fcb)
983- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
983+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
984984 }
985985 }
986986
@@ -1062,7 +1062,7 @@ func (x *OutputStream) WriteAsync(BufferVar []byte, CountVar uint, IoPriorityVar
10621062 cbFn(arg0, arg1, arg2)
10631063 }
10641064 CallbackVarRef = purego.NewCallback(fcb)
1065- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
1065+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
10661066 }
10671067 }
10681068
@@ -1123,7 +1123,7 @@ func (x *OutputStream) WriteBytesAsync(BytesVar *glib.Bytes, IoPriorityVar int,
11231123 cbFn(arg0, arg1, arg2)
11241124 }
11251125 CallbackVarRef = purego.NewCallback(fcb)
1126- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
1126+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
11271127 }
11281128 }
11291129
@@ -1265,7 +1265,7 @@ func (x *OutputStream) WritevAllAsync(VectorsVar []OutputVector, NVectorsVar uin
12651265 cbFn(arg0, arg1, arg2)
12661266 }
12671267 CallbackVarRef = purego.NewCallback(fcb)
1268- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
1268+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
12691269 }
12701270 }
12711271
@@ -1342,7 +1342,7 @@ func (x *OutputStream) WritevAsync(VectorsVar []OutputVector, NVectorsVar uint,
13421342 cbFn(arg0, arg1, arg2)
13431343 }
13441344 CallbackVarRef = purego.NewCallback(fcb)
1345- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
1345+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
13461346 }
13471347 }
13481348
M v4/gio/gpermission.go +2 -2
@@ -261,7 +261,7 @@ func (x *Permission) AcquireAsync(CancellableVar *Cancellable, CallbackVar *Asyn
261261 cbFn(arg0, arg1, arg2)
262262 }
263263 CallbackVarRef = purego.NewCallback(fcb)
264- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
264+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
265265 }
266266 }
267267
@@ -385,7 +385,7 @@ func (x *Permission) ReleaseAsync(CancellableVar *Cancellable, CallbackVar *Asyn
385385 cbFn(arg0, arg1, arg2)
386386 }
387387 CallbackVarRef = purego.NewCallback(fcb)
388- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
388+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
389389 }
390390 }
391391
M v4/gio/gresolver.go +6 -6
@@ -545,7 +545,7 @@ func (x *Resolver) LookupByAddressAsync(AddressVar *InetAddress, CancellableVar
545545 cbFn(arg0, arg1, arg2)
546546 }
547547 CallbackVarRef = purego.NewCallback(fcb)
548- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
548+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
549549 }
550550 }
551551
@@ -629,7 +629,7 @@ func (x *Resolver) LookupByNameAsync(HostnameVar string, CancellableVar *Cancell
629629 cbFn(arg0, arg1, arg2)
630630 }
631631 CallbackVarRef = purego.NewCallback(fcb)
632- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
632+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
633633 }
634634 }
635635
@@ -693,7 +693,7 @@ func (x *Resolver) LookupByNameWithFlagsAsync(HostnameVar string, FlagsVar Resol
693693 cbFn(arg0, arg1, arg2)
694694 }
695695 CallbackVarRef = purego.NewCallback(fcb)
696- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
696+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
697697 }
698698 }
699699
@@ -764,7 +764,7 @@ func (x *Resolver) LookupRecordsAsync(RrnameVar string, RecordTypeVar ResolverRe
764764 cbFn(arg0, arg1, arg2)
765765 }
766766 CallbackVarRef = purego.NewCallback(fcb)
767- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
767+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
768768 }
769769 }
770770
@@ -849,7 +849,7 @@ func (x *Resolver) LookupServiceAsync(ServiceVar string, ProtocolVar string, Dom
849849 cbFn(arg0, arg1, arg2)
850850 }
851851 CallbackVarRef = purego.NewCallback(fcb)
852- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
852+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
853853 }
854854 }
855855
@@ -966,7 +966,7 @@ func (x *Resolver) ConnectReload(cb *func(Resolver)) uint32 {
966966
967967 }
968968 cbRefPtr := purego.NewCallback(fcb)
969- glib.SaveCallback(cbPtr, cbRefPtr)
969+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
970970 return gobject.SignalConnect(x.GoPointer(), "reload", cbRefPtr)
971971 }
972972
M v4/gio/gsettings.go +10 -10
@@ -810,7 +810,7 @@ func (x *Settings) BindWithMapping(KeyVar string, ObjectVar *gobject.Object, Pro
810810 return cbFn(arg0, arg1, arg2)
811811 }
812812 GetMappingVarRef = purego.NewCallback(fcb)
813- glib.SaveCallback(GetMappingVarPtr, GetMappingVarRef)
813+ glib.SaveCallbackWithClosure(GetMappingVarPtr, GetMappingVarRef, GetMappingVar)
814814 }
815815 }
816816
@@ -825,7 +825,7 @@ func (x *Settings) BindWithMapping(KeyVar string, ObjectVar *gobject.Object, Pro
825825 return cbFn(arg0, arg1, arg2)
826826 }
827827 SetMappingVarRef = purego.NewCallback(fcb)
828- glib.SaveCallback(SetMappingVarPtr, SetMappingVarRef)
828+ glib.SaveCallbackWithClosure(SetMappingVarPtr, SetMappingVarRef, SetMappingVar)
829829 }
830830 }
831831
@@ -840,7 +840,7 @@ func (x *Settings) BindWithMapping(KeyVar string, ObjectVar *gobject.Object, Pro
840840 cbFn(arg0)
841841 }
842842 DestroyVarRef = purego.NewCallback(fcb)
843- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
843+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
844844 }
845845 }
846846
@@ -1155,7 +1155,7 @@ func (x *Settings) GetMapped(KeyVar string, MappingVar *SettingsGetMapping, User
11551155 return cbFn(arg0, arg1, arg2)
11561156 }
11571157 MappingVarRef = purego.NewCallback(fcb)
1158- glib.SaveCallback(MappingVarPtr, MappingVarRef)
1158+ glib.SaveCallbackWithClosure(MappingVarPtr, MappingVarRef, MappingVar)
11591159 }
11601160 }
11611161
@@ -1716,7 +1716,7 @@ func (x *Settings) ConnectChangeEvent(cb *func(Settings, uintptr, int) bool) uin
17161716
17171717 }
17181718 cbRefPtr := purego.NewCallback(fcb)
1719- glib.SaveCallback(cbPtr, cbRefPtr)
1719+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
17201720 return gobject.SignalConnect(x.GoPointer(), "change-event", cbRefPtr)
17211721 }
17221722
@@ -1746,7 +1746,7 @@ func (x *Settings) ConnectChanged(cb *func(Settings, string)) uint32 {
17461746
17471747 }
17481748 cbRefPtr := purego.NewCallback(fcb)
1749- glib.SaveCallback(cbPtr, cbRefPtr)
1749+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
17501750 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
17511751 }
17521752
@@ -1768,7 +1768,7 @@ func (x *Settings) ConnectChangedWithDetail(detail string, cb *func(Settings, st
17681768
17691769 }
17701770 cbRefPtr := purego.NewCallback(fcb)
1771- glib.SaveCallback(cbPtr, cbRefPtr)
1771+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
17721772 return gobject.SignalConnect(x.GoPointer(), signalName, cbRefPtr)
17731773 }
17741774
@@ -1806,7 +1806,7 @@ func (x *Settings) ConnectWritableChangeEvent(cb *func(Settings, uint) bool) uin
18061806
18071807 }
18081808 cbRefPtr := purego.NewCallback(fcb)
1809- glib.SaveCallback(cbPtr, cbRefPtr)
1809+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
18101810 return gobject.SignalConnect(x.GoPointer(), "writable-change-event", cbRefPtr)
18111811 }
18121812
@@ -1833,7 +1833,7 @@ func (x *Settings) ConnectWritableChanged(cb *func(Settings, string)) uint32 {
18331833
18341834 }
18351835 cbRefPtr := purego.NewCallback(fcb)
1836- glib.SaveCallback(cbPtr, cbRefPtr)
1836+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
18371837 return gobject.SignalConnect(x.GoPointer(), "writable-changed", cbRefPtr)
18381838 }
18391839
@@ -1855,7 +1855,7 @@ func (x *Settings) ConnectWritableChangedWithDetail(detail string, cb *func(Sett
18551855
18561856 }
18571857 cbRefPtr := purego.NewCallback(fcb)
1858- glib.SaveCallback(cbPtr, cbRefPtr)
1858+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
18591859 return gobject.SignalConnect(x.GoPointer(), signalName, cbRefPtr)
18601860 }
18611861
M v4/gio/gsimpleaction.go +2 -2
@@ -241,7 +241,7 @@ func (x *SimpleAction) ConnectActivate(cb *func(SimpleAction, uintptr)) uint32 {
241241
242242 }
243243 cbRefPtr := purego.NewCallback(fcb)
244- glib.SaveCallback(cbPtr, cbRefPtr)
244+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
245245 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
246246 }
247247
@@ -296,7 +296,7 @@ func (x *SimpleAction) ConnectChangeState(cb *func(SimpleAction, uintptr)) uint3
296296
297297 }
298298 cbRefPtr := purego.NewCallback(fcb)
299- glib.SaveCallback(cbPtr, cbRefPtr)
299+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
300300 return gobject.SignalConnect(x.GoPointer(), "change-state", cbRefPtr)
301301 }
302302
M v4/gio/gsimpleasyncresult.go +9 -9
@@ -38,7 +38,7 @@ func SimpleAsyncReportErrorInIdle(ObjectVar *gobject.Object, CallbackVar *AsyncR
3838 cbFn(arg0, arg1, arg2)
3939 }
4040 CallbackVarRef = purego.NewCallback(fcb)
41- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
41+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
4242 }
4343 }
4444
@@ -64,7 +64,7 @@ func SimpleAsyncReportGerrorInIdle(ObjectVar *gobject.Object, CallbackVar *Async
6464 cbFn(arg0, arg1, arg2)
6565 }
6666 CallbackVarRef = purego.NewCallback(fcb)
67- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
67+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
6868 }
6969 }
7070
@@ -90,7 +90,7 @@ func SimpleAsyncReportTakeGerrorInIdle(ObjectVar *gobject.Object, CallbackVar *A
9090 cbFn(arg0, arg1, arg2)
9191 }
9292 CallbackVarRef = purego.NewCallback(fcb)
93- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
93+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
9494 }
9595 }
9696
@@ -313,7 +313,7 @@ func NewSimpleAsyncResult(SourceObjectVar *gobject.Object, CallbackVar *AsyncRea
313313 cbFn(arg0, arg1, arg2)
314314 }
315315 CallbackVarRef = purego.NewCallback(fcb)
316- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
316+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
317317 }
318318 }
319319
@@ -344,7 +344,7 @@ func NewSimpleAsyncResultError(SourceObjectVar *gobject.Object, CallbackVar *Asy
344344 cbFn(arg0, arg1, arg2)
345345 }
346346 CallbackVarRef = purego.NewCallback(fcb)
347- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
347+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
348348 }
349349 }
350350
@@ -375,7 +375,7 @@ func NewSimpleAsyncResultFromError(SourceObjectVar *gobject.Object, CallbackVar
375375 cbFn(arg0, arg1, arg2)
376376 }
377377 CallbackVarRef = purego.NewCallback(fcb)
378- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
378+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
379379 }
380380 }
381381
@@ -407,7 +407,7 @@ func NewSimpleAsyncResultTakeError(SourceObjectVar *gobject.Object, CallbackVar
407407 cbFn(arg0, arg1, arg2)
408408 }
409409 CallbackVarRef = purego.NewCallback(fcb)
410- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
410+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
411411 }
412412 }
413413
@@ -532,7 +532,7 @@ func (x *SimpleAsyncResult) RunInThread(FuncVar *SimpleAsyncThreadFunc, IoPriori
532532 cbFn(arg0, arg1, arg2)
533533 }
534534 FuncVarRef = purego.NewCallback(fcb)
535- glib.SaveCallback(FuncVarPtr, FuncVarRef)
535+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
536536 }
537537 }
538538
@@ -629,7 +629,7 @@ func (x *SimpleAsyncResult) SetOpResGpointer(OpResVar uintptr, DestroyOpResVar *
629629 cbFn(arg0)
630630 }
631631 DestroyOpResVarRef = purego.NewCallback(fcb)
632- glib.SaveCallback(DestroyOpResVarPtr, DestroyOpResVarRef)
632+ glib.SaveCallbackWithClosure(DestroyOpResVarPtr, DestroyOpResVarRef, DestroyOpResVar)
633633 }
634634 }
635635
M v4/gio/gsocketaddressenumerator.go +1 -1
@@ -208,7 +208,7 @@ func (x *SocketAddressEnumerator) NextAsync(CancellableVar *Cancellable, Callbac
208208 cbFn(arg0, arg1, arg2)
209209 }
210210 CallbackVarRef = purego.NewCallback(fcb)
211- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
211+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
212212 }
213213 }
214214
M v4/gio/gsocketclient.go +5 -5
@@ -294,7 +294,7 @@ func (x *SocketClient) ConnectAsync(ConnectableVar SocketConnectable, Cancellabl
294294 cbFn(arg0, arg1, arg2)
295295 }
296296 CallbackVarRef = purego.NewCallback(fcb)
297- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
297+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
298298 }
299299 }
300300
@@ -393,7 +393,7 @@ func (x *SocketClient) ConnectToHostAsync(HostAndPortVar string, DefaultPortVar
393393 cbFn(arg0, arg1, arg2)
394394 }
395395 CallbackVarRef = purego.NewCallback(fcb)
396- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
396+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
397397 }
398398 }
399399
@@ -473,7 +473,7 @@ func (x *SocketClient) ConnectToServiceAsync(DomainVar string, ServiceVar string
473473 cbFn(arg0, arg1, arg2)
474474 }
475475 CallbackVarRef = purego.NewCallback(fcb)
476- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
476+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
477477 }
478478 }
479479
@@ -563,7 +563,7 @@ func (x *SocketClient) ConnectToUriAsync(UriVar string, DefaultPortVar uint16, C
563563 cbFn(arg0, arg1, arg2)
564564 }
565565 CallbackVarRef = purego.NewCallback(fcb)
566- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
566+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
567567 }
568568 }
569569
@@ -982,7 +982,7 @@ func (x *SocketClient) ConnectEvent(cb *func(SocketClient, SocketClientEvent, ui
982982
983983 }
984984 cbRefPtr := purego.NewCallback(fcb)
985- glib.SaveCallback(cbPtr, cbRefPtr)
985+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
986986 return gobject.SignalConnect(x.GoPointer(), "event", cbRefPtr)
987987 }
988988
M v4/gio/gsocketconnection.go +1 -1
@@ -252,7 +252,7 @@ func (x *SocketConnection) ConnectAsync(AddressVar *SocketAddress, CancellableVa
252252 cbFn(arg0, arg1, arg2)
253253 }
254254 CallbackVarRef = purego.NewCallback(fcb)
255- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
255+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
256256 }
257257 }
258258
M v4/gio/gsocketlistener.go +3 -3
@@ -308,7 +308,7 @@ func (x *SocketListener) AcceptAsync(CancellableVar *Cancellable, CallbackVar *A
308308 cbFn(arg0, arg1, arg2)
309309 }
310310 CallbackVarRef = purego.NewCallback(fcb)
311- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
311+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
312312 }
313313 }
314314
@@ -391,7 +391,7 @@ func (x *SocketListener) AcceptSocketAsync(CancellableVar *Cancellable, Callback
391391 cbFn(arg0, arg1, arg2)
392392 }
393393 CallbackVarRef = purego.NewCallback(fcb)
394- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
394+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
395395 }
396396 }
397397
@@ -622,7 +622,7 @@ func (x *SocketListener) ConnectEvent(cb *func(SocketListener, SocketListenerEve
622622
623623 }
624624 cbRefPtr := purego.NewCallback(fcb)
625- glib.SaveCallback(cbPtr, cbRefPtr)
625+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
626626 return gobject.SignalConnect(x.GoPointer(), "event", cbRefPtr)
627627 }
628628
M v4/gio/gsocketservice.go +1 -1
@@ -373,7 +373,7 @@ func (x *SocketService) ConnectIncoming(cb *func(SocketService, uintptr, uintptr
373373
374374 }
375375 cbRefPtr := purego.NewCallback(fcb)
376- glib.SaveCallback(cbPtr, cbRefPtr)
376+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
377377 return gobject.SignalConnect(x.GoPointer(), "incoming", cbRefPtr)
378378 }
379379
M v4/gio/gsubprocess.go +4 -4
@@ -208,7 +208,7 @@ func (x *Subprocess) CommunicateAsync(StdinBufVar *glib.Bytes, CancellableVar *C
208208 cbFn(arg0, arg1, arg2)
209209 }
210210 CallbackVarRef = purego.NewCallback(fcb)
211- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
211+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
212212 }
213213 }
214214
@@ -271,7 +271,7 @@ func (x *Subprocess) CommunicateUtf8Async(StdinBufVar *string, CancellableVar *C
271271 cbFn(arg0, arg1, arg2)
272272 }
273273 CallbackVarRef = purego.NewCallback(fcb)
274- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
274+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
275275 }
276276 }
277277
@@ -545,7 +545,7 @@ func (x *Subprocess) WaitAsync(CancellableVar *Cancellable, CallbackVar *AsyncRe
545545 cbFn(arg0, arg1, arg2)
546546 }
547547 CallbackVarRef = purego.NewCallback(fcb)
548- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
548+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
549549 }
550550 }
551551
@@ -586,7 +586,7 @@ func (x *Subprocess) WaitCheckAsync(CancellableVar *Cancellable, CallbackVar *As
586586 cbFn(arg0, arg1, arg2)
587587 }
588588 CallbackVarRef = purego.NewCallback(fcb)
589- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
589+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
590590 }
591591 }
592592
M v4/gio/gsubprocesslauncher.go +2 -2
@@ -116,7 +116,7 @@ func (x *SubprocessLauncher) SetChildSetup(ChildSetupVar *glib.SpawnChildSetupFu
116116 cbFn(arg0)
117117 }
118118 ChildSetupVarRef = purego.NewCallback(fcb)
119- glib.SaveCallback(ChildSetupVarPtr, ChildSetupVarRef)
119+ glib.SaveCallbackWithClosure(ChildSetupVarPtr, ChildSetupVarRef, ChildSetupVar)
120120 }
121121 }
122122
@@ -131,7 +131,7 @@ func (x *SubprocessLauncher) SetChildSetup(ChildSetupVar *glib.SpawnChildSetupFu
131131 cbFn(arg0)
132132 }
133133 DestroyNotifyVarRef = purego.NewCallback(fcb)
134- glib.SaveCallback(DestroyNotifyVarPtr, DestroyNotifyVarRef)
134+ glib.SaveCallbackWithClosure(DestroyNotifyVarPtr, DestroyNotifyVarRef, DestroyNotifyVar)
135135 }
136136 }
137137
M v4/gio/gtask.go +8 -8
@@ -645,7 +645,7 @@ func NewTask(SourceObjectVar *gobject.Object, CancellableVar *Cancellable, Callb
645645 cbFn(arg0, arg1, arg2)
646646 }
647647 CallbackVarRef = purego.NewCallback(fcb)
648- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
648+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
649649 }
650650 }
651651
@@ -685,7 +685,7 @@ func (x *Task) AttachSource(SourceVar *glib.Source, CallbackVar *glib.SourceFunc
685685 return cbFn(arg0)
686686 }
687687 CallbackVarRef = purego.NewCallback(fcb)
688- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
688+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
689689 }
690690 }
691691
@@ -1033,7 +1033,7 @@ func (x *Task) ReturnPointer(ResultVar uintptr, ResultDestroyVar *glib.DestroyNo
10331033 cbFn(arg0)
10341034 }
10351035 ResultDestroyVarRef = purego.NewCallback(fcb)
1036- glib.SaveCallback(ResultDestroyVarPtr, ResultDestroyVarRef)
1036+ glib.SaveCallbackWithClosure(ResultDestroyVarPtr, ResultDestroyVarRef, ResultDestroyVar)
10371037 }
10381038 }
10391039
@@ -1111,7 +1111,7 @@ func (x *Task) RunInThread(TaskFuncVar *TaskThreadFunc) {
11111111 cbFn(arg0, arg1, arg2, arg3)
11121112 }
11131113 TaskFuncVarRef = purego.NewCallback(fcb)
1114- glib.SaveCallback(TaskFuncVarPtr, TaskFuncVarRef)
1114+ glib.SaveCallbackWithClosure(TaskFuncVarPtr, TaskFuncVarRef, TaskFuncVar)
11151115 }
11161116 }
11171117
@@ -1150,7 +1150,7 @@ func (x *Task) RunInThreadSync(TaskFuncVar *TaskThreadFunc) {
11501150 cbFn(arg0, arg1, arg2, arg3)
11511151 }
11521152 TaskFuncVarRef = purego.NewCallback(fcb)
1153- glib.SaveCallback(TaskFuncVarPtr, TaskFuncVarRef)
1153+ glib.SaveCallbackWithClosure(TaskFuncVarPtr, TaskFuncVarRef, TaskFuncVar)
11541154 }
11551155 }
11561156
@@ -1307,7 +1307,7 @@ func (x *Task) SetTaskData(TaskDataVar uintptr, TaskDataDestroyVar *glib.Destroy
13071307 cbFn(arg0)
13081308 }
13091309 TaskDataDestroyVarRef = purego.NewCallback(fcb)
1310- glib.SaveCallback(TaskDataDestroyVarPtr, TaskDataDestroyVarRef)
1310+ glib.SaveCallbackWithClosure(TaskDataDestroyVarPtr, TaskDataDestroyVarRef, TaskDataDestroyVar)
13111311 }
13121312 }
13131313
@@ -1425,7 +1425,7 @@ func TaskReportError(SourceObjectVar *gobject.Object, CallbackVar *AsyncReadyCal
14251425 cbFn(arg0, arg1, arg2)
14261426 }
14271427 CallbackVarRef = purego.NewCallback(fcb)
1428- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
1428+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
14291429 }
14301430 }
14311431
@@ -1457,7 +1457,7 @@ func TaskReportNewError(SourceObjectVar *gobject.Object, CallbackVar *AsyncReady
14571457 cbFn(arg0, arg1, arg2)
14581458 }
14591459 CallbackVarRef = purego.NewCallback(fcb)
1460- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
1460+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
14611461 }
14621462 }
14631463
M v4/gio/gthreadedsocketservice.go +1 -1
@@ -276,7 +276,7 @@ func (x *ThreadedSocketService) ConnectRun(cb *func(ThreadedSocketService, uintp
276276
277277 }
278278 cbRefPtr := purego.NewCallback(fcb)
279- glib.SaveCallback(cbPtr, cbRefPtr)
279+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
280280 return gobject.SignalConnect(x.GoPointer(), "run", cbRefPtr)
281281 }
282282
M v4/gio/gtlsconnection.go +2 -2
@@ -506,7 +506,7 @@ func (x *TlsConnection) HandshakeAsync(IoPriorityVar int, CancellableVar *Cancel
506506 cbFn(arg0, arg1, arg2)
507507 }
508508 CallbackVarRef = purego.NewCallback(fcb)
509- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
509+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
510510 }
511511 }
512512
@@ -815,7 +815,7 @@ func (x *TlsConnection) ConnectAcceptCertificate(cb *func(TlsConnection, uintptr
815815
816816 }
817817 cbRefPtr := purego.NewCallback(fcb)
818- glib.SaveCallback(cbPtr, cbRefPtr)
818+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
819819 return gobject.SignalConnect(x.GoPointer(), "accept-certificate", cbRefPtr)
820820 }
821821
M v4/gio/gtlsdatabase.go +4 -4
@@ -578,7 +578,7 @@ func (x *TlsDatabase) LookupCertificateForHandleAsync(HandleVar string, Interact
578578 cbFn(arg0, arg1, arg2)
579579 }
580580 CallbackVarRef = purego.NewCallback(fcb)
581- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
581+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
582582 }
583583 }
584584
@@ -668,7 +668,7 @@ func (x *TlsDatabase) LookupCertificateIssuerAsync(CertificateVar *TlsCertificat
668668 cbFn(arg0, arg1, arg2)
669669 }
670670 CallbackVarRef = purego.NewCallback(fcb)
671- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
671+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
672672 }
673673 }
674674
@@ -737,7 +737,7 @@ func (x *TlsDatabase) LookupCertificatesIssuedByAsync(IssuerRawDnVar []byte, Int
737737 cbFn(arg0, arg1, arg2)
738738 }
739739 CallbackVarRef = purego.NewCallback(fcb)
740- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
740+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
741741 }
742742 }
743743
@@ -853,7 +853,7 @@ func (x *TlsDatabase) VerifyChainAsync(ChainVar *TlsCertificate, PurposeVar stri
853853 cbFn(arg0, arg1, arg2)
854854 }
855855 CallbackVarRef = purego.NewCallback(fcb)
856- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
856+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
857857 }
858858 }
859859
M v4/gio/gtlsinteraction.go +2 -2
@@ -333,7 +333,7 @@ func (x *TlsInteraction) AskPasswordAsync(PasswordVar *TlsPassword, CancellableV
333333 cbFn(arg0, arg1, arg2)
334334 }
335335 CallbackVarRef = purego.NewCallback(fcb)
336- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
336+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
337337 }
338338 }
339339
@@ -484,7 +484,7 @@ func (x *TlsInteraction) RequestCertificateAsync(ConnectionVar *TlsConnection, F
484484 cbFn(arg0, arg1, arg2)
485485 }
486486 CallbackVarRef = purego.NewCallback(fcb)
487- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
487+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
488488 }
489489 }
490490
M v4/gio/gtlspassword.go +1 -1
@@ -255,7 +255,7 @@ func (x *TlsPassword) SetValueFull(ValueVar []byte, LengthVar int, DestroyVar *g
255255 cbFn(arg0)
256256 }
257257 DestroyVarRef = purego.NewCallback(fcb)
258- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
258+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
259259 }
260260 }
261261
M v4/gio/gunixconnection.go +2 -2
@@ -117,7 +117,7 @@ func (x *UnixConnection) ReceiveCredentialsAsync(CancellableVar *Cancellable, Ca
117117 cbFn(arg0, arg1, arg2)
118118 }
119119 CallbackVarRef = purego.NewCallback(fcb)
120- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
120+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
121121 }
122122 }
123123
@@ -223,7 +223,7 @@ func (x *UnixConnection) SendCredentialsAsync(CancellableVar *Cancellable, Callb
223223 cbFn(arg0, arg1, arg2)
224224 }
225225 CallbackVarRef = purego.NewCallback(fcb)
226- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
226+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
227227 }
228228 }
229229
M v4/gio/gvfs.go +4 -4
@@ -627,7 +627,7 @@ func (x *Vfs) RegisterUriScheme(SchemeVar string, UriFuncVar *VfsFileLookupFunc,
627627 return cbFn(arg0, arg1, arg2)
628628 }
629629 UriFuncVarRef = purego.NewCallback(fcb)
630- glib.SaveCallback(UriFuncVarPtr, UriFuncVarRef)
630+ glib.SaveCallbackWithClosure(UriFuncVarPtr, UriFuncVarRef, UriFuncVar)
631631 }
632632 }
633633
@@ -642,7 +642,7 @@ func (x *Vfs) RegisterUriScheme(SchemeVar string, UriFuncVar *VfsFileLookupFunc,
642642 cbFn(arg0)
643643 }
644644 UriDestroyVarRef = purego.NewCallback(fcb)
645- glib.SaveCallback(UriDestroyVarPtr, UriDestroyVarRef)
645+ glib.SaveCallbackWithClosure(UriDestroyVarPtr, UriDestroyVarRef, UriDestroyVar)
646646 }
647647 }
648648
@@ -657,7 +657,7 @@ func (x *Vfs) RegisterUriScheme(SchemeVar string, UriFuncVar *VfsFileLookupFunc,
657657 return cbFn(arg0, arg1, arg2)
658658 }
659659 ParseNameFuncVarRef = purego.NewCallback(fcb)
660- glib.SaveCallback(ParseNameFuncVarPtr, ParseNameFuncVarRef)
660+ glib.SaveCallbackWithClosure(ParseNameFuncVarPtr, ParseNameFuncVarRef, ParseNameFuncVar)
661661 }
662662 }
663663
@@ -672,7 +672,7 @@ func (x *Vfs) RegisterUriScheme(SchemeVar string, UriFuncVar *VfsFileLookupFunc,
672672 cbFn(arg0)
673673 }
674674 ParseNameDestroyVarRef = purego.NewCallback(fcb)
675- glib.SaveCallback(ParseNameDestroyVarPtr, ParseNameDestroyVarRef)
675+ glib.SaveCallbackWithClosure(ParseNameDestroyVarPtr, ParseNameDestroyVarRef, ParseNameDestroyVar)
676676 }
677677 }
678678
M v4/gio/gvolumemonitor.go +12 -12
@@ -808,7 +808,7 @@ func (x *VolumeMonitor) ConnectDriveChanged(cb *func(VolumeMonitor, uintptr)) ui
808808
809809 }
810810 cbRefPtr := purego.NewCallback(fcb)
811- glib.SaveCallback(cbPtr, cbRefPtr)
811+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
812812 return gobject.SignalConnect(x.GoPointer(), "drive-changed", cbRefPtr)
813813 }
814814
@@ -828,7 +828,7 @@ func (x *VolumeMonitor) ConnectDriveConnected(cb *func(VolumeMonitor, uintptr))
828828
829829 }
830830 cbRefPtr := purego.NewCallback(fcb)
831- glib.SaveCallback(cbPtr, cbRefPtr)
831+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
832832 return gobject.SignalConnect(x.GoPointer(), "drive-connected", cbRefPtr)
833833 }
834834
@@ -848,7 +848,7 @@ func (x *VolumeMonitor) ConnectDriveDisconnected(cb *func(VolumeMonitor, uintptr
848848
849849 }
850850 cbRefPtr := purego.NewCallback(fcb)
851- glib.SaveCallback(cbPtr, cbRefPtr)
851+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
852852 return gobject.SignalConnect(x.GoPointer(), "drive-disconnected", cbRefPtr)
853853 }
854854
@@ -868,7 +868,7 @@ func (x *VolumeMonitor) ConnectDriveEjectButton(cb *func(VolumeMonitor, uintptr)
868868
869869 }
870870 cbRefPtr := purego.NewCallback(fcb)
871- glib.SaveCallback(cbPtr, cbRefPtr)
871+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
872872 return gobject.SignalConnect(x.GoPointer(), "drive-eject-button", cbRefPtr)
873873 }
874874
@@ -888,7 +888,7 @@ func (x *VolumeMonitor) ConnectDriveStopButton(cb *func(VolumeMonitor, uintptr))
888888
889889 }
890890 cbRefPtr := purego.NewCallback(fcb)
891- glib.SaveCallback(cbPtr, cbRefPtr)
891+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
892892 return gobject.SignalConnect(x.GoPointer(), "drive-stop-button", cbRefPtr)
893893 }
894894
@@ -908,7 +908,7 @@ func (x *VolumeMonitor) ConnectMountAdded(cb *func(VolumeMonitor, uintptr)) uint
908908
909909 }
910910 cbRefPtr := purego.NewCallback(fcb)
911- glib.SaveCallback(cbPtr, cbRefPtr)
911+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
912912 return gobject.SignalConnect(x.GoPointer(), "mount-added", cbRefPtr)
913913 }
914914
@@ -928,7 +928,7 @@ func (x *VolumeMonitor) ConnectMountChanged(cb *func(VolumeMonitor, uintptr)) ui
928928
929929 }
930930 cbRefPtr := purego.NewCallback(fcb)
931- glib.SaveCallback(cbPtr, cbRefPtr)
931+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
932932 return gobject.SignalConnect(x.GoPointer(), "mount-changed", cbRefPtr)
933933 }
934934
@@ -951,7 +951,7 @@ func (x *VolumeMonitor) ConnectMountPreUnmount(cb *func(VolumeMonitor, uintptr))
951951
952952 }
953953 cbRefPtr := purego.NewCallback(fcb)
954- glib.SaveCallback(cbPtr, cbRefPtr)
954+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
955955 return gobject.SignalConnect(x.GoPointer(), "mount-pre-unmount", cbRefPtr)
956956 }
957957
@@ -971,7 +971,7 @@ func (x *VolumeMonitor) ConnectMountRemoved(cb *func(VolumeMonitor, uintptr)) ui
971971
972972 }
973973 cbRefPtr := purego.NewCallback(fcb)
974- glib.SaveCallback(cbPtr, cbRefPtr)
974+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
975975 return gobject.SignalConnect(x.GoPointer(), "mount-removed", cbRefPtr)
976976 }
977977
@@ -991,7 +991,7 @@ func (x *VolumeMonitor) ConnectVolumeAdded(cb *func(VolumeMonitor, uintptr)) uin
991991
992992 }
993993 cbRefPtr := purego.NewCallback(fcb)
994- glib.SaveCallback(cbPtr, cbRefPtr)
994+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
995995 return gobject.SignalConnect(x.GoPointer(), "volume-added", cbRefPtr)
996996 }
997997
@@ -1011,7 +1011,7 @@ func (x *VolumeMonitor) ConnectVolumeChanged(cb *func(VolumeMonitor, uintptr)) u
10111011
10121012 }
10131013 cbRefPtr := purego.NewCallback(fcb)
1014- glib.SaveCallback(cbPtr, cbRefPtr)
1014+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
10151015 return gobject.SignalConnect(x.GoPointer(), "volume-changed", cbRefPtr)
10161016 }
10171017
@@ -1031,7 +1031,7 @@ func (x *VolumeMonitor) ConnectVolumeRemoved(cb *func(VolumeMonitor, uintptr)) u
10311031
10321032 }
10331033 cbRefPtr := purego.NewCallback(fcb)
1034- glib.SaveCallback(cbPtr, cbRefPtr)
1034+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
10351035 return gobject.SignalConnect(x.GoPointer(), "volume-removed", cbRefPtr)
10361036 }
10371037
M v4/glib/garray.go +10 -10
@@ -161,7 +161,7 @@ func NewBytesWithFreeFunc(DataVar []byte, SizeVar uint, FreeFuncVar *DestroyNoti
161161 cbFn(arg0)
162162 }
163163 FreeFuncVarRef = purego.NewCallback(fcb)
164- SaveCallback(FreeFuncVarPtr, FreeFuncVarRef)
164+ SaveCallbackWithClosure(FreeFuncVarPtr, FreeFuncVarRef, FreeFuncVar)
165165 }
166166 }
167167
@@ -607,7 +607,7 @@ func ByteArraySort(ArrayVar []byte, CompareFuncVar *CompareFunc) {
607607 return cbFn(arg0, arg1)
608608 }
609609 CompareFuncVarRef = purego.NewCallback(fcb)
610- SaveCallback(CompareFuncVarPtr, CompareFuncVarRef)
610+ SaveCallbackWithClosure(CompareFuncVarPtr, CompareFuncVarRef, CompareFuncVar)
611611 }
612612 }
613613
@@ -632,7 +632,7 @@ func ByteArraySortWithData(ArrayVar []byte, CompareFuncVar *CompareDataFunc, Use
632632 return cbFn(arg0, arg1, arg2)
633633 }
634634 CompareFuncVarRef = purego.NewCallback(fcb)
635- SaveCallback(CompareFuncVarPtr, CompareFuncVarRef)
635+ SaveCallbackWithClosure(CompareFuncVarPtr, CompareFuncVarRef, CompareFuncVar)
636636 }
637637 }
638638
@@ -705,7 +705,7 @@ func PtrArrayFindWithEqualFunc(HaystackVar []uintptr, NeedleVar uintptr, EqualFu
705705 return cbFn(arg0, arg1)
706706 }
707707 EqualFuncVarRef = purego.NewCallback(fcb)
708- SaveCallback(EqualFuncVarPtr, EqualFuncVarRef)
708+ SaveCallbackWithClosure(EqualFuncVarPtr, EqualFuncVarRef, EqualFuncVar)
709709 }
710710 }
711711
@@ -746,7 +746,7 @@ func PtrArrayNewFromArray(DataVar []uintptr, LenVar uint, CopyFuncVar *CopyFunc,
746746 return cbFn(arg0, arg1)
747747 }
748748 CopyFuncVarRef = purego.NewCallback(fcb)
749- SaveCallback(CopyFuncVarPtr, CopyFuncVarRef)
749+ SaveCallbackWithClosure(CopyFuncVarPtr, CopyFuncVarRef, CopyFuncVar)
750750 }
751751 }
752752
@@ -761,7 +761,7 @@ func PtrArrayNewFromArray(DataVar []uintptr, LenVar uint, CopyFuncVar *CopyFunc,
761761 cbFn(arg0)
762762 }
763763 ElementFreeFuncVarRef = purego.NewCallback(fcb)
764- SaveCallback(ElementFreeFuncVarPtr, ElementFreeFuncVarRef)
764+ SaveCallbackWithClosure(ElementFreeFuncVarPtr, ElementFreeFuncVarRef, ElementFreeFuncVar)
765765 }
766766 }
767767
@@ -798,7 +798,7 @@ func PtrArrayNewFromNullTerminatedArray(DataVar []uintptr, CopyFuncVar *CopyFunc
798798 return cbFn(arg0, arg1)
799799 }
800800 CopyFuncVarRef = purego.NewCallback(fcb)
801- SaveCallback(CopyFuncVarPtr, CopyFuncVarRef)
801+ SaveCallbackWithClosure(CopyFuncVarPtr, CopyFuncVarRef, CopyFuncVar)
802802 }
803803 }
804804
@@ -813,7 +813,7 @@ func PtrArrayNewFromNullTerminatedArray(DataVar []uintptr, CopyFuncVar *CopyFunc
813813 cbFn(arg0)
814814 }
815815 ElementFreeFuncVarRef = purego.NewCallback(fcb)
816- SaveCallback(ElementFreeFuncVarPtr, ElementFreeFuncVarRef)
816+ SaveCallbackWithClosure(ElementFreeFuncVarPtr, ElementFreeFuncVarRef, ElementFreeFuncVar)
817817 }
818818 }
819819
@@ -853,7 +853,7 @@ func PtrArrayNewTake(DataVar []uintptr, LenVar uint, ElementFreeFuncVar *Destroy
853853 cbFn(arg0)
854854 }
855855 ElementFreeFuncVarRef = purego.NewCallback(fcb)
856- SaveCallback(ElementFreeFuncVarPtr, ElementFreeFuncVarRef)
856+ SaveCallbackWithClosure(ElementFreeFuncVarPtr, ElementFreeFuncVarRef, ElementFreeFuncVar)
857857 }
858858 }
859859
@@ -896,7 +896,7 @@ func PtrArrayNewTakeNullTerminated(DataVar []uintptr, ElementFreeFuncVar *Destro
896896 cbFn(arg0)
897897 }
898898 ElementFreeFuncVarRef = purego.NewCallback(fcb)
899- SaveCallback(ElementFreeFuncVarPtr, ElementFreeFuncVarRef)
899+ SaveCallbackWithClosure(ElementFreeFuncVarPtr, ElementFreeFuncVarRef, ElementFreeFuncVar)
900900 }
901901 }
902902
M v4/glib/gasyncqueue.go +5 -5
@@ -159,7 +159,7 @@ func (x *AsyncQueue) PushSorted(DataVar uintptr, FuncVar *CompareDataFunc, UserD
159159 return cbFn(arg0, arg1, arg2)
160160 }
161161 FuncVarRef = purego.NewCallback(fcb)
162- SaveCallback(FuncVarPtr, FuncVarRef)
162+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
163163 }
164164 }
165165
@@ -197,7 +197,7 @@ func (x *AsyncQueue) PushSortedUnlocked(DataVar uintptr, FuncVar *CompareDataFun
197197 return cbFn(arg0, arg1, arg2)
198198 }
199199 FuncVarRef = purego.NewCallback(fcb)
200- SaveCallback(FuncVarPtr, FuncVarRef)
200+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
201201 }
202202 }
203203
@@ -299,7 +299,7 @@ func (x *AsyncQueue) Sort(FuncVar *CompareDataFunc, UserDataVar uintptr) {
299299 return cbFn(arg0, arg1, arg2)
300300 }
301301 FuncVarRef = purego.NewCallback(fcb)
302- SaveCallback(FuncVarPtr, FuncVarRef)
302+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
303303 }
304304 }
305305
@@ -331,7 +331,7 @@ func (x *AsyncQueue) SortUnlocked(FuncVar *CompareDataFunc, UserDataVar uintptr)
331331 return cbFn(arg0, arg1, arg2)
332332 }
333333 FuncVarRef = purego.NewCallback(fcb)
334- SaveCallback(FuncVarPtr, FuncVarRef)
334+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
335335 }
336336 }
337337
@@ -492,7 +492,7 @@ func AsyncQueueNewFull(ItemFreeFuncVar *DestroyNotify) *AsyncQueue {
492492 cbFn(arg0)
493493 }
494494 ItemFreeFuncVarRef = purego.NewCallback(fcb)
495- SaveCallback(ItemFreeFuncVarPtr, ItemFreeFuncVarRef)
495+ SaveCallbackWithClosure(ItemFreeFuncVarPtr, ItemFreeFuncVarRef, ItemFreeFuncVar)
496496 }
497497 }
498498
M v4/glib/gcache.go +2 -2
@@ -92,7 +92,7 @@ func (x *Cache) KeyForeach(FuncVar *HFunc, UserDataVar uintptr) {
9292 cbFn(arg0, arg1, arg2)
9393 }
9494 FuncVarRef = purego.NewCallback(fcb)
95- SaveCallback(FuncVarPtr, FuncVarRef)
95+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
9696 }
9797 }
9898
@@ -127,7 +127,7 @@ func (x *Cache) ValueForeach(FuncVar *HFunc, UserDataVar uintptr) {
127127 cbFn(arg0, arg1, arg2)
128128 }
129129 FuncVarRef = purego.NewCallback(fcb)
130- SaveCallback(FuncVarPtr, FuncVarRef)
130+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
131131 }
132132 }
133133
M v4/glib/gcompletion.go +1 -1
@@ -144,7 +144,7 @@ func (x *Completion) SetCompare(StrncmpFuncVar *CompletionStrncmpFunc) {
144144 return cbFn(arg0, arg1, arg2)
145145 }
146146 StrncmpFuncVarRef = purego.NewCallback(fcb)
147- SaveCallback(StrncmpFuncVarPtr, StrncmpFuncVarRef)
147+ SaveCallbackWithClosure(StrncmpFuncVarPtr, StrncmpFuncVarRef, StrncmpFuncVar)
148148 }
149149 }
150150
M v4/glib/gdataset.go +6 -6
@@ -74,7 +74,7 @@ func DatalistForeach(DatalistVar **Data, FuncVar *DataForeachFunc, UserDataVar u
7474 cbFn(arg0, arg1, arg2)
7575 }
7676 FuncVarRef = purego.NewCallback(fcb)
77- SaveCallback(FuncVarPtr, FuncVarRef)
77+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
7878 }
7979 }
8080
@@ -132,7 +132,7 @@ func DatalistIdDupData(DatalistVar **Data, KeyIdVar Quark, DupFuncVar *Duplicate
132132 return cbFn(arg0, arg1)
133133 }
134134 DupFuncVarRef = purego.NewCallback(fcb)
135- SaveCallback(DupFuncVarPtr, DupFuncVarRef)
135+ SaveCallbackWithClosure(DupFuncVarPtr, DupFuncVarRef, DupFuncVar)
136136 }
137137 }
138138
@@ -205,7 +205,7 @@ func DatalistIdReplaceData(DatalistVar **Data, KeyIdVar Quark, OldvalVar uintptr
205205 cbFn(arg0)
206206 }
207207 DestroyVarRef = purego.NewCallback(fcb)
208- SaveCallback(DestroyVarPtr, DestroyVarRef)
208+ SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
209209 }
210210 }
211211
@@ -233,7 +233,7 @@ func DatalistIdSetDataFull(DatalistVar **Data, KeyIdVar Quark, DataVar uintptr,
233233 cbFn(arg0)
234234 }
235235 DestroyFuncVarRef = purego.NewCallback(fcb)
236- SaveCallback(DestroyFuncVarPtr, DestroyFuncVarRef)
236+ SaveCallbackWithClosure(DestroyFuncVarPtr, DestroyFuncVarRef, DestroyFuncVar)
237237 }
238238 }
239239
@@ -307,7 +307,7 @@ func DatasetForeach(DatasetLocationVar uintptr, FuncVar *DataForeachFunc, UserDa
307307 cbFn(arg0, arg1, arg2)
308308 }
309309 FuncVarRef = purego.NewCallback(fcb)
310- SaveCallback(FuncVarPtr, FuncVarRef)
310+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
311311 }
312312 }
313313
@@ -355,7 +355,7 @@ func DatasetIdSetDataFull(DatasetLocationVar uintptr, KeyIdVar Quark, DataVar ui
355355 cbFn(arg0)
356356 }
357357 DestroyFuncVarRef = purego.NewCallback(fcb)
358- SaveCallback(DestroyFuncVarPtr, DestroyFuncVarRef)
358+ SaveCallbackWithClosure(DestroyFuncVarPtr, DestroyFuncVarRef, DestroyFuncVar)
359359 }
360360 }
361361
M v4/glib/gerror.go +6 -6
@@ -166,7 +166,7 @@ func ErrorDomainRegister(ErrorTypeNameVar string, ErrorTypePrivateSizeVar uint,
166166 cbFn(arg0)
167167 }
168168 ErrorTypeInitVarRef = purego.NewCallback(fcb)
169- SaveCallback(ErrorTypeInitVarPtr, ErrorTypeInitVarRef)
169+ SaveCallbackWithClosure(ErrorTypeInitVarPtr, ErrorTypeInitVarRef, ErrorTypeInitVar)
170170 }
171171 }
172172
@@ -181,7 +181,7 @@ func ErrorDomainRegister(ErrorTypeNameVar string, ErrorTypePrivateSizeVar uint,
181181 cbFn(arg0, arg1)
182182 }
183183 ErrorTypeCopyVarRef = purego.NewCallback(fcb)
184- SaveCallback(ErrorTypeCopyVarPtr, ErrorTypeCopyVarRef)
184+ SaveCallbackWithClosure(ErrorTypeCopyVarPtr, ErrorTypeCopyVarRef, ErrorTypeCopyVar)
185185 }
186186 }
187187
@@ -196,7 +196,7 @@ func ErrorDomainRegister(ErrorTypeNameVar string, ErrorTypePrivateSizeVar uint,
196196 cbFn(arg0)
197197 }
198198 ErrorTypeClearVarRef = purego.NewCallback(fcb)
199- SaveCallback(ErrorTypeClearVarPtr, ErrorTypeClearVarRef)
199+ SaveCallbackWithClosure(ErrorTypeClearVarPtr, ErrorTypeClearVarRef, ErrorTypeClearVar)
200200 }
201201 }
202202
@@ -237,7 +237,7 @@ func ErrorDomainRegisterStatic(ErrorTypeNameVar string, ErrorTypePrivateSizeVar
237237 cbFn(arg0)
238238 }
239239 ErrorTypeInitVarRef = purego.NewCallback(fcb)
240- SaveCallback(ErrorTypeInitVarPtr, ErrorTypeInitVarRef)
240+ SaveCallbackWithClosure(ErrorTypeInitVarPtr, ErrorTypeInitVarRef, ErrorTypeInitVar)
241241 }
242242 }
243243
@@ -252,7 +252,7 @@ func ErrorDomainRegisterStatic(ErrorTypeNameVar string, ErrorTypePrivateSizeVar
252252 cbFn(arg0, arg1)
253253 }
254254 ErrorTypeCopyVarRef = purego.NewCallback(fcb)
255- SaveCallback(ErrorTypeCopyVarPtr, ErrorTypeCopyVarRef)
255+ SaveCallbackWithClosure(ErrorTypeCopyVarPtr, ErrorTypeCopyVarRef, ErrorTypeCopyVar)
256256 }
257257 }
258258
@@ -267,7 +267,7 @@ func ErrorDomainRegisterStatic(ErrorTypeNameVar string, ErrorTypePrivateSizeVar
267267 cbFn(arg0)
268268 }
269269 ErrorTypeClearVarRef = purego.NewCallback(fcb)
270- SaveCallback(ErrorTypeClearVarPtr, ErrorTypeClearVarRef)
270+ SaveCallbackWithClosure(ErrorTypeClearVarPtr, ErrorTypeClearVarRef, ErrorTypeClearVar)
271271 }
272272 }
273273
M v4/glib/ghash.go +4 -4
@@ -305,7 +305,7 @@ func HashTableFind(HashTableVar *HashTable, PredicateVar *HRFunc, UserDataVar ui
305305 return cbFn(arg0, arg1, arg2)
306306 }
307307 PredicateVarRef = purego.NewCallback(fcb)
308- SaveCallback(PredicateVarPtr, PredicateVarRef)
308+ SaveCallbackWithClosure(PredicateVarPtr, PredicateVarRef, PredicateVar)
309309 }
310310 }
311311
@@ -341,7 +341,7 @@ func HashTableForeach(HashTableVar *HashTable, FuncVar *HFunc, UserDataVar uintp
341341 cbFn(arg0, arg1, arg2)
342342 }
343343 FuncVarRef = purego.NewCallback(fcb)
344- SaveCallback(FuncVarPtr, FuncVarRef)
344+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
345345 }
346346 }
347347
@@ -372,7 +372,7 @@ func HashTableForeachRemove(HashTableVar *HashTable, FuncVar *HRFunc, UserDataVa
372372 return cbFn(arg0, arg1, arg2)
373373 }
374374 FuncVarRef = purego.NewCallback(fcb)
375- SaveCallback(FuncVarPtr, FuncVarRef)
375+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
376376 }
377377 }
378378
@@ -403,7 +403,7 @@ func HashTableForeachSteal(HashTableVar *HashTable, FuncVar *HRFunc, UserDataVar
403403 return cbFn(arg0, arg1, arg2)
404404 }
405405 FuncVarRef = purego.NewCallback(fcb)
406- SaveCallback(FuncVarPtr, FuncVarRef)
406+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
407407 }
408408 }
409409
M v4/glib/ghook.go +3 -3
@@ -147,7 +147,7 @@ func (x *HookList) Marshal(MayRecurseVar bool, MarshallerVar *HookMarshaller, Ma
147147 cbFn(arg0, arg1)
148148 }
149149 MarshallerVarRef = purego.NewCallback(fcb)
150- SaveCallback(MarshallerVarPtr, MarshallerVarRef)
150+ SaveCallbackWithClosure(MarshallerVarPtr, MarshallerVarRef, MarshallerVar)
151151 }
152152 }
153153
@@ -172,7 +172,7 @@ func (x *HookList) MarshalCheck(MayRecurseVar bool, MarshallerVar *HookCheckMars
172172 return cbFn(arg0, arg1)
173173 }
174174 MarshallerVarRef = purego.NewCallback(fcb)
175- SaveCallback(MarshallerVarPtr, MarshallerVarRef)
175+ SaveCallbackWithClosure(MarshallerVarPtr, MarshallerVarRef, MarshallerVar)
176176 }
177177 }
178178
@@ -257,7 +257,7 @@ func HookInsertSorted(HookListVar *HookList, HookVar *Hook, FuncVar *HookCompare
257257 return cbFn(arg0, arg1)
258258 }
259259 FuncVarRef = purego.NewCallback(fcb)
260- SaveCallback(FuncVarPtr, FuncVarRef)
260+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
261261 }
262262 }
263263
M v4/glib/giochannel.go +3 -3
@@ -1064,7 +1064,7 @@ func IoAddWatch(ChannelVar *IOChannel, ConditionVar IOCondition, FuncVar *IOFunc
10641064 return cbFn(arg0, arg1, arg2)
10651065 }
10661066 FuncVarRef = purego.NewCallback(fcb)
1067- SaveCallback(FuncVarPtr, FuncVarRef)
1067+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
10681068 }
10691069 }
10701070
@@ -1094,7 +1094,7 @@ func IoAddWatchFull(ChannelVar *IOChannel, PriorityVar int, ConditionVar IOCondi
10941094 return cbFn(arg0, arg1, arg2)
10951095 }
10961096 FuncVarRef = purego.NewCallback(fcb)
1097- SaveCallback(FuncVarPtr, FuncVarRef)
1097+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
10981098 }
10991099 }
11001100
@@ -1109,7 +1109,7 @@ func IoAddWatchFull(ChannelVar *IOChannel, PriorityVar int, ConditionVar IOCondi
11091109 cbFn(arg0)
11101110 }
11111111 NotifyVarRef = purego.NewCallback(fcb)
1112- SaveCallback(NotifyVarPtr, NotifyVarRef)
1112+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
11131113 }
11141114 }
11151115
M v4/glib/glib-unix.go +6 -6
@@ -112,7 +112,7 @@ func UnixFdAdd(FdVar int, ConditionVar IOCondition, FunctionVar *UnixFDSourceFun
112112 return cbFn(arg0, arg1, arg2)
113113 }
114114 FunctionVarRef = purego.NewCallback(fcb)
115- SaveCallback(FunctionVarPtr, FunctionVarRef)
115+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
116116 }
117117 }
118118
@@ -142,7 +142,7 @@ func UnixFdAddFull(PriorityVar int, FdVar int, ConditionVar IOCondition, Functio
142142 return cbFn(arg0, arg1, arg2)
143143 }
144144 FunctionVarRef = purego.NewCallback(fcb)
145- SaveCallback(FunctionVarPtr, FunctionVarRef)
145+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
146146 }
147147 }
148148
@@ -157,7 +157,7 @@ func UnixFdAddFull(PriorityVar int, FdVar int, ConditionVar IOCondition, Functio
157157 cbFn(arg0)
158158 }
159159 NotifyVarRef = purego.NewCallback(fcb)
160- SaveCallback(NotifyVarPtr, NotifyVarRef)
160+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
161161 }
162162 }
163163
@@ -275,7 +275,7 @@ func UnixSignalAdd(SignumVar int, HandlerVar *SourceFunc, UserDataVar uintptr) u
275275 return cbFn(arg0)
276276 }
277277 HandlerVarRef = purego.NewCallback(fcb)
278- SaveCallback(HandlerVarPtr, HandlerVarRef)
278+ SaveCallbackWithClosure(HandlerVarPtr, HandlerVarRef, HandlerVar)
279279 }
280280 }
281281
@@ -302,7 +302,7 @@ func UnixSignalAddFull(PriorityVar int, SignumVar int, HandlerVar *SourceFunc, U
302302 return cbFn(arg0)
303303 }
304304 HandlerVarRef = purego.NewCallback(fcb)
305- SaveCallback(HandlerVarPtr, HandlerVarRef)
305+ SaveCallbackWithClosure(HandlerVarPtr, HandlerVarRef, HandlerVar)
306306 }
307307 }
308308
@@ -317,7 +317,7 @@ func UnixSignalAddFull(PriorityVar int, SignumVar int, HandlerVar *SourceFunc, U
317317 cbFn(arg0)
318318 }
319319 NotifyVarRef = purego.NewCallback(fcb)
320- SaveCallback(NotifyVarPtr, NotifyVarRef)
320+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
321321 }
322322 }
323323
M v4/glib/glist.go +1 -1
@@ -42,7 +42,7 @@ func ClearList(ListPtrVar **List, DestroyVar *DestroyNotify) {
4242 cbFn(arg0)
4343 }
4444 DestroyVarRef = purego.NewCallback(fcb)
45- SaveCallback(DestroyVarPtr, DestroyVarRef)
45+ SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
4646 }
4747 }
4848
M v4/glib/gmain.go +23 -23
@@ -298,7 +298,7 @@ func (x *MainContext) Invoke(FunctionVar *SourceFunc, DataVar uintptr) {
298298 return cbFn(arg0)
299299 }
300300 FunctionVarRef = purego.NewCallback(fcb)
301- SaveCallback(FunctionVarPtr, FunctionVarRef)
301+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
302302 }
303303 }
304304
@@ -331,7 +331,7 @@ func (x *MainContext) InvokeFull(PriorityVar int, FunctionVar *SourceFunc, DataV
331331 return cbFn(arg0)
332332 }
333333 FunctionVarRef = purego.NewCallback(fcb)
334- SaveCallback(FunctionVarPtr, FunctionVarRef)
334+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
335335 }
336336 }
337337
@@ -346,7 +346,7 @@ func (x *MainContext) InvokeFull(PriorityVar int, FunctionVar *SourceFunc, DataV
346346 cbFn(arg0)
347347 }
348348 NotifyVarRef = purego.NewCallback(fcb)
349- SaveCallback(NotifyVarPtr, NotifyVarRef)
349+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
350350 }
351351 }
352352
@@ -601,7 +601,7 @@ func (x *MainContext) SetPollFunc(FuncVar *PollFunc) {
601601 return cbFn(arg0, arg1, arg2)
602602 }
603603 FuncVarRef = purego.NewCallback(fcb)
604- SaveCallback(FuncVarPtr, FuncVarRef)
604+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
605605 }
606606 }
607607
@@ -1301,7 +1301,7 @@ func (x *Source) SetCallback(FuncVar *SourceFunc, DataVar uintptr, NotifyVar *De
13011301 return cbFn(arg0)
13021302 }
13031303 FuncVarRef = purego.NewCallback(fcb)
1304- SaveCallback(FuncVarPtr, FuncVarRef)
1304+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
13051305 }
13061306 }
13071307
@@ -1316,7 +1316,7 @@ func (x *Source) SetCallback(FuncVar *SourceFunc, DataVar uintptr, NotifyVar *De
13161316 cbFn(arg0)
13171317 }
13181318 NotifyVarRef = purego.NewCallback(fcb)
1319- SaveCallback(NotifyVarPtr, NotifyVarRef)
1319+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
13201320 }
13211321 }
13221322
@@ -1392,7 +1392,7 @@ func (x *Source) SetDisposeFunction(DisposeVar *SourceDisposeFunc) {
13921392 cbFn(arg0)
13931393 }
13941394 DisposeVarRef = purego.NewCallback(fcb)
1395- SaveCallback(DisposeVarPtr, DisposeVarRef)
1395+ SaveCallbackWithClosure(DisposeVarPtr, DisposeVarRef, DisposeVar)
13961396 }
13971397 }
13981398
@@ -1745,7 +1745,7 @@ func ChildWatchAdd(PidVar Pid, FunctionVar *ChildWatchFunc, DataVar uintptr) uin
17451745 cbFn(arg0, arg1, arg2)
17461746 }
17471747 FunctionVarRef = purego.NewCallback(fcb)
1748- SaveCallback(FunctionVarPtr, FunctionVarRef)
1748+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
17491749 }
17501750 }
17511751
@@ -1794,7 +1794,7 @@ func ChildWatchAddFull(PriorityVar int, PidVar Pid, FunctionVar *ChildWatchFunc,
17941794 cbFn(arg0, arg1, arg2)
17951795 }
17961796 FunctionVarRef = purego.NewCallback(fcb)
1797- SaveCallback(FunctionVarPtr, FunctionVarRef)
1797+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
17981798 }
17991799 }
18001800
@@ -1809,7 +1809,7 @@ func ChildWatchAddFull(PriorityVar int, PidVar Pid, FunctionVar *ChildWatchFunc,
18091809 cbFn(arg0)
18101810 }
18111811 NotifyVarRef = purego.NewCallback(fcb)
1812- SaveCallback(NotifyVarPtr, NotifyVarRef)
1812+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
18131813 }
18141814 }
18151815
@@ -1892,7 +1892,7 @@ func ClearHandleId(TagPtrVar uint, ClearFuncVar *ClearHandleFunc) {
18921892 cbFn(arg0)
18931893 }
18941894 ClearFuncVarRef = purego.NewCallback(fcb)
1895- SaveCallback(ClearFuncVarPtr, ClearFuncVarRef)
1895+ SaveCallbackWithClosure(ClearFuncVarPtr, ClearFuncVarRef, ClearFuncVar)
18961896 }
18971897 }
18981898
@@ -1982,7 +1982,7 @@ func IdleAdd(FunctionVar *SourceFunc, DataVar uintptr) uint {
19821982 return cbFn(arg0)
19831983 }
19841984 FunctionVarRef = purego.NewCallback(fcb)
1985- SaveCallback(FunctionVarPtr, FunctionVarRef)
1985+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
19861986 }
19871987 }
19881988
@@ -2020,7 +2020,7 @@ func IdleAddFull(PriorityVar int, FunctionVar *SourceFunc, DataVar uintptr, Noti
20202020 return cbFn(arg0)
20212021 }
20222022 FunctionVarRef = purego.NewCallback(fcb)
2023- SaveCallback(FunctionVarPtr, FunctionVarRef)
2023+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
20242024 }
20252025 }
20262026
@@ -2035,7 +2035,7 @@ func IdleAddFull(PriorityVar int, FunctionVar *SourceFunc, DataVar uintptr, Noti
20352035 cbFn(arg0)
20362036 }
20372037 NotifyVarRef = purego.NewCallback(fcb)
2038- SaveCallback(NotifyVarPtr, NotifyVarRef)
2038+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
20392039 }
20402040 }
20412041
@@ -2069,7 +2069,7 @@ func IdleAddOnce(FunctionVar *SourceOnceFunc, DataVar uintptr) uint {
20692069 cbFn(arg0)
20702070 }
20712071 FunctionVarRef = purego.NewCallback(fcb)
2072- SaveCallback(FunctionVarPtr, FunctionVarRef)
2072+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
20732073 }
20742074 }
20752075
@@ -2418,7 +2418,7 @@ func TimeoutAdd(IntervalVar uint, FunctionVar *SourceFunc, DataVar uintptr) uint
24182418 return cbFn(arg0)
24192419 }
24202420 FunctionVarRef = purego.NewCallback(fcb)
2421- SaveCallback(FunctionVarPtr, FunctionVarRef)
2421+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
24222422 }
24232423 }
24242424
@@ -2470,7 +2470,7 @@ func TimeoutAddFull(PriorityVar int, IntervalVar uint, FunctionVar *SourceFunc,
24702470 return cbFn(arg0)
24712471 }
24722472 FunctionVarRef = purego.NewCallback(fcb)
2473- SaveCallback(FunctionVarPtr, FunctionVarRef)
2473+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
24742474 }
24752475 }
24762476
@@ -2485,7 +2485,7 @@ func TimeoutAddFull(PriorityVar int, IntervalVar uint, FunctionVar *SourceFunc,
24852485 cbFn(arg0)
24862486 }
24872487 NotifyVarRef = purego.NewCallback(fcb)
2488- SaveCallback(NotifyVarPtr, NotifyVarRef)
2488+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
24892489 }
24902490 }
24912491
@@ -2516,7 +2516,7 @@ func TimeoutAddOnce(IntervalVar uint, FunctionVar *SourceOnceFunc, DataVar uintp
25162516 cbFn(arg0)
25172517 }
25182518 FunctionVarRef = purego.NewCallback(fcb)
2519- SaveCallback(FunctionVarPtr, FunctionVarRef)
2519+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
25202520 }
25212521 }
25222522
@@ -2563,7 +2563,7 @@ func TimeoutAddSeconds(IntervalVar uint, FunctionVar *SourceFunc, DataVar uintpt
25632563 return cbFn(arg0)
25642564 }
25652565 FunctionVarRef = purego.NewCallback(fcb)
2566- SaveCallback(FunctionVarPtr, FunctionVarRef)
2566+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
25672567 }
25682568 }
25692569
@@ -2627,7 +2627,7 @@ func TimeoutAddSecondsFull(PriorityVar int, IntervalVar uint, FunctionVar *Sourc
26272627 return cbFn(arg0)
26282628 }
26292629 FunctionVarRef = purego.NewCallback(fcb)
2630- SaveCallback(FunctionVarPtr, FunctionVarRef)
2630+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
26312631 }
26322632 }
26332633
@@ -2642,7 +2642,7 @@ func TimeoutAddSecondsFull(PriorityVar int, IntervalVar uint, FunctionVar *Sourc
26422642 cbFn(arg0)
26432643 }
26442644 NotifyVarRef = purego.NewCallback(fcb)
2645- SaveCallback(NotifyVarPtr, NotifyVarRef)
2645+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
26462646 }
26472647 }
26482648
@@ -2668,7 +2668,7 @@ func TimeoutAddSecondsOnce(IntervalVar uint, FunctionVar *SourceOnceFunc, DataVa
26682668 cbFn(arg0)
26692669 }
26702670 FunctionVarRef = purego.NewCallback(fcb)
2671- SaveCallback(FunctionVarPtr, FunctionVarRef)
2671+ SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
26722672 }
26732673 }
26742674
M v4/glib/gmarkup.go +1 -1
@@ -49,7 +49,7 @@ func NewMarkupParseContext(ParserVar *MarkupParser, FlagsVar MarkupParseFlags, U
4949 cbFn(arg0)
5050 }
5151 UserDataDnotifyVarRef = purego.NewCallback(fcb)
52- SaveCallback(UserDataDnotifyVarPtr, UserDataDnotifyVarRef)
52+ SaveCallbackWithClosure(UserDataDnotifyVarPtr, UserDataDnotifyVarRef, UserDataDnotifyVar)
5353 }
5454 }
5555
M v4/glib/gmem.go +1 -1
@@ -292,7 +292,7 @@ func ClearPointer(PpVar uintptr, DestroyVar *DestroyNotify) {
292292 cbFn(arg0)
293293 }
294294 DestroyVarRef = purego.NewCallback(fcb)
295- SaveCallback(DestroyVarPtr, DestroyVarRef)
295+ SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
296296 }
297297 }
298298
M v4/glib/gmessages.go +8 -8
@@ -366,7 +366,7 @@ func LogSetDefaultHandler(LogFuncVar *LogFunc, UserDataVar uintptr) uintptr {
366366 cbFn(arg0, arg1, arg2, arg3)
367367 }
368368 LogFuncVarRef = purego.NewCallback(fcb)
369- SaveCallback(LogFuncVarPtr, LogFuncVarRef)
369+ SaveCallbackWithClosure(LogFuncVarPtr, LogFuncVarRef, LogFuncVar)
370370 }
371371 }
372372
@@ -456,7 +456,7 @@ func LogSetHandler(LogDomainVar *string, LogLevelsVar LogLevelFlags, LogFuncVar
456456 cbFn(arg0, arg1, arg2, arg3)
457457 }
458458 LogFuncVarRef = purego.NewCallback(fcb)
459- SaveCallback(LogFuncVarPtr, LogFuncVarRef)
459+ SaveCallbackWithClosure(LogFuncVarPtr, LogFuncVarRef, LogFuncVar)
460460 }
461461 }
462462
@@ -491,7 +491,7 @@ func LogSetHandlerFull(LogDomainVar *string, LogLevelsVar LogLevelFlags, LogFunc
491491 cbFn(arg0, arg1, arg2, arg3)
492492 }
493493 LogFuncVarRef = purego.NewCallback(fcb)
494- SaveCallback(LogFuncVarPtr, LogFuncVarRef)
494+ SaveCallbackWithClosure(LogFuncVarPtr, LogFuncVarRef, LogFuncVar)
495495 }
496496 }
497497
@@ -506,7 +506,7 @@ func LogSetHandlerFull(LogDomainVar *string, LogLevelsVar LogLevelFlags, LogFunc
506506 cbFn(arg0)
507507 }
508508 DestroyVarRef = purego.NewCallback(fcb)
509- SaveCallback(DestroyVarPtr, DestroyVarRef)
509+ SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
510510 }
511511 }
512512
@@ -545,7 +545,7 @@ func LogSetWriterFunc(FuncVar *LogWriterFunc, UserDataVar uintptr, UserDataFreeV
545545 return cbFn(arg0, arg1, arg2, arg3)
546546 }
547547 FuncVarRef = purego.NewCallback(fcb)
548- SaveCallback(FuncVarPtr, FuncVarRef)
548+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
549549 }
550550 }
551551
@@ -560,7 +560,7 @@ func LogSetWriterFunc(FuncVar *LogWriterFunc, UserDataVar uintptr, UserDataFreeV
560560 cbFn(arg0)
561561 }
562562 UserDataFreeVarRef = purego.NewCallback(fcb)
563- SaveCallback(UserDataFreeVarPtr, UserDataFreeVarRef)
563+ SaveCallbackWithClosure(UserDataFreeVarPtr, UserDataFreeVarRef, UserDataFreeVar)
564564 }
565565 }
566566
@@ -1085,7 +1085,7 @@ func SetPrintHandler(FuncVar *PrintFunc) uintptr {
10851085 cbFn(arg0)
10861086 }
10871087 FuncVarRef = purego.NewCallback(fcb)
1088- SaveCallback(FuncVarPtr, FuncVarRef)
1088+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
10891089 }
10901090 }
10911091
@@ -1124,7 +1124,7 @@ func SetPrinterrHandler(FuncVar *PrintFunc) uintptr {
11241124 cbFn(arg0)
11251125 }
11261126 FuncVarRef = purego.NewCallback(fcb)
1127- SaveCallback(FuncVarPtr, FuncVarRef)
1127+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
11281128 }
11291129 }
11301130
M v4/glib/gnode.go +3 -3
@@ -80,7 +80,7 @@ func (x *Node) ChildrenForeach(FlagsVar TraverseFlags, FuncVar *NodeForeachFunc,
8080 cbFn(arg0, arg1)
8181 }
8282 FuncVarRef = purego.NewCallback(fcb)
83- SaveCallback(FuncVarPtr, FuncVarRef)
83+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
8484 }
8585 }
8686
@@ -115,7 +115,7 @@ func (x *Node) CopyDeep(CopyFuncVar *CopyFunc, DataVar uintptr) *Node {
115115 return cbFn(arg0, arg1)
116116 }
117117 CopyFuncVarRef = purego.NewCallback(fcb)
118- SaveCallback(CopyFuncVarPtr, CopyFuncVarRef)
118+ SaveCallbackWithClosure(CopyFuncVarPtr, CopyFuncVarRef, CopyFuncVar)
119119 }
120120 }
121121
@@ -336,7 +336,7 @@ func (x *Node) Traverse(OrderVar TraverseType, FlagsVar TraverseFlags, MaxDepthV
336336 return cbFn(arg0, arg1)
337337 }
338338 FuncVarRef = purego.NewCallback(fcb)
339- SaveCallback(FuncVarPtr, FuncVarRef)
339+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
340340 }
341341 }
342342
M v4/glib/goption.go +8 -8
@@ -347,7 +347,7 @@ func (x *OptionContext) SetTranslateFunc(FuncVar *TranslateFunc, DataVar uintptr
347347 return cbFn(arg0, arg1)
348348 }
349349 FuncVarRef = purego.NewCallback(fcb)
350- SaveCallback(FuncVarPtr, FuncVarRef)
350+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
351351 }
352352 }
353353
@@ -362,7 +362,7 @@ func (x *OptionContext) SetTranslateFunc(FuncVar *TranslateFunc, DataVar uintptr
362362 cbFn(arg0)
363363 }
364364 DestroyNotifyVarRef = purego.NewCallback(fcb)
365- SaveCallback(DestroyNotifyVarPtr, DestroyNotifyVarRef)
365+ SaveCallbackWithClosure(DestroyNotifyVarPtr, DestroyNotifyVarRef, DestroyNotifyVar)
366366 }
367367 }
368368
@@ -467,7 +467,7 @@ func NewOptionGroup(NameVar string, DescriptionVar string, HelpDescriptionVar st
467467 cbFn(arg0)
468468 }
469469 DestroyVarRef = purego.NewCallback(fcb)
470- SaveCallback(DestroyVarPtr, DestroyVarRef)
470+ SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
471471 }
472472 }
473473
@@ -525,7 +525,7 @@ func (x *OptionGroup) SetErrorHook(ErrorFuncVar *OptionErrorFunc) {
525525 cbFn(arg0, arg1, arg2, arg3)
526526 }
527527 ErrorFuncVarRef = purego.NewCallback(fcb)
528- SaveCallback(ErrorFuncVarPtr, ErrorFuncVarRef)
528+ SaveCallbackWithClosure(ErrorFuncVarPtr, ErrorFuncVarRef, ErrorFuncVar)
529529 }
530530 }
531531
@@ -555,7 +555,7 @@ func (x *OptionGroup) SetParseHooks(PreParseFuncVar *OptionParseFunc, PostParseF
555555 return cbFn(arg0, arg1, arg2, arg3)
556556 }
557557 PreParseFuncVarRef = purego.NewCallback(fcb)
558- SaveCallback(PreParseFuncVarPtr, PreParseFuncVarRef)
558+ SaveCallbackWithClosure(PreParseFuncVarPtr, PreParseFuncVarRef, PreParseFuncVar)
559559 }
560560 }
561561
@@ -570,7 +570,7 @@ func (x *OptionGroup) SetParseHooks(PreParseFuncVar *OptionParseFunc, PostParseF
570570 return cbFn(arg0, arg1, arg2, arg3)
571571 }
572572 PostParseFuncVarRef = purego.NewCallback(fcb)
573- SaveCallback(PostParseFuncVarPtr, PostParseFuncVarRef)
573+ SaveCallbackWithClosure(PostParseFuncVarPtr, PostParseFuncVarRef, PostParseFuncVar)
574574 }
575575 }
576576
@@ -599,7 +599,7 @@ func (x *OptionGroup) SetTranslateFunc(FuncVar *TranslateFunc, DataVar uintptr,
599599 return cbFn(arg0, arg1)
600600 }
601601 FuncVarRef = purego.NewCallback(fcb)
602- SaveCallback(FuncVarPtr, FuncVarRef)
602+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
603603 }
604604 }
605605
@@ -614,7 +614,7 @@ func (x *OptionGroup) SetTranslateFunc(FuncVar *TranslateFunc, DataVar uintptr,
614614 cbFn(arg0)
615615 }
616616 DestroyNotifyVarRef = purego.NewCallback(fcb)
617- SaveCallback(DestroyNotifyVarPtr, DestroyNotifyVarRef)
617+ SaveCallbackWithClosure(DestroyNotifyVarPtr, DestroyNotifyVarRef, DestroyNotifyVar)
618618 }
619619 }
620620
M v4/glib/gqsort.go +2 -2
@@ -28,7 +28,7 @@ func QsortWithData(PbaseVar uintptr, TotalElemsVar int, SizeVar uint, CompareFun
2828 return cbFn(arg0, arg1, arg2)
2929 }
3030 CompareFuncVarRef = purego.NewCallback(fcb)
31- SaveCallback(CompareFuncVarPtr, CompareFuncVarRef)
31+ SaveCallbackWithClosure(CompareFuncVarPtr, CompareFuncVarRef, CompareFuncVar)
3232 }
3333 }
3434
@@ -56,7 +56,7 @@ func SortArray(ArrayVar []uintptr, NElementsVar uint, ElementSizeVar uint, Compa
5656 return cbFn(arg0, arg1, arg2)
5757 }
5858 CompareFuncVarRef = purego.NewCallback(fcb)
59- SaveCallback(CompareFuncVarPtr, CompareFuncVarRef)
59+ SaveCallbackWithClosure(CompareFuncVarPtr, CompareFuncVarRef, CompareFuncVar)
6060 }
6161 }
6262
M v4/glib/gqueue.go +6 -6
@@ -52,7 +52,7 @@ func (x *Queue) ClearFull(FreeFuncVar *DestroyNotify) {
5252 cbFn(arg0)
5353 }
5454 FreeFuncVarRef = purego.NewCallback(fcb)
55- SaveCallback(FreeFuncVarPtr, FreeFuncVarRef)
55+ SaveCallbackWithClosure(FreeFuncVarPtr, FreeFuncVarRef, FreeFuncVar)
5656 }
5757 }
5858
@@ -113,7 +113,7 @@ func (x *Queue) FindCustom(DataVar uintptr, FuncVar *CompareFunc) *List {
113113 return cbFn(arg0, arg1)
114114 }
115115 FuncVarRef = purego.NewCallback(fcb)
116- SaveCallback(FuncVarPtr, FuncVarRef)
116+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
117117 }
118118 }
119119
@@ -142,7 +142,7 @@ func (x *Queue) Foreach(FuncVar *Func, UserDataVar uintptr) {
142142 cbFn(arg0, arg1)
143143 }
144144 FuncVarRef = purego.NewCallback(fcb)
145- SaveCallback(FuncVarPtr, FuncVarRef)
145+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
146146 }
147147 }
148148
@@ -184,7 +184,7 @@ func (x *Queue) FreeFull(FreeFuncVar *DestroyNotify) {
184184 cbFn(arg0)
185185 }
186186 FreeFuncVarRef = purego.NewCallback(fcb)
187- SaveCallback(FreeFuncVarPtr, FreeFuncVarRef)
187+ SaveCallbackWithClosure(FreeFuncVarPtr, FreeFuncVarRef, FreeFuncVar)
188188 }
189189 }
190190
@@ -286,7 +286,7 @@ func (x *Queue) InsertSorted(DataVar uintptr, FuncVar *CompareDataFunc, UserData
286286 return cbFn(arg0, arg1, arg2)
287287 }
288288 FuncVarRef = purego.NewCallback(fcb)
289- SaveCallback(FuncVarPtr, FuncVarRef)
289+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
290290 }
291291 }
292292
@@ -533,7 +533,7 @@ func (x *Queue) Sort(CompareFuncVar *CompareDataFunc, UserDataVar uintptr) {
533533 return cbFn(arg0, arg1, arg2)
534534 }
535535 CompareFuncVarRef = purego.NewCallback(fcb)
536- SaveCallback(CompareFuncVarPtr, CompareFuncVarRef)
536+ SaveCallbackWithClosure(CompareFuncVarPtr, CompareFuncVarRef, CompareFuncVar)
537537 }
538538 }
539539
M v4/glib/grcbox.go +2 -2
@@ -113,7 +113,7 @@ func AtomicRcBoxReleaseFull(MemBlockVar uintptr, ClearFuncVar *DestroyNotify) {
113113 cbFn(arg0)
114114 }
115115 ClearFuncVarRef = purego.NewCallback(fcb)
116- SaveCallback(ClearFuncVarPtr, ClearFuncVarRef)
116+ SaveCallbackWithClosure(ClearFuncVarPtr, ClearFuncVarRef, ClearFuncVar)
117117 }
118118 }
119119
@@ -221,7 +221,7 @@ func RcBoxReleaseFull(MemBlockVar uintptr, ClearFuncVar *DestroyNotify) {
221221 cbFn(arg0)
222222 }
223223 ClearFuncVarRef = purego.NewCallback(fcb)
224- SaveCallback(ClearFuncVarPtr, ClearFuncVarRef)
224+ SaveCallbackWithClosure(ClearFuncVarPtr, ClearFuncVarRef, ClearFuncVar)
225225 }
226226 }
227227
M v4/glib/gregex.go +1 -1
@@ -1067,7 +1067,7 @@ func (x *Regex) ReplaceEval(StringVar []string, StringLenVar int, StartPositionV
10671067 return cbFn(arg0, arg1, arg2)
10681068 }
10691069 EvalVarRef = purego.NewCallback(fcb)
1070- SaveCallback(EvalVarPtr, EvalVarRef)
1070+ SaveCallbackWithClosure(EvalVarPtr, EvalVarRef, EvalVar)
10711071 }
10721072 }
10731073
M v4/glib/grel.go +2 -2
@@ -118,7 +118,7 @@ func (x *Relation) Index(FieldVar int, HashFuncVar *HashFunc, KeyEqualFuncVar *E
118118 return cbFn(arg0)
119119 }
120120 HashFuncVarRef = purego.NewCallback(fcb)
121- SaveCallback(HashFuncVarPtr, HashFuncVarRef)
121+ SaveCallbackWithClosure(HashFuncVarPtr, HashFuncVarRef, HashFuncVar)
122122 }
123123 }
124124
@@ -133,7 +133,7 @@ func (x *Relation) Index(FieldVar int, HashFuncVar *HashFunc, KeyEqualFuncVar *E
133133 return cbFn(arg0, arg1)
134134 }
135135 KeyEqualFuncVarRef = purego.NewCallback(fcb)
136- SaveCallback(KeyEqualFuncVarPtr, KeyEqualFuncVarRef)
136+ SaveCallbackWithClosure(KeyEqualFuncVarPtr, KeyEqualFuncVarRef, KeyEqualFuncVar)
137137 }
138138 }
139139
M v4/glib/gscanner.go +1 -1
@@ -242,7 +242,7 @@ func (x *Scanner) ScopeForeachSymbol(ScopeIdVar uint, FuncVar *HFunc, UserDataVa
242242 cbFn(arg0, arg1, arg2)
243243 }
244244 FuncVarRef = purego.NewCallback(fcb)
245- SaveCallback(FuncVarPtr, FuncVarRef)
245+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
246246 }
247247 }
248248
M v4/glib/gsequence.go +12 -12
@@ -51,7 +51,7 @@ func (x *Sequence) Foreach(FuncVar *Func, UserDataVar uintptr) {
5151 cbFn(arg0, arg1)
5252 }
5353 FuncVarRef = purego.NewCallback(fcb)
54- SaveCallback(FuncVarPtr, FuncVarRef)
54+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
5555 }
5656 }
5757
@@ -140,7 +140,7 @@ func (x *Sequence) InsertSorted(DataVar uintptr, CmpFuncVar *CompareDataFunc, Cm
140140 return cbFn(arg0, arg1, arg2)
141141 }
142142 CmpFuncVarRef = purego.NewCallback(fcb)
143- SaveCallback(CmpFuncVarPtr, CmpFuncVarRef)
143+ SaveCallbackWithClosure(CmpFuncVarPtr, CmpFuncVarRef, CmpFuncVar)
144144 }
145145 }
146146
@@ -176,7 +176,7 @@ func (x *Sequence) InsertSortedIter(DataVar uintptr, IterCmpVar *SequenceIterCom
176176 return cbFn(arg0, arg1, arg2)
177177 }
178178 IterCmpVarRef = purego.NewCallback(fcb)
179- SaveCallback(IterCmpVarPtr, IterCmpVarRef)
179+ SaveCallbackWithClosure(IterCmpVarPtr, IterCmpVarRef, IterCmpVar)
180180 }
181181 }
182182
@@ -227,7 +227,7 @@ func (x *Sequence) Lookup(DataVar uintptr, CmpFuncVar *CompareDataFunc, CmpDataV
227227 return cbFn(arg0, arg1, arg2)
228228 }
229229 CmpFuncVarRef = purego.NewCallback(fcb)
230- SaveCallback(CmpFuncVarPtr, CmpFuncVarRef)
230+ SaveCallbackWithClosure(CmpFuncVarPtr, CmpFuncVarRef, CmpFuncVar)
231231 }
232232 }
233233
@@ -261,7 +261,7 @@ func (x *Sequence) LookupIter(DataVar uintptr, IterCmpVar *SequenceIterCompareFu
261261 return cbFn(arg0, arg1, arg2)
262262 }
263263 IterCmpVarRef = purego.NewCallback(fcb)
264- SaveCallback(IterCmpVarPtr, IterCmpVarRef)
264+ SaveCallbackWithClosure(IterCmpVarPtr, IterCmpVarRef, IterCmpVar)
265265 }
266266 }
267267
@@ -308,7 +308,7 @@ func (x *Sequence) Search(DataVar uintptr, CmpFuncVar *CompareDataFunc, CmpDataV
308308 return cbFn(arg0, arg1, arg2)
309309 }
310310 CmpFuncVarRef = purego.NewCallback(fcb)
311- SaveCallback(CmpFuncVarPtr, CmpFuncVarRef)
311+ SaveCallbackWithClosure(CmpFuncVarPtr, CmpFuncVarRef, CmpFuncVar)
312312 }
313313 }
314314
@@ -345,7 +345,7 @@ func (x *Sequence) SearchIter(DataVar uintptr, IterCmpVar *SequenceIterCompareFu
345345 return cbFn(arg0, arg1, arg2)
346346 }
347347 IterCmpVarRef = purego.NewCallback(fcb)
348- SaveCallback(IterCmpVarPtr, IterCmpVarRef)
348+ SaveCallbackWithClosure(IterCmpVarPtr, IterCmpVarRef, IterCmpVar)
349349 }
350350 }
351351
@@ -375,7 +375,7 @@ func (x *Sequence) Sort(CmpFuncVar *CompareDataFunc, CmpDataVar uintptr) {
375375 return cbFn(arg0, arg1, arg2)
376376 }
377377 CmpFuncVarRef = purego.NewCallback(fcb)
378- SaveCallback(CmpFuncVarPtr, CmpFuncVarRef)
378+ SaveCallbackWithClosure(CmpFuncVarPtr, CmpFuncVarRef, CmpFuncVar)
379379 }
380380 }
381381
@@ -405,7 +405,7 @@ func (x *Sequence) SortIter(CmpFuncVar *SequenceIterCompareFunc, CmpDataVar uint
405405 return cbFn(arg0, arg1, arg2)
406406 }
407407 CmpFuncVarRef = purego.NewCallback(fcb)
408- SaveCallback(CmpFuncVarPtr, CmpFuncVarRef)
408+ SaveCallbackWithClosure(CmpFuncVarPtr, CmpFuncVarRef, CmpFuncVar)
409409 }
410410 }
411411
@@ -529,7 +529,7 @@ func SequenceForeachRange(BeginVar *SequenceIter, EndVar *SequenceIter, FuncVar
529529 cbFn(arg0, arg1)
530530 }
531531 FuncVarRef = purego.NewCallback(fcb)
532- SaveCallback(FuncVarPtr, FuncVarRef)
532+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
533533 }
534534 }
535535
@@ -661,7 +661,7 @@ func SequenceSortChanged(IterVar *SequenceIter, CmpFuncVar *CompareDataFunc, Cmp
661661 return cbFn(arg0, arg1, arg2)
662662 }
663663 CmpFuncVarRef = purego.NewCallback(fcb)
664- SaveCallback(CmpFuncVarPtr, CmpFuncVarRef)
664+ SaveCallbackWithClosure(CmpFuncVarPtr, CmpFuncVarRef, CmpFuncVar)
665665 }
666666 }
667667
@@ -693,7 +693,7 @@ func SequenceSortChangedIter(IterVar *SequenceIter, IterCmpVar *SequenceIterComp
693693 return cbFn(arg0, arg1, arg2)
694694 }
695695 IterCmpVarRef = purego.NewCallback(fcb)
696- SaveCallback(IterCmpVarPtr, IterCmpVarRef)
696+ SaveCallbackWithClosure(IterCmpVarPtr, IterCmpVarRef, IterCmpVar)
697697 }
698698 }
699699
M v4/glib/gslist.go +1 -1
@@ -41,7 +41,7 @@ func ClearSlist(SlistPtrVar **SList, DestroyVar *DestroyNotify) {
4141 cbFn(arg0)
4242 }
4343 DestroyVarRef = purego.NewCallback(fcb)
44- SaveCallback(DestroyVarPtr, DestroyVarRef)
44+ SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
4545 }
4646 }
4747
M v4/glib/gspawn.go +5 -5
@@ -170,7 +170,7 @@ func SpawnAsync(WorkingDirectoryVar *string, ArgvVar []string, EnvpVar []string,
170170 cbFn(arg0)
171171 }
172172 ChildSetupVarRef = purego.NewCallback(fcb)
173- SaveCallback(ChildSetupVarPtr, ChildSetupVarRef)
173+ SaveCallbackWithClosure(ChildSetupVarPtr, ChildSetupVarRef, ChildSetupVar)
174174 }
175175 }
176176
@@ -207,7 +207,7 @@ func SpawnAsyncWithFds(WorkingDirectoryVar *string, ArgvVar []string, EnvpVar []
207207 cbFn(arg0)
208208 }
209209 ChildSetupVarRef = purego.NewCallback(fcb)
210- SaveCallback(ChildSetupVarPtr, ChildSetupVarRef)
210+ SaveCallbackWithClosure(ChildSetupVarPtr, ChildSetupVarRef, ChildSetupVar)
211211 }
212212 }
213213
@@ -242,7 +242,7 @@ func SpawnAsyncWithPipes(WorkingDirectoryVar *string, ArgvVar []string, EnvpVar
242242 cbFn(arg0)
243243 }
244244 ChildSetupVarRef = purego.NewCallback(fcb)
245- SaveCallback(ChildSetupVarPtr, ChildSetupVarRef)
245+ SaveCallbackWithClosure(ChildSetupVarPtr, ChildSetupVarRef, ChildSetupVar)
246246 }
247247 }
248248
@@ -469,7 +469,7 @@ func SpawnAsyncWithPipesAndFds(WorkingDirectoryVar *string, ArgvVar []string, En
469469 cbFn(arg0)
470470 }
471471 ChildSetupVarRef = purego.NewCallback(fcb)
472- SaveCallback(ChildSetupVarPtr, ChildSetupVarRef)
472+ SaveCallbackWithClosure(ChildSetupVarPtr, ChildSetupVarRef, ChildSetupVar)
473473 }
474474 }
475475
@@ -679,7 +679,7 @@ func SpawnSync(WorkingDirectoryVar *string, ArgvVar []string, EnvpVar []string,
679679 cbFn(arg0)
680680 }
681681 ChildSetupVarRef = purego.NewCallback(fcb)
682- SaveCallback(ChildSetupVarPtr, ChildSetupVarRef)
682+ SaveCallbackWithClosure(ChildSetupVarPtr, ChildSetupVarRef, ChildSetupVar)
683683 }
684684 }
685685
M v4/glib/gtestutils.go +12 -12
@@ -450,7 +450,7 @@ func TestAddDataFunc(TestpathVar string, TestDataVar uintptr, TestFuncVar *TestD
450450 cbFn(arg0)
451451 }
452452 TestFuncVarRef = purego.NewCallback(fcb)
453- SaveCallback(TestFuncVarPtr, TestFuncVarRef)
453+ SaveCallbackWithClosure(TestFuncVarPtr, TestFuncVarRef, TestFuncVar)
454454 }
455455 }
456456
@@ -477,7 +477,7 @@ func TestAddDataFuncFull(TestpathVar string, TestDataVar uintptr, TestFuncVar *T
477477 cbFn(arg0)
478478 }
479479 TestFuncVarRef = purego.NewCallback(fcb)
480- SaveCallback(TestFuncVarPtr, TestFuncVarRef)
480+ SaveCallbackWithClosure(TestFuncVarPtr, TestFuncVarRef, TestFuncVar)
481481 }
482482 }
483483
@@ -492,7 +492,7 @@ func TestAddDataFuncFull(TestpathVar string, TestDataVar uintptr, TestFuncVar *T
492492 cbFn(arg0)
493493 }
494494 DataFreeFuncVarRef = purego.NewCallback(fcb)
495- SaveCallback(DataFreeFuncVarPtr, DataFreeFuncVarRef)
495+ SaveCallbackWithClosure(DataFreeFuncVarPtr, DataFreeFuncVarRef, DataFreeFuncVar)
496496 }
497497 }
498498
@@ -529,7 +529,7 @@ func TestAddFunc(TestpathVar string, TestFuncVar *TestFunc) {
529529 cbFn()
530530 }
531531 TestFuncVarRef = purego.NewCallback(fcb)
532- SaveCallback(TestFuncVarPtr, TestFuncVarRef)
532+ SaveCallbackWithClosure(TestFuncVarPtr, TestFuncVarRef, TestFuncVar)
533533 }
534534 }
535535
@@ -552,7 +552,7 @@ func TestAddVtable(TestpathVar string, DataSizeVar uint, TestDataVar uintptr, Da
552552 cbFn(arg0, arg1)
553553 }
554554 DataSetupVarRef = purego.NewCallback(fcb)
555- SaveCallback(DataSetupVarPtr, DataSetupVarRef)
555+ SaveCallbackWithClosure(DataSetupVarPtr, DataSetupVarRef, DataSetupVar)
556556 }
557557 }
558558
@@ -567,7 +567,7 @@ func TestAddVtable(TestpathVar string, DataSizeVar uint, TestDataVar uintptr, Da
567567 cbFn(arg0, arg1)
568568 }
569569 DataTestVarRef = purego.NewCallback(fcb)
570- SaveCallback(DataTestVarPtr, DataTestVarRef)
570+ SaveCallbackWithClosure(DataTestVarPtr, DataTestVarRef, DataTestVar)
571571 }
572572 }
573573
@@ -582,7 +582,7 @@ func TestAddVtable(TestpathVar string, DataSizeVar uint, TestDataVar uintptr, Da
582582 cbFn(arg0, arg1)
583583 }
584584 DataTeardownVarRef = purego.NewCallback(fcb)
585- SaveCallback(DataTeardownVarPtr, DataTeardownVarRef)
585+ SaveCallbackWithClosure(DataTeardownVarPtr, DataTeardownVarRef, DataTeardownVar)
586586 }
587587 }
588588
@@ -702,7 +702,7 @@ func TestCreateCase(TestNameVar string, DataSizeVar uint, TestDataVar uintptr, D
702702 cbFn(arg0, arg1)
703703 }
704704 DataSetupVarRef = purego.NewCallback(fcb)
705- SaveCallback(DataSetupVarPtr, DataSetupVarRef)
705+ SaveCallbackWithClosure(DataSetupVarPtr, DataSetupVarRef, DataSetupVar)
706706 }
707707 }
708708
@@ -717,7 +717,7 @@ func TestCreateCase(TestNameVar string, DataSizeVar uint, TestDataVar uintptr, D
717717 cbFn(arg0, arg1)
718718 }
719719 DataTestVarRef = purego.NewCallback(fcb)
720- SaveCallback(DataTestVarPtr, DataTestVarRef)
720+ SaveCallbackWithClosure(DataTestVarPtr, DataTestVarRef, DataTestVar)
721721 }
722722 }
723723
@@ -732,7 +732,7 @@ func TestCreateCase(TestNameVar string, DataSizeVar uint, TestDataVar uintptr, D
732732 cbFn(arg0, arg1)
733733 }
734734 DataTeardownVarRef = purego.NewCallback(fcb)
735- SaveCallback(DataTeardownVarPtr, DataTeardownVarRef)
735+ SaveCallbackWithClosure(DataTeardownVarPtr, DataTeardownVarRef, DataTeardownVar)
736736 }
737737 }
738738
@@ -1075,7 +1075,7 @@ func TestLogSetFatalHandler(LogFuncVar *TestLogFatalFunc, UserDataVar uintptr) {
10751075 return cbFn(arg0, arg1, arg2, arg3)
10761076 }
10771077 LogFuncVarRef = purego.NewCallback(fcb)
1078- SaveCallback(LogFuncVarPtr, LogFuncVarRef)
1078+ SaveCallbackWithClosure(LogFuncVarPtr, LogFuncVarRef, LogFuncVar)
10791079 }
10801080 }
10811081
@@ -1151,7 +1151,7 @@ func TestQueueDestroy(DestroyFuncVar *DestroyNotify, DestroyDataVar uintptr) {
11511151 cbFn(arg0)
11521152 }
11531153 DestroyFuncVarRef = purego.NewCallback(fcb)
1154- SaveCallback(DestroyFuncVarPtr, DestroyFuncVarRef)
1154+ SaveCallbackWithClosure(DestroyFuncVarPtr, DestroyFuncVarRef, DestroyFuncVar)
11551155 }
11561156 }
11571157
M v4/glib/gthread.go +8 -8
@@ -295,7 +295,7 @@ func (x *Once) Impl(FuncVar *ThreadFunc, ArgVar uintptr) uintptr {
295295 return cbFn(arg0)
296296 }
297297 FuncVarRef = purego.NewCallback(fcb)
298- SaveCallback(FuncVarPtr, FuncVarRef)
298+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
299299 }
300300 }
301301
@@ -895,7 +895,7 @@ func (x *StaticPrivate) Set(DataVar uintptr, NotifyVar *DestroyNotify) {
895895 cbFn(arg0)
896896 }
897897 NotifyVarRef = purego.NewCallback(fcb)
898- SaveCallback(NotifyVarPtr, NotifyVarRef)
898+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
899899 }
900900 }
901901
@@ -1305,7 +1305,7 @@ func NewThread(NameVar *string, FuncVar *ThreadFunc, DataVar uintptr) *Thread {
13051305 return cbFn(arg0)
13061306 }
13071307 FuncVarRef = purego.NewCallback(fcb)
1308- SaveCallback(FuncVarPtr, FuncVarRef)
1308+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
13091309 }
13101310 }
13111311
@@ -1339,7 +1339,7 @@ func ThreadTryNew(NameVar *string, FuncVar *ThreadFunc, DataVar uintptr) (*Threa
13391339 return cbFn(arg0)
13401340 }
13411341 FuncVarRef = purego.NewCallback(fcb)
1342- SaveCallback(FuncVarPtr, FuncVarRef)
1342+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
13431343 }
13441344 }
13451345
@@ -2264,7 +2264,7 @@ func PrivateNew(NotifyVar *DestroyNotify) *Private {
22642264 cbFn(arg0)
22652265 }
22662266 NotifyVarRef = purego.NewCallback(fcb)
2267- SaveCallback(NotifyVarPtr, NotifyVarRef)
2267+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
22682268 }
22692269 }
22702270
@@ -2301,7 +2301,7 @@ func ThreadCreate(FuncVar *ThreadFunc, DataVar uintptr, JoinableVar bool) (*Thre
23012301 return cbFn(arg0)
23022302 }
23032303 FuncVarRef = purego.NewCallback(fcb)
2304- SaveCallback(FuncVarPtr, FuncVarRef)
2304+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
23052305 }
23062306 }
23072307
@@ -2331,7 +2331,7 @@ func ThreadCreateFull(FuncVar *ThreadFunc, DataVar uintptr, StackSizeVar uint32,
23312331 return cbFn(arg0)
23322332 }
23332333 FuncVarRef = purego.NewCallback(fcb)
2334- SaveCallback(FuncVarPtr, FuncVarRef)
2334+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
23352335 }
23362336 }
23372337
@@ -2391,7 +2391,7 @@ func ThreadForeach(ThreadFuncVar *Func, UserDataVar uintptr) {
23912391 cbFn(arg0, arg1)
23922392 }
23932393 ThreadFuncVarRef = purego.NewCallback(fcb)
2394- SaveCallback(ThreadFuncVarPtr, ThreadFuncVarRef)
2394+ SaveCallbackWithClosure(ThreadFuncVarPtr, ThreadFuncVarRef, ThreadFuncVar)
23952395 }
23962396 }
23972397
M v4/glib/gthreadpool.go +1 -1
@@ -188,7 +188,7 @@ func (x *ThreadPool) SetSortFunction(FuncVar *CompareDataFunc, UserDataVar uintp
188188 return cbFn(arg0, arg1, arg2)
189189 }
190190 FuncVarRef = purego.NewCallback(fcb)
191- SaveCallback(FuncVarPtr, FuncVarRef)
191+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
192192 }
193193 }
194194
M v4/glib/gtree.go +10 -10
@@ -55,7 +55,7 @@ func NewTree(KeyCompareFuncVar *CompareFunc) *Tree {
5555 return cbFn(arg0, arg1)
5656 }
5757 KeyCompareFuncVarRef = purego.NewCallback(fcb)
58- SaveCallback(KeyCompareFuncVarPtr, KeyCompareFuncVarRef)
58+ SaveCallbackWithClosure(KeyCompareFuncVarPtr, KeyCompareFuncVarRef, KeyCompareFuncVar)
5959 }
6060 }
6161
@@ -82,7 +82,7 @@ func NewTreeFull(KeyCompareFuncVar *CompareDataFunc, KeyCompareDataVar uintptr,
8282 return cbFn(arg0, arg1, arg2)
8383 }
8484 KeyCompareFuncVarRef = purego.NewCallback(fcb)
85- SaveCallback(KeyCompareFuncVarPtr, KeyCompareFuncVarRef)
85+ SaveCallbackWithClosure(KeyCompareFuncVarPtr, KeyCompareFuncVarRef, KeyCompareFuncVar)
8686 }
8787 }
8888
@@ -97,7 +97,7 @@ func NewTreeFull(KeyCompareFuncVar *CompareDataFunc, KeyCompareDataVar uintptr,
9797 cbFn(arg0)
9898 }
9999 KeyDestroyFuncVarRef = purego.NewCallback(fcb)
100- SaveCallback(KeyDestroyFuncVarPtr, KeyDestroyFuncVarRef)
100+ SaveCallbackWithClosure(KeyDestroyFuncVarPtr, KeyDestroyFuncVarRef, KeyDestroyFuncVar)
101101 }
102102 }
103103
@@ -112,7 +112,7 @@ func NewTreeFull(KeyCompareFuncVar *CompareDataFunc, KeyCompareDataVar uintptr,
112112 cbFn(arg0)
113113 }
114114 ValueDestroyFuncVarRef = purego.NewCallback(fcb)
115- SaveCallback(ValueDestroyFuncVarPtr, ValueDestroyFuncVarRef)
115+ SaveCallbackWithClosure(ValueDestroyFuncVarPtr, ValueDestroyFuncVarRef, ValueDestroyFuncVar)
116116 }
117117 }
118118
@@ -138,7 +138,7 @@ func NewTreeWithData(KeyCompareFuncVar *CompareDataFunc, KeyCompareDataVar uintp
138138 return cbFn(arg0, arg1, arg2)
139139 }
140140 KeyCompareFuncVarRef = purego.NewCallback(fcb)
141- SaveCallback(KeyCompareFuncVarPtr, KeyCompareFuncVarRef)
141+ SaveCallbackWithClosure(KeyCompareFuncVarPtr, KeyCompareFuncVarRef, KeyCompareFuncVar)
142142 }
143143 }
144144
@@ -184,7 +184,7 @@ func (x *Tree) Foreach(FuncVar *TraverseFunc, UserDataVar uintptr) {
184184 return cbFn(arg0, arg1, arg2)
185185 }
186186 FuncVarRef = purego.NewCallback(fcb)
187- SaveCallback(FuncVarPtr, FuncVarRef)
187+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
188188 }
189189 }
190190
@@ -215,7 +215,7 @@ func (x *Tree) ForeachNode(FuncVar *TraverseNodeFunc, UserDataVar uintptr) {
215215 return cbFn(arg0, arg1)
216216 }
217217 FuncVarRef = purego.NewCallback(fcb)
218- SaveCallback(FuncVarPtr, FuncVarRef)
218+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
219219 }
220220 }
221221
@@ -448,7 +448,7 @@ func (x *Tree) Search(SearchFuncVar *CompareFunc, UserDataVar uintptr) uintptr {
448448 return cbFn(arg0, arg1)
449449 }
450450 SearchFuncVarRef = purego.NewCallback(fcb)
451- SaveCallback(SearchFuncVarPtr, SearchFuncVarRef)
451+ SaveCallbackWithClosure(SearchFuncVarPtr, SearchFuncVarRef, SearchFuncVar)
452452 }
453453 }
454454
@@ -481,7 +481,7 @@ func (x *Tree) SearchNode(SearchFuncVar *CompareFunc, UserDataVar uintptr) *Tree
481481 return cbFn(arg0, arg1)
482482 }
483483 SearchFuncVarRef = purego.NewCallback(fcb)
484- SaveCallback(SearchFuncVarPtr, SearchFuncVarRef)
484+ SaveCallbackWithClosure(SearchFuncVarPtr, SearchFuncVarRef, SearchFuncVar)
485485 }
486486 }
487487
@@ -519,7 +519,7 @@ func (x *Tree) Traverse(TraverseFuncVar *TraverseFunc, TraverseTypeVar TraverseT
519519 return cbFn(arg0, arg1, arg2)
520520 }
521521 TraverseFuncVarRef = purego.NewCallback(fcb)
522- SaveCallback(TraverseFuncVarPtr, TraverseFuncVarRef)
522+ SaveCallbackWithClosure(TraverseFuncVarPtr, TraverseFuncVarRef, TraverseFuncVar)
523523 }
524524 }
525525
M v4/glib/gutils.go +1 -1
@@ -133,7 +133,7 @@ func Atexit(FuncVar *VoidFunc) {
133133 cbFn()
134134 }
135135 FuncVarRef = purego.NewCallback(fcb)
136- SaveCallback(FuncVarPtr, FuncVarRef)
136+ SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
137137 }
138138 }
139139
M v4/glib/gvariant.go +1 -1
@@ -488,7 +488,7 @@ func NewVariantFromData(TypeVar *VariantType, DataVar []byte, SizeVar uint, Trus
488488 cbFn(arg0)
489489 }
490490 NotifyVarRef = purego.NewCallback(fcb)
491- SaveCallback(NotifyVarPtr, NotifyVarRef)
491+ SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
492492 }
493493 }
494494
M v4/glib/more.go +24 -2
@@ -11,9 +11,11 @@ import (
1111
1212 var callbacks = struct {
1313 sync.RWMutex
14- refs map[uintptr]uintptr
14+ refs map[uintptr]uintptr
15+ closures map[uintptr]interface{}
1516 }{
16- refs: make(map[uintptr]uintptr),
17+ refs: make(map[uintptr]uintptr),
18+ closures: make(map[uintptr]interface{}),
1719 }
1820
1921 // GetCallback retrives a callback reference by value.
@@ -33,6 +35,26 @@ func SaveCallback(cbPtr uintptr, refPtr uintptr) {
3335 callbacks.Unlock()
3436 }
3537
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+
3658 // UnrefCallbackValue unreferences the provided callback by reflect.value to free a purego slot
3759 //
3860 // 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
8484 return cbFn(arg0, arg1, arg2, arg3)
8585 }
8686 TransformToVarRef = purego.NewCallback(fcb)
87- glib.SaveCallback(TransformToVarPtr, TransformToVarRef)
87+ glib.SaveCallbackWithClosure(TransformToVarPtr, TransformToVarRef, TransformToVar)
8888 }
8989 }
9090
@@ -99,7 +99,7 @@ func (x *BindingGroup) BindFull(SourcePropertyVar string, TargetVar *Object, Tar
9999 return cbFn(arg0, arg1, arg2, arg3)
100100 }
101101 TransformFromVarRef = purego.NewCallback(fcb)
102- glib.SaveCallback(TransformFromVarPtr, TransformFromVarRef)
102+ glib.SaveCallbackWithClosure(TransformFromVarPtr, TransformFromVarRef, TransformFromVar)
103103 }
104104 }
105105
@@ -114,7 +114,7 @@ func (x *BindingGroup) BindFull(SourcePropertyVar string, TargetVar *Object, Tar
114114 cbFn(arg0)
115115 }
116116 UserDataDestroyVarRef = purego.NewCallback(fcb)
117- glib.SaveCallback(UserDataDestroyVarPtr, UserDataDestroyVarRef)
117+ glib.SaveCallbackWithClosure(UserDataDestroyVarPtr, UserDataDestroyVarRef, UserDataDestroyVar)
118118 }
119119 }
120120
M v4/gobject/gboxed.go +2 -2
@@ -61,7 +61,7 @@ func BoxedTypeRegisterStatic(NameVar string, BoxedCopyVar *BoxedCopyFunc, BoxedF
6161 return cbFn(arg0)
6262 }
6363 BoxedCopyVarRef = purego.NewCallback(fcb)
64- glib.SaveCallback(BoxedCopyVarPtr, BoxedCopyVarRef)
64+ glib.SaveCallbackWithClosure(BoxedCopyVarPtr, BoxedCopyVarRef, BoxedCopyVar)
6565 }
6666 }
6767
@@ -76,7 +76,7 @@ func BoxedTypeRegisterStatic(NameVar string, BoxedCopyVar *BoxedCopyFunc, BoxedF
7676 cbFn(arg0)
7777 }
7878 BoxedFreeVarRef = purego.NewCallback(fcb)
79- glib.SaveCallback(BoxedFreeVarPtr, BoxedFreeVarRef)
79+ glib.SaveCallbackWithClosure(BoxedFreeVarPtr, BoxedFreeVarRef, BoxedFreeVar)
8080 }
8181 }
8282
M v4/gobject/gclosure.go +12 -12
@@ -216,7 +216,7 @@ func (x *Closure) AddFinalizeNotifier(NotifyDataVar uintptr, NotifyFuncVar *Clos
216216 cbFn(arg0, arg1)
217217 }
218218 NotifyFuncVarRef = purego.NewCallback(fcb)
219- glib.SaveCallback(NotifyFuncVarPtr, NotifyFuncVarRef)
219+ glib.SaveCallbackWithClosure(NotifyFuncVarPtr, NotifyFuncVarRef, NotifyFuncVar)
220220 }
221221 }
222222
@@ -244,7 +244,7 @@ func (x *Closure) AddInvalidateNotifier(NotifyDataVar uintptr, NotifyFuncVar *Cl
244244 cbFn(arg0, arg1)
245245 }
246246 NotifyFuncVarRef = purego.NewCallback(fcb)
247- glib.SaveCallback(NotifyFuncVarPtr, NotifyFuncVarRef)
247+ glib.SaveCallbackWithClosure(NotifyFuncVarPtr, NotifyFuncVarRef, NotifyFuncVar)
248248 }
249249 }
250250
@@ -273,7 +273,7 @@ func (x *Closure) AddMarshalGuards(PreMarshalDataVar uintptr, PreMarshalNotifyVa
273273 cbFn(arg0, arg1)
274274 }
275275 PreMarshalNotifyVarRef = purego.NewCallback(fcb)
276- glib.SaveCallback(PreMarshalNotifyVarPtr, PreMarshalNotifyVarRef)
276+ glib.SaveCallbackWithClosure(PreMarshalNotifyVarPtr, PreMarshalNotifyVarRef, PreMarshalNotifyVar)
277277 }
278278 }
279279
@@ -288,7 +288,7 @@ func (x *Closure) AddMarshalGuards(PreMarshalDataVar uintptr, PreMarshalNotifyVa
288288 cbFn(arg0, arg1)
289289 }
290290 PostMarshalNotifyVarRef = purego.NewCallback(fcb)
291- glib.SaveCallback(PostMarshalNotifyVarPtr, PostMarshalNotifyVarRef)
291+ glib.SaveCallbackWithClosure(PostMarshalNotifyVarPtr, PostMarshalNotifyVarRef, PostMarshalNotifyVar)
292292 }
293293 }
294294
@@ -357,7 +357,7 @@ func (x *Closure) RemoveFinalizeNotifier(NotifyDataVar uintptr, NotifyFuncVar *C
357357 cbFn(arg0, arg1)
358358 }
359359 NotifyFuncVarRef = purego.NewCallback(fcb)
360- glib.SaveCallback(NotifyFuncVarPtr, NotifyFuncVarRef)
360+ glib.SaveCallbackWithClosure(NotifyFuncVarPtr, NotifyFuncVarRef, NotifyFuncVar)
361361 }
362362 }
363363
@@ -383,7 +383,7 @@ func (x *Closure) RemoveInvalidateNotifier(NotifyDataVar uintptr, NotifyFuncVar
383383 cbFn(arg0, arg1)
384384 }
385385 NotifyFuncVarRef = purego.NewCallback(fcb)
386- glib.SaveCallback(NotifyFuncVarPtr, NotifyFuncVarRef)
386+ glib.SaveCallbackWithClosure(NotifyFuncVarPtr, NotifyFuncVarRef, NotifyFuncVar)
387387 }
388388 }
389389
@@ -416,7 +416,7 @@ func (x *Closure) SetMarshal(MarshalVar *ClosureMarshal) {
416416 cbFn(arg0, arg1, arg2, arg3, arg4, arg5)
417417 }
418418 MarshalVarRef = purego.NewCallback(fcb)
419- glib.SaveCallback(MarshalVarPtr, MarshalVarRef)
419+ glib.SaveCallbackWithClosure(MarshalVarPtr, MarshalVarRef, MarshalVar)
420420 }
421421 }
422422
@@ -456,7 +456,7 @@ func (x *Closure) SetMetaMarshal(MarshalDataVar uintptr, MetaMarshalVar *Closure
456456 cbFn(arg0, arg1, arg2, arg3, arg4, arg5)
457457 }
458458 MetaMarshalVarRef = purego.NewCallback(fcb)
459- glib.SaveCallback(MetaMarshalVarPtr, MetaMarshalVarRef)
459+ glib.SaveCallbackWithClosure(MetaMarshalVarPtr, MetaMarshalVarRef, MetaMarshalVar)
460460 }
461461 }
462462
@@ -601,7 +601,7 @@ func CclosureNew(CallbackFuncVar *Callback, UserDataVar uintptr, DestroyDataVar
601601 cbFn()
602602 }
603603 CallbackFuncVarRef = purego.NewCallback(fcb)
604- glib.SaveCallback(CallbackFuncVarPtr, CallbackFuncVarRef)
604+ glib.SaveCallbackWithClosure(CallbackFuncVarPtr, CallbackFuncVarRef, CallbackFuncVar)
605605 }
606606 }
607607
@@ -616,7 +616,7 @@ func CclosureNew(CallbackFuncVar *Callback, UserDataVar uintptr, DestroyDataVar
616616 cbFn(arg0, arg1)
617617 }
618618 DestroyDataVarRef = purego.NewCallback(fcb)
619- glib.SaveCallback(DestroyDataVarPtr, DestroyDataVarRef)
619+ glib.SaveCallbackWithClosure(DestroyDataVarPtr, DestroyDataVarRef, DestroyDataVar)
620620 }
621621 }
622622
@@ -644,7 +644,7 @@ func CclosureNewSwap(CallbackFuncVar *Callback, UserDataVar uintptr, DestroyData
644644 cbFn()
645645 }
646646 CallbackFuncVarRef = purego.NewCallback(fcb)
647- glib.SaveCallback(CallbackFuncVarPtr, CallbackFuncVarRef)
647+ glib.SaveCallbackWithClosure(CallbackFuncVarPtr, CallbackFuncVarRef, CallbackFuncVar)
648648 }
649649 }
650650
@@ -659,7 +659,7 @@ func CclosureNewSwap(CallbackFuncVar *Callback, UserDataVar uintptr, DestroyData
659659 cbFn(arg0, arg1)
660660 }
661661 DestroyDataVarRef = purego.NewCallback(fcb)
662- glib.SaveCallback(DestroyDataVarPtr, DestroyDataVarRef)
662+ glib.SaveCallbackWithClosure(DestroyDataVarPtr, DestroyDataVarRef, DestroyDataVar)
663663 }
664664 }
665665
M v4/gobject/gobject.go +18 -18
@@ -944,7 +944,7 @@ func CclosureNewObject(CallbackFuncVar *Callback, ObjectVar *Object) *Closure {
944944 cbFn()
945945 }
946946 CallbackFuncVarRef = purego.NewCallback(fcb)
947- glib.SaveCallback(CallbackFuncVarPtr, CallbackFuncVarRef)
947+ glib.SaveCallbackWithClosure(CallbackFuncVarPtr, CallbackFuncVarRef, CallbackFuncVar)
948948 }
949949 }
950950
@@ -973,7 +973,7 @@ func CclosureNewObjectSwap(CallbackFuncVar *Callback, ObjectVar *Object) *Closur
973973 cbFn()
974974 }
975975 CallbackFuncVarRef = purego.NewCallback(fcb)
976- glib.SaveCallback(CallbackFuncVarPtr, CallbackFuncVarRef)
976+ glib.SaveCallbackWithClosure(CallbackFuncVarPtr, CallbackFuncVarRef, CallbackFuncVar)
977977 }
978978 }
979979
@@ -1031,7 +1031,7 @@ func SignalConnectObject(InstanceVar *TypeInstance, DetailedSignalVar string, CH
10311031 cbFn()
10321032 }
10331033 CHandlerVarRef = purego.NewCallback(fcb)
1034- glib.SaveCallback(CHandlerVarPtr, CHandlerVarRef)
1034+ glib.SaveCallbackWithClosure(CHandlerVarPtr, CHandlerVarRef, CHandlerVar)
10351035 }
10361036 }
10371037
@@ -1259,7 +1259,7 @@ func (x *Object) AddToggleRef(NotifyVar *ToggleNotify, DataVar uintptr) {
12591259 cbFn(arg0, arg1, arg2)
12601260 }
12611261 NotifyVarRef = purego.NewCallback(fcb)
1262- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)
1262+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
12631263 }
12641264 }
12651265
@@ -1374,7 +1374,7 @@ func (x *Object) BindPropertyFull(SourcePropertyVar string, TargetVar *Object, T
13741374 return cbFn(arg0, arg1, arg2, arg3)
13751375 }
13761376 TransformToVarRef = purego.NewCallback(fcb)
1377- glib.SaveCallback(TransformToVarPtr, TransformToVarRef)
1377+ glib.SaveCallbackWithClosure(TransformToVarPtr, TransformToVarRef, TransformToVar)
13781378 }
13791379 }
13801380
@@ -1389,7 +1389,7 @@ func (x *Object) BindPropertyFull(SourcePropertyVar string, TargetVar *Object, T
13891389 return cbFn(arg0, arg1, arg2, arg3)
13901390 }
13911391 TransformFromVarRef = purego.NewCallback(fcb)
1392- glib.SaveCallback(TransformFromVarPtr, TransformFromVarRef)
1392+ glib.SaveCallbackWithClosure(TransformFromVarPtr, TransformFromVarRef, TransformFromVar)
13931393 }
13941394 }
13951395
@@ -1404,7 +1404,7 @@ func (x *Object) BindPropertyFull(SourcePropertyVar string, TargetVar *Object, T
14041404 cbFn(arg0)
14051405 }
14061406 NotifyVarRef = purego.NewCallback(fcb)
1407- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)
1407+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
14081408 }
14091409 }
14101410
@@ -1528,7 +1528,7 @@ func (x *Object) DupData(KeyVar string, DupFuncVar *glib.DuplicateFunc, UserData
15281528 return cbFn(arg0, arg1)
15291529 }
15301530 DupFuncVarRef = purego.NewCallback(fcb)
1531- glib.SaveCallback(DupFuncVarPtr, DupFuncVarRef)
1531+ glib.SaveCallbackWithClosure(DupFuncVarPtr, DupFuncVarRef, DupFuncVar)
15321532 }
15331533 }
15341534
@@ -1566,7 +1566,7 @@ func (x *Object) DupQdata(QuarkVar glib.Quark, DupFuncVar *glib.DuplicateFunc, U
15661566 return cbFn(arg0, arg1)
15671567 }
15681568 DupFuncVarRef = purego.NewCallback(fcb)
1569- glib.SaveCallback(DupFuncVarPtr, DupFuncVarRef)
1569+ glib.SaveCallbackWithClosure(DupFuncVarPtr, DupFuncVarRef, DupFuncVar)
15701570 }
15711571 }
15721572
@@ -1859,7 +1859,7 @@ func (x *Object) RemoveToggleRef(NotifyVar *ToggleNotify, DataVar uintptr) {
18591859 cbFn(arg0, arg1, arg2)
18601860 }
18611861 NotifyVarRef = purego.NewCallback(fcb)
1862- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)
1862+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
18631863 }
18641864 }
18651865
@@ -1909,7 +1909,7 @@ func (x *Object) ReplaceData(KeyVar string, OldvalVar uintptr, NewvalVar uintptr
19091909 cbFn(arg0)
19101910 }
19111911 DestroyVarRef = purego.NewCallback(fcb)
1912- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
1912+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
19131913 }
19141914 }
19151915
@@ -1946,7 +1946,7 @@ func (x *Object) ReplaceQdata(QuarkVar glib.Quark, OldvalVar uintptr, NewvalVar
19461946 cbFn(arg0)
19471947 }
19481948 DestroyVarRef = purego.NewCallback(fcb)
1949- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
1949+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
19501950 }
19511951 }
19521952
@@ -2023,7 +2023,7 @@ func (x *Object) SetDataFull(KeyVar string, DataVar uintptr, DestroyVar *glib.De
20232023 cbFn(arg0)
20242024 }
20252025 DestroyVarRef = purego.NewCallback(fcb)
2026- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
2026+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
20272027 }
20282028 }
20292029
@@ -2076,7 +2076,7 @@ func (x *Object) SetQdataFull(QuarkVar glib.Quark, DataVar uintptr, DestroyVar *
20762076 cbFn(arg0)
20772077 }
20782078 DestroyVarRef = purego.NewCallback(fcb)
2079- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
2079+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
20802080 }
20812081 }
20822082
@@ -2289,7 +2289,7 @@ func (x *Object) WeakRef(NotifyVar *WeakNotify, DataVar uintptr) {
22892289 cbFn(arg0, arg1)
22902290 }
22912291 NotifyVarRef = purego.NewCallback(fcb)
2292- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)
2292+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
22932293 }
22942294 }
22952295
@@ -2313,7 +2313,7 @@ func (x *Object) WeakUnref(NotifyVar *WeakNotify, DataVar uintptr) {
23132313 cbFn(arg0, arg1)
23142314 }
23152315 NotifyVarRef = purego.NewCallback(fcb)
2316- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)
2316+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
23172317 }
23182318 }
23192319
@@ -2374,7 +2374,7 @@ func (x *Object) ConnectNotify(cb *func(Object, uintptr)) uint32 {
23742374
23752375 }
23762376 cbRefPtr := purego.NewCallback(fcb)
2377- glib.SaveCallback(cbPtr, cbRefPtr)
2377+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
23782378 return SignalConnect(x.GoPointer(), "notify", cbRefPtr)
23792379 }
23802380
@@ -2396,7 +2396,7 @@ func (x *Object) ConnectNotifyWithDetail(detail string, cb *func(Object, uintptr
23962396
23972397 }
23982398 cbRefPtr := purego.NewCallback(fcb)
2399- glib.SaveCallback(cbPtr, cbRefPtr)
2399+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
24002400 return SignalConnect(x.GoPointer(), signalName, cbRefPtr)
24012401 }
24022402
M v4/gobject/gparam.go +1 -1
@@ -796,7 +796,7 @@ func (x *ParamSpec) SetQdataFull(QuarkVar glib.Quark, DataVar uintptr, DestroyVa
796796 cbFn(arg0)
797797 }
798798 DestroyVarRef = purego.NewCallback(fcb)
799- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
799+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
800800 }
801801 }
802802
M v4/gobject/gsignal.go +10 -10
@@ -241,7 +241,7 @@ func SignalAddEmissionHook(SignalIdVar uint, DetailVar glib.Quark, HookFuncVar *
241241 return cbFn(arg0, arg1, arg2, arg3)
242242 }
243243 HookFuncVarRef = purego.NewCallback(fcb)
244- glib.SaveCallback(HookFuncVarPtr, HookFuncVarRef)
244+ glib.SaveCallbackWithClosure(HookFuncVarPtr, HookFuncVarRef, HookFuncVar)
245245 }
246246 }
247247
@@ -256,7 +256,7 @@ func SignalAddEmissionHook(SignalIdVar uint, DetailVar glib.Quark, HookFuncVar *
256256 cbFn(arg0)
257257 }
258258 DataDestroyVarRef = purego.NewCallback(fcb)
259- glib.SaveCallback(DataDestroyVarPtr, DataDestroyVarRef)
259+ glib.SaveCallbackWithClosure(DataDestroyVarPtr, DataDestroyVarRef, DataDestroyVar)
260260 }
261261 }
262262
@@ -359,7 +359,7 @@ func SignalConnectData(InstanceVar *Object, DetailedSignalVar string, CHandlerVa
359359 cbFn()
360360 }
361361 CHandlerVarRef = purego.NewCallback(fcb)
362- glib.SaveCallback(CHandlerVarPtr, CHandlerVarRef)
362+ glib.SaveCallbackWithClosure(CHandlerVarPtr, CHandlerVarRef, CHandlerVar)
363363 }
364364 }
365365
@@ -374,7 +374,7 @@ func SignalConnectData(InstanceVar *Object, DetailedSignalVar string, CHandlerVa
374374 cbFn(arg0, arg1)
375375 }
376376 DestroyDataVarRef = purego.NewCallback(fcb)
377- glib.SaveCallback(DestroyDataVarPtr, DestroyDataVarRef)
377+ glib.SaveCallbackWithClosure(DestroyDataVarPtr, DestroyDataVarRef, DestroyDataVar)
378378 }
379379 }
380380
@@ -722,7 +722,7 @@ func SignalNew(SignalNameVar string, ItypeVar types.GType, SignalFlagsVar Signal
722722 return cbFn(arg0, arg1, arg2, arg3)
723723 }
724724 AccumulatorVarRef = purego.NewCallback(fcb)
725- glib.SaveCallback(AccumulatorVarPtr, AccumulatorVarRef)
725+ glib.SaveCallbackWithClosure(AccumulatorVarPtr, AccumulatorVarRef, AccumulatorVar)
726726 }
727727 }
728728
@@ -762,7 +762,7 @@ func SignalNewClassHandler(SignalNameVar string, ItypeVar types.GType, SignalFla
762762 cbFn()
763763 }
764764 ClassHandlerVarRef = purego.NewCallback(fcb)
765- glib.SaveCallback(ClassHandlerVarPtr, ClassHandlerVarRef)
765+ glib.SaveCallbackWithClosure(ClassHandlerVarPtr, ClassHandlerVarRef, ClassHandlerVar)
766766 }
767767 }
768768
@@ -777,7 +777,7 @@ func SignalNewClassHandler(SignalNameVar string, ItypeVar types.GType, SignalFla
777777 return cbFn(arg0, arg1, arg2, arg3)
778778 }
779779 AccumulatorVarRef = purego.NewCallback(fcb)
780- glib.SaveCallback(AccumulatorVarPtr, AccumulatorVarRef)
780+ glib.SaveCallbackWithClosure(AccumulatorVarPtr, AccumulatorVarRef, AccumulatorVar)
781781 }
782782 }
783783
@@ -807,7 +807,7 @@ func SignalNewValist(SignalNameVar string, ItypeVar types.GType, SignalFlagsVar
807807 return cbFn(arg0, arg1, arg2, arg3)
808808 }
809809 AccumulatorVarRef = purego.NewCallback(fcb)
810- glib.SaveCallback(AccumulatorVarPtr, AccumulatorVarRef)
810+ glib.SaveCallbackWithClosure(AccumulatorVarPtr, AccumulatorVarRef, AccumulatorVar)
811811 }
812812 }
813813
@@ -837,7 +837,7 @@ func SignalNewv(SignalNameVar string, ItypeVar types.GType, SignalFlagsVar Signa
837837 return cbFn(arg0, arg1, arg2, arg3)
838838 }
839839 AccumulatorVarRef = purego.NewCallback(fcb)
840- glib.SaveCallback(AccumulatorVarPtr, AccumulatorVarRef)
840+ glib.SaveCallbackWithClosure(AccumulatorVarPtr, AccumulatorVarRef, AccumulatorVar)
841841 }
842842 }
843843
@@ -884,7 +884,7 @@ func SignalOverrideClassHandler(SignalNameVar string, InstanceTypeVar types.GTyp
884884 cbFn()
885885 }
886886 ClassHandlerVarRef = purego.NewCallback(fcb)
887- glib.SaveCallback(ClassHandlerVarPtr, ClassHandlerVarRef)
887+ glib.SaveCallbackWithClosure(ClassHandlerVarPtr, ClassHandlerVarRef, ClassHandlerVar)
888888 }
889889 }
890890
M v4/gobject/gsignalgroup.go +8 -8
@@ -93,7 +93,7 @@ func (x *SignalGroup) Connect(DetailedSignalVar string, CHandlerVar *Callback, D
9393 cbFn()
9494 }
9595 CHandlerVarRef = purego.NewCallback(fcb)
96- glib.SaveCallback(CHandlerVarPtr, CHandlerVarRef)
96+ glib.SaveCallbackWithClosure(CHandlerVarPtr, CHandlerVarRef, CHandlerVar)
9797 }
9898 }
9999
@@ -122,7 +122,7 @@ func (x *SignalGroup) ConnectAfter(DetailedSignalVar string, CHandlerVar *Callba
122122 cbFn()
123123 }
124124 CHandlerVarRef = purego.NewCallback(fcb)
125- glib.SaveCallback(CHandlerVarPtr, CHandlerVarRef)
125+ glib.SaveCallbackWithClosure(CHandlerVarPtr, CHandlerVarRef, CHandlerVar)
126126 }
127127 }
128128
@@ -160,7 +160,7 @@ func (x *SignalGroup) ConnectData(DetailedSignalVar string, CHandlerVar *Callbac
160160 cbFn()
161161 }
162162 CHandlerVarRef = purego.NewCallback(fcb)
163- glib.SaveCallback(CHandlerVarPtr, CHandlerVarRef)
163+ glib.SaveCallbackWithClosure(CHandlerVarPtr, CHandlerVarRef, CHandlerVar)
164164 }
165165 }
166166
@@ -175,7 +175,7 @@ func (x *SignalGroup) ConnectData(DetailedSignalVar string, CHandlerVar *Callbac
175175 cbFn(arg0, arg1)
176176 }
177177 NotifyVarRef = purego.NewCallback(fcb)
178- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)
178+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
179179 }
180180 }
181181
@@ -205,7 +205,7 @@ func (x *SignalGroup) ConnectObject(DetailedSignalVar string, CHandlerVar *Callb
205205 cbFn()
206206 }
207207 CHandlerVarRef = purego.NewCallback(fcb)
208- glib.SaveCallback(CHandlerVarPtr, CHandlerVarRef)
208+ glib.SaveCallbackWithClosure(CHandlerVarPtr, CHandlerVarRef, CHandlerVar)
209209 }
210210 }
211211
@@ -235,7 +235,7 @@ func (x *SignalGroup) ConnectSwapped(DetailedSignalVar string, CHandlerVar *Call
235235 cbFn()
236236 }
237237 CHandlerVarRef = purego.NewCallback(fcb)
238- glib.SaveCallback(CHandlerVarPtr, CHandlerVarRef)
238+ glib.SaveCallbackWithClosure(CHandlerVarPtr, CHandlerVarRef, CHandlerVar)
239239 }
240240 }
241241
@@ -315,7 +315,7 @@ func (x *SignalGroup) ConnectBind(cb *func(SignalGroup, uintptr)) uint32 {
315315
316316 }
317317 cbRefPtr := purego.NewCallback(fcb)
318- glib.SaveCallback(cbPtr, cbRefPtr)
318+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
319319 return SignalConnect(x.GoPointer(), "bind", cbRefPtr)
320320 }
321321
@@ -339,7 +339,7 @@ func (x *SignalGroup) ConnectUnbind(cb *func(SignalGroup)) uint32 {
339339
340340 }
341341 cbRefPtr := purego.NewCallback(fcb)
342- glib.SaveCallback(cbPtr, cbRefPtr)
342+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
343343 return SignalConnect(x.GoPointer(), "unbind", cbRefPtr)
344344 }
345345
M v4/gobject/gtype.go +6 -6
@@ -826,7 +826,7 @@ func TypeAddClassCacheFunc(CacheDataVar uintptr, CacheFuncVar *TypeClassCacheFun
826826 return cbFn(arg0, arg1)
827827 }
828828 CacheFuncVarRef = purego.NewCallback(fcb)
829- glib.SaveCallback(CacheFuncVarPtr, CacheFuncVarRef)
829+ glib.SaveCallbackWithClosure(CacheFuncVarPtr, CacheFuncVarRef, CacheFuncVar)
830830 }
831831 }
832832
@@ -885,7 +885,7 @@ func TypeAddInterfaceCheck(CheckDataVar uintptr, CheckFuncVar *TypeInterfaceChec
885885 cbFn(arg0, arg1)
886886 }
887887 CheckFuncVarRef = purego.NewCallback(fcb)
888- glib.SaveCallback(CheckFuncVarPtr, CheckFuncVarRef)
888+ glib.SaveCallbackWithClosure(CheckFuncVarPtr, CheckFuncVarRef, CheckFuncVar)
889889 }
890890 }
891891
@@ -1559,7 +1559,7 @@ func TypeRegisterStaticSimple(ParentTypeVar types.GType, TypeNameVar string, Cla
15591559 cbFn(arg0, arg1)
15601560 }
15611561 ClassInitVarRef = purego.NewCallback(fcb)
1562- glib.SaveCallback(ClassInitVarPtr, ClassInitVarRef)
1562+ glib.SaveCallbackWithClosure(ClassInitVarPtr, ClassInitVarRef, ClassInitVar)
15631563 }
15641564 }
15651565
@@ -1574,7 +1574,7 @@ func TypeRegisterStaticSimple(ParentTypeVar types.GType, TypeNameVar string, Cla
15741574 cbFn(arg0, arg1)
15751575 }
15761576 InstanceInitVarRef = purego.NewCallback(fcb)
1577- glib.SaveCallback(InstanceInitVarPtr, InstanceInitVarRef)
1577+ glib.SaveCallbackWithClosure(InstanceInitVarPtr, InstanceInitVarRef, InstanceInitVar)
15781578 }
15791579 }
15801580
@@ -1601,7 +1601,7 @@ func TypeRemoveClassCacheFunc(CacheDataVar uintptr, CacheFuncVar *TypeClassCache
16011601 return cbFn(arg0, arg1)
16021602 }
16031603 CacheFuncVarRef = purego.NewCallback(fcb)
1604- glib.SaveCallback(CacheFuncVarPtr, CacheFuncVarRef)
1604+ glib.SaveCallbackWithClosure(CacheFuncVarPtr, CacheFuncVarRef, CacheFuncVar)
16051605 }
16061606 }
16071607
@@ -1626,7 +1626,7 @@ func TypeRemoveInterfaceCheck(CheckDataVar uintptr, CheckFuncVar *TypeInterfaceC
16261626 cbFn(arg0, arg1)
16271627 }
16281628 CheckFuncVarRef = purego.NewCallback(fcb)
1629- glib.SaveCallback(CheckFuncVarPtr, CheckFuncVarRef)
1629+ glib.SaveCallbackWithClosure(CheckFuncVarPtr, CheckFuncVarRef, CheckFuncVar)
16301630 }
16311631 }
16321632
M v4/gobject/gvalue.go +1 -1
@@ -908,7 +908,7 @@ func ValueRegisterTransformFunc(SrcTypeVar types.GType, DestTypeVar types.GType,
908908 cbFn(arg0, arg1)
909909 }
910910 TransformFuncVarRef = purego.NewCallback(fcb)
911- glib.SaveCallback(TransformFuncVarPtr, TransformFuncVarRef)
911+ glib.SaveCallbackWithClosure(TransformFuncVarPtr, TransformFuncVarRef, TransformFuncVar)
912912 }
913913 }
914914
M v4/gobject/gvaluearray.go +2 -2
@@ -163,7 +163,7 @@ func (x *ValueArray) Sort(CompareFuncVar *glib.CompareFunc) *ValueArray {
163163 return cbFn(arg0, arg1)
164164 }
165165 CompareFuncVarRef = purego.NewCallback(fcb)
166- glib.SaveCallback(CompareFuncVarPtr, CompareFuncVarRef)
166+ glib.SaveCallbackWithClosure(CompareFuncVarPtr, CompareFuncVarRef, CompareFuncVar)
167167 }
168168 }
169169
@@ -192,7 +192,7 @@ func (x *ValueArray) SortWithData(CompareFuncVar *glib.CompareDataFunc, UserData
192192 return cbFn(arg0, arg1, arg2)
193193 }
194194 CompareFuncVarRef = purego.NewCallback(fcb)
195- glib.SaveCallback(CompareFuncVarPtr, CompareFuncVarRef)
195+ glib.SaveCallbackWithClosure(CompareFuncVarPtr, CompareFuncVarRef, CompareFuncVar)
196196 }
197197 }
198198
M v4/gsk/gskrendernode.go +1 -1
@@ -314,7 +314,7 @@ func RenderNodeDeserialize(BytesVar *glib.Bytes, ErrorFuncVar *ParseErrorFunc, U
314314 cbFn(arg0, arg1, arg2, arg3)
315315 }
316316 ErrorFuncVarRef = purego.NewCallback(fcb)
317- glib.SaveCallback(ErrorFuncVarPtr, ErrorFuncVarRef)
317+ glib.SaveCallbackWithClosure(ErrorFuncVarPtr, ErrorFuncVarRef, ErrorFuncVar)
318318 }
319319 }
320320
M v4/gsk/gsktypes.go +2 -2
@@ -265,7 +265,7 @@ func (x *Path) Foreach(FlagsVar PathForeachFlags, FuncVar *PathForeachFunc, User
265265 return cbFn(arg0, arg1, arg2, arg3, arg4)
266266 }
267267 FuncVarRef = purego.NewCallback(fcb)
268- glib.SaveCallback(FuncVarPtr, FuncVarRef)
268+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
269269 }
270270 }
271271
@@ -304,7 +304,7 @@ func (x *Path) ForeachIntersection(Path2Var *Path, FuncVar *PathIntersectionFunc
304304 return cbFn(arg0, arg1, arg2, arg3, arg4, arg5)
305305 }
306306 FuncVarRef = purego.NewCallback(fcb)
307- glib.SaveCallback(FuncVarPtr, FuncVarRef)
307+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
308308 }
309309 }
310310
M v4/gtk/gtkaboutdialog.go +1 -1
@@ -936,7 +936,7 @@ func (x *AboutDialog) ConnectActivateLink(cb *func(AboutDialog, string) bool) ui
936936
937937 }
938938 cbRefPtr := purego.NewCallback(fcb)
939- glib.SaveCallback(cbPtr, cbRefPtr)
939+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
940940 return gobject.SignalConnect(x.GoPointer(), "activate-link", cbRefPtr)
941941 }
942942
M v4/gtk/gtkadjustment.go +2 -2
@@ -558,7 +558,7 @@ func (x *Adjustment) ConnectChanged(cb *func(Adjustment)) uint32 {
558558
559559 }
560560 cbRefPtr := purego.NewCallback(fcb)
561- glib.SaveCallback(cbPtr, cbRefPtr)
561+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
562562 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
563563 }
564564
@@ -578,7 +578,7 @@ func (x *Adjustment) ConnectValueChanged(cb *func(Adjustment)) uint32 {
578578
579579 }
580580 cbRefPtr := purego.NewCallback(fcb)
581- glib.SaveCallback(cbPtr, cbRefPtr)
581+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
582582 return gobject.SignalConnect(x.GoPointer(), "value-changed", cbRefPtr)
583583 }
584584
M v4/gtk/gtkalertdialog.go +1 -1
@@ -85,7 +85,7 @@ func (x *AlertDialog) Choose(ParentVar *Window, CancellableVar *gio.Cancellable,
8585 cbFn(arg0, arg1, arg2)
8686 }
8787 CallbackVarRef = purego.NewCallback(fcb)
88- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
88+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
8989 }
9090 }
9191
M v4/gtk/gtkappchooserbutton.go +4 -4
@@ -310,7 +310,7 @@ func (x *AppChooserButton) ConnectActivate(cb *func(AppChooserButton)) uint32 {
310310
311311 }
312312 cbRefPtr := purego.NewCallback(fcb)
313- glib.SaveCallback(cbPtr, cbRefPtr)
313+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
314314 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
315315 }
316316
@@ -330,7 +330,7 @@ func (x *AppChooserButton) ConnectChanged(cb *func(AppChooserButton)) uint32 {
330330
331331 }
332332 cbRefPtr := purego.NewCallback(fcb)
333- glib.SaveCallback(cbPtr, cbRefPtr)
333+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
334334 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
335335 }
336336
@@ -353,7 +353,7 @@ func (x *AppChooserButton) ConnectCustomItemActivated(cb *func(AppChooserButton,
353353
354354 }
355355 cbRefPtr := purego.NewCallback(fcb)
356- glib.SaveCallback(cbPtr, cbRefPtr)
356+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
357357 return gobject.SignalConnect(x.GoPointer(), "custom-item-activated", cbRefPtr)
358358 }
359359
@@ -375,7 +375,7 @@ func (x *AppChooserButton) ConnectCustomItemActivatedWithDetail(detail string, c
375375
376376 }
377377 cbRefPtr := purego.NewCallback(fcb)
378- glib.SaveCallback(cbPtr, cbRefPtr)
378+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
379379 return gobject.SignalConnect(x.GoPointer(), signalName, cbRefPtr)
380380 }
381381
M v4/gtk/gtkappchooserwidget.go +2 -2
@@ -360,7 +360,7 @@ func (x *AppChooserWidget) ConnectApplicationActivated(cb *func(AppChooserWidget
360360
361361 }
362362 cbRefPtr := purego.NewCallback(fcb)
363- glib.SaveCallback(cbPtr, cbRefPtr)
363+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
364364 return gobject.SignalConnect(x.GoPointer(), "application-activated", cbRefPtr)
365365 }
366366
@@ -380,7 +380,7 @@ func (x *AppChooserWidget) ConnectApplicationSelected(cb *func(AppChooserWidget,
380380
381381 }
382382 cbRefPtr := purego.NewCallback(fcb)
383- glib.SaveCallback(cbPtr, cbRefPtr)
383+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
384384 return gobject.SignalConnect(x.GoPointer(), "application-selected", cbRefPtr)
385385 }
386386
M v4/gtk/gtkapplication.go +3 -3
@@ -585,7 +585,7 @@ func (x *Application) ConnectQueryEnd(cb *func(Application)) uint32 {
585585
586586 }
587587 cbRefPtr := purego.NewCallback(fcb)
588- glib.SaveCallback(cbPtr, cbRefPtr)
588+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
589589 return gobject.SignalConnect(x.GoPointer(), "query-end", cbRefPtr)
590590 }
591591
@@ -607,7 +607,7 @@ func (x *Application) ConnectWindowAdded(cb *func(Application, uintptr)) uint32
607607
608608 }
609609 cbRefPtr := purego.NewCallback(fcb)
610- glib.SaveCallback(cbPtr, cbRefPtr)
610+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
611611 return gobject.SignalConnect(x.GoPointer(), "window-added", cbRefPtr)
612612 }
613613
@@ -630,7 +630,7 @@ func (x *Application) ConnectWindowRemoved(cb *func(Application, uintptr)) uint3
630630
631631 }
632632 cbRefPtr := purego.NewCallback(fcb)
633- glib.SaveCallback(cbPtr, cbRefPtr)
633+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
634634 return gobject.SignalConnect(x.GoPointer(), "window-removed", cbRefPtr)
635635 }
636636
M v4/gtk/gtkassistant.go +7 -7
@@ -379,7 +379,7 @@ func (x *Assistant) SetForwardPageFunc(PageFuncVar *AssistantPageFunc, DataVar u
379379 return cbFn(arg0, arg1)
380380 }
381381 PageFuncVarRef = purego.NewCallback(fcb)
382- glib.SaveCallback(PageFuncVarPtr, PageFuncVarRef)
382+ glib.SaveCallbackWithClosure(PageFuncVarPtr, PageFuncVarRef, PageFuncVar)
383383 }
384384 }
385385
@@ -394,7 +394,7 @@ func (x *Assistant) SetForwardPageFunc(PageFuncVar *AssistantPageFunc, DataVar u
394394 cbFn(arg0)
395395 }
396396 DestroyVarRef = purego.NewCallback(fcb)
397- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
397+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
398398 }
399399 }
400400
@@ -516,7 +516,7 @@ func (x *Assistant) ConnectApply(cb *func(Assistant)) uint32 {
516516
517517 }
518518 cbRefPtr := purego.NewCallback(fcb)
519- glib.SaveCallback(cbPtr, cbRefPtr)
519+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
520520 return gobject.SignalConnect(x.GoPointer(), "apply", cbRefPtr)
521521 }
522522
@@ -536,7 +536,7 @@ func (x *Assistant) ConnectCancel(cb *func(Assistant)) uint32 {
536536
537537 }
538538 cbRefPtr := purego.NewCallback(fcb)
539- glib.SaveCallback(cbPtr, cbRefPtr)
539+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
540540 return gobject.SignalConnect(x.GoPointer(), "cancel", cbRefPtr)
541541 }
542542
@@ -558,7 +558,7 @@ func (x *Assistant) ConnectClose(cb *func(Assistant)) uint32 {
558558
559559 }
560560 cbRefPtr := purego.NewCallback(fcb)
561- glib.SaveCallback(cbPtr, cbRefPtr)
561+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
562562 return gobject.SignalConnect(x.GoPointer(), "close", cbRefPtr)
563563 }
564564
@@ -578,7 +578,7 @@ func (x *Assistant) ConnectEscape(cb *func(Assistant)) uint32 {
578578
579579 }
580580 cbRefPtr := purego.NewCallback(fcb)
581- glib.SaveCallback(cbPtr, cbRefPtr)
581+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
582582 return gobject.SignalConnect(x.GoPointer(), "escape", cbRefPtr)
583583 }
584584
@@ -602,7 +602,7 @@ func (x *Assistant) ConnectPrepare(cb *func(Assistant, uintptr)) uint32 {
602602
603603 }
604604 cbRefPtr := purego.NewCallback(fcb)
605- glib.SaveCallback(cbPtr, cbRefPtr)
605+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
606606 return gobject.SignalConnect(x.GoPointer(), "prepare", cbRefPtr)
607607 }
608608
M v4/gtk/gtkatcontext.go +1 -1
@@ -117,7 +117,7 @@ func (x *ATContext) ConnectStateChange(cb *func(ATContext)) uint32 {
117117
118118 }
119119 cbRefPtr := purego.NewCallback(fcb)
120- glib.SaveCallback(cbPtr, cbRefPtr)
120+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
121121 return gobject.SignalConnect(x.GoPointer(), "state-change", cbRefPtr)
122122 }
123123
M v4/gtk/gtkbuilderscope.go +2 -2
@@ -285,7 +285,7 @@ func (x *BuilderCScope) AddCallbackSymbol(CallbackNameVar string, CallbackSymbol
285285 cbFn()
286286 }
287287 CallbackSymbolVarRef = purego.NewCallback(fcb)
288- glib.SaveCallback(CallbackSymbolVarPtr, CallbackSymbolVarRef)
288+ glib.SaveCallbackWithClosure(CallbackSymbolVarPtr, CallbackSymbolVarRef, CallbackSymbolVar)
289289 }
290290 }
291291
@@ -312,7 +312,7 @@ func (x *BuilderCScope) AddCallbackSymbols(FirstCallbackNameVar string, FirstCal
312312 cbFn()
313313 }
314314 FirstCallbackSymbolVarRef = purego.NewCallback(fcb)
315- glib.SaveCallback(FirstCallbackSymbolVarPtr, FirstCallbackSymbolVarRef)
315+ glib.SaveCallbackWithClosure(FirstCallbackSymbolVarPtr, FirstCallbackSymbolVarRef, FirstCallbackSymbolVar)
316316 }
317317 }
318318
M v4/gtk/gtkbutton.go +2 -2
@@ -514,7 +514,7 @@ func (x *Button) ConnectActivate(cb *func(Button)) uint32 {
514514
515515 }
516516 cbRefPtr := purego.NewCallback(fcb)
517- glib.SaveCallback(cbPtr, cbRefPtr)
517+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
518518 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
519519 }
520520
@@ -534,7 +534,7 @@ func (x *Button) ConnectClicked(cb *func(Button)) uint32 {
534534
535535 }
536536 cbRefPtr := purego.NewCallback(fcb)
537- glib.SaveCallback(cbPtr, cbRefPtr)
537+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
538538 return gobject.SignalConnect(x.GoPointer(), "clicked", cbRefPtr)
539539 }
540540
M v4/gtk/gtkcalendar.go +5 -5
@@ -467,7 +467,7 @@ func (x *Calendar) ConnectDaySelected(cb *func(Calendar)) uint32 {
467467
468468 }
469469 cbRefPtr := purego.NewCallback(fcb)
470- glib.SaveCallback(cbPtr, cbRefPtr)
470+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
471471 return gobject.SignalConnect(x.GoPointer(), "day-selected", cbRefPtr)
472472 }
473473
@@ -487,7 +487,7 @@ func (x *Calendar) ConnectNextMonth(cb *func(Calendar)) uint32 {
487487
488488 }
489489 cbRefPtr := purego.NewCallback(fcb)
490- glib.SaveCallback(cbPtr, cbRefPtr)
490+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
491491 return gobject.SignalConnect(x.GoPointer(), "next-month", cbRefPtr)
492492 }
493493
@@ -507,7 +507,7 @@ func (x *Calendar) ConnectNextYear(cb *func(Calendar)) uint32 {
507507
508508 }
509509 cbRefPtr := purego.NewCallback(fcb)
510- glib.SaveCallback(cbPtr, cbRefPtr)
510+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
511511 return gobject.SignalConnect(x.GoPointer(), "next-year", cbRefPtr)
512512 }
513513
@@ -527,7 +527,7 @@ func (x *Calendar) ConnectPrevMonth(cb *func(Calendar)) uint32 {
527527
528528 }
529529 cbRefPtr := purego.NewCallback(fcb)
530- glib.SaveCallback(cbPtr, cbRefPtr)
530+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
531531 return gobject.SignalConnect(x.GoPointer(), "prev-month", cbRefPtr)
532532 }
533533
@@ -547,7 +547,7 @@ func (x *Calendar) ConnectPrevYear(cb *func(Calendar)) uint32 {
547547
548548 }
549549 cbRefPtr := purego.NewCallback(fcb)
550- glib.SaveCallback(cbPtr, cbRefPtr)
550+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
551551 return gobject.SignalConnect(x.GoPointer(), "prev-year", cbRefPtr)
552552 }
553553
M v4/gtk/gtkcellarea.go +6 -6
@@ -1316,7 +1316,7 @@ func (x *CellArea) Foreach(CallbackVar *CellCallback, CallbackDataVar uintptr) {
13161316 return cbFn(arg0, arg1)
13171317 }
13181318 CallbackVarRef = purego.NewCallback(fcb)
1319- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
1319+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
13201320 }
13211321 }
13221322
@@ -1341,7 +1341,7 @@ func (x *CellArea) ForeachAlloc(ContextVar *CellAreaContext, WidgetVar *Widget,
13411341 return cbFn(arg0, arg1, arg2, arg3)
13421342 }
13431343 CallbackVarRef = purego.NewCallback(fcb)
1344- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
1344+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
13451345 }
13461346 }
13471347
@@ -1705,7 +1705,7 @@ func (x *CellArea) ConnectAddEditable(cb *func(CellArea, uintptr, uintptr, uintp
17051705
17061706 }
17071707 cbRefPtr := purego.NewCallback(fcb)
1708- glib.SaveCallback(cbPtr, cbRefPtr)
1708+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
17091709 return gobject.SignalConnect(x.GoPointer(), "add-editable", cbRefPtr)
17101710 }
17111711
@@ -1725,7 +1725,7 @@ func (x *CellArea) ConnectApplyAttributes(cb *func(CellArea, uintptr, uintptr, b
17251725
17261726 }
17271727 cbRefPtr := purego.NewCallback(fcb)
1728- glib.SaveCallback(cbPtr, cbRefPtr)
1728+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
17291729 return gobject.SignalConnect(x.GoPointer(), "apply-attributes", cbRefPtr)
17301730 }
17311731
@@ -1752,7 +1752,7 @@ func (x *CellArea) ConnectFocusChanged(cb *func(CellArea, uintptr, string)) uint
17521752
17531753 }
17541754 cbRefPtr := purego.NewCallback(fcb)
1755- glib.SaveCallback(cbPtr, cbRefPtr)
1755+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
17561756 return gobject.SignalConnect(x.GoPointer(), "focus-changed", cbRefPtr)
17571757 }
17581758
@@ -1773,7 +1773,7 @@ func (x *CellArea) ConnectRemoveEditable(cb *func(CellArea, uintptr, uintptr)) u
17731773
17741774 }
17751775 cbRefPtr := purego.NewCallback(fcb)
1776- glib.SaveCallback(cbPtr, cbRefPtr)
1776+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
17771777 return gobject.SignalConnect(x.GoPointer(), "remove-editable", cbRefPtr)
17781778 }
17791779
M v4/gtk/gtkcellrenderer.go +2 -2
@@ -964,7 +964,7 @@ func (x *CellRenderer) ConnectEditingCanceled(cb *func(CellRenderer)) uint32 {
964964
965965 }
966966 cbRefPtr := purego.NewCallback(fcb)
967- glib.SaveCallback(cbPtr, cbRefPtr)
967+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
968968 return gobject.SignalConnect(x.GoPointer(), "editing-canceled", cbRefPtr)
969969 }
970970
@@ -1016,7 +1016,7 @@ func (x *CellRenderer) ConnectEditingStarted(cb *func(CellRenderer, uintptr, str
10161016
10171017 }
10181018 cbRefPtr := purego.NewCallback(fcb)
1019- glib.SaveCallback(cbPtr, cbRefPtr)
1019+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
10201020 return gobject.SignalConnect(x.GoPointer(), "editing-started", cbRefPtr)
10211021 }
10221022
M v4/gtk/gtkcellrendereraccel.go +2 -2
@@ -132,7 +132,7 @@ func (x *CellRendererAccel) ConnectAccelCleared(cb *func(CellRendererAccel, stri
132132
133133 }
134134 cbRefPtr := purego.NewCallback(fcb)
135- glib.SaveCallback(cbPtr, cbRefPtr)
135+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
136136 return gobject.SignalConnect(x.GoPointer(), "accel-cleared", cbRefPtr)
137137 }
138138
@@ -152,7 +152,7 @@ func (x *CellRendererAccel) ConnectAccelEdited(cb *func(CellRendererAccel, strin
152152
153153 }
154154 cbRefPtr := purego.NewCallback(fcb)
155- glib.SaveCallback(cbPtr, cbRefPtr)
155+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
156156 return gobject.SignalConnect(x.GoPointer(), "accel-edited", cbRefPtr)
157157 }
158158
M v4/gtk/gtkcellrenderercombo.go +1 -1
@@ -151,7 +151,7 @@ func (x *CellRendererCombo) ConnectChanged(cb *func(CellRendererCombo, string, u
151151
152152 }
153153 cbRefPtr := purego.NewCallback(fcb)
154- glib.SaveCallback(cbPtr, cbRefPtr)
154+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
155155 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
156156 }
157157
M v4/gtk/gtkcellrenderertext.go +1 -1
@@ -741,7 +741,7 @@ func (x *CellRendererText) ConnectEdited(cb *func(CellRendererText, string, stri
741741
742742 }
743743 cbRefPtr := purego.NewCallback(fcb)
744- glib.SaveCallback(cbPtr, cbRefPtr)
744+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
745745 return gobject.SignalConnect(x.GoPointer(), "edited", cbRefPtr)
746746 }
747747
M v4/gtk/gtkcellrenderertoggle.go +1 -1
@@ -212,7 +212,7 @@ func (x *CellRendererToggle) ConnectToggled(cb *func(CellRendererToggle, string)
212212
213213 }
214214 cbRefPtr := purego.NewCallback(fcb)
215- glib.SaveCallback(cbPtr, cbRefPtr)
215+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
216216 return gobject.SignalConnect(x.GoPointer(), "toggled", cbRefPtr)
217217 }
218218
M v4/gtk/gtkcheckbutton.go +2 -2
@@ -487,7 +487,7 @@ func (x *CheckButton) ConnectActivate(cb *func(CheckButton)) uint32 {
487487
488488 }
489489 cbRefPtr := purego.NewCallback(fcb)
490- glib.SaveCallback(cbPtr, cbRefPtr)
490+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
491491 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
492492 }
493493
@@ -508,7 +508,7 @@ func (x *CheckButton) ConnectToggled(cb *func(CheckButton)) uint32 {
508508
509509 }
510510 cbRefPtr := purego.NewCallback(fcb)
511- glib.SaveCallback(cbPtr, cbRefPtr)
511+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
512512 return gobject.SignalConnect(x.GoPointer(), "toggled", cbRefPtr)
513513 }
514514
M v4/gtk/gtkcolorbutton.go +2 -2
@@ -220,7 +220,7 @@ func (x *ColorButton) ConnectActivate(cb *func(ColorButton)) uint32 {
220220
221221 }
222222 cbRefPtr := purego.NewCallback(fcb)
223- glib.SaveCallback(cbPtr, cbRefPtr)
223+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
224224 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
225225 }
226226
@@ -247,7 +247,7 @@ func (x *ColorButton) ConnectColorSet(cb *func(ColorButton)) uint32 {
247247
248248 }
249249 cbRefPtr := purego.NewCallback(fcb)
250- glib.SaveCallback(cbPtr, cbRefPtr)
250+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
251251 return gobject.SignalConnect(x.GoPointer(), "color-set", cbRefPtr)
252252 }
253253
M v4/gtk/gtkcolordialog.go +1 -1
@@ -83,7 +83,7 @@ func (x *ColorDialog) ChooseRgba(ParentVar *Window, InitialColorVar *gdk.RGBA, C
8383 cbFn(arg0, arg1, arg2)
8484 }
8585 CallbackVarRef = purego.NewCallback(fcb)
86- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
86+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
8787 }
8888 }
8989
M v4/gtk/gtkcolordialogbutton.go +1 -1
@@ -196,7 +196,7 @@ func (x *ColorDialogButton) ConnectActivate(cb *func(ColorDialogButton)) uint32
196196
197197 }
198198 cbRefPtr := purego.NewCallback(fcb)
199- glib.SaveCallback(cbPtr, cbRefPtr)
199+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
200200 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
201201 }
202202
M v4/gtk/gtkcolumnview.go +1 -1
@@ -569,7 +569,7 @@ func (x *ColumnView) ConnectActivate(cb *func(ColumnView, uint)) uint32 {
569569
570570 }
571571 cbRefPtr := purego.NewCallback(fcb)
572- glib.SaveCallback(cbPtr, cbRefPtr)
572+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
573573 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
574574 }
575575
M v4/gtk/gtkcombobox.go +8 -8
@@ -591,7 +591,7 @@ func (x *ComboBox) SetRowSeparatorFunc(FuncVar *TreeViewRowSeparatorFunc, DataVa
591591 return cbFn(arg0, arg1, arg2)
592592 }
593593 FuncVarRef = purego.NewCallback(fcb)
594- glib.SaveCallback(FuncVarPtr, FuncVarRef)
594+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
595595 }
596596 }
597597
@@ -606,7 +606,7 @@ func (x *ComboBox) SetRowSeparatorFunc(FuncVar *TreeViewRowSeparatorFunc, DataVa
606606 cbFn(arg0)
607607 }
608608 DestroyVarRef = purego.NewCallback(fcb)
609- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
609+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
610610 }
611611 }
612612
@@ -794,7 +794,7 @@ func (x *ComboBox) ConnectActivate(cb *func(ComboBox)) uint32 {
794794
795795 }
796796 cbRefPtr := purego.NewCallback(fcb)
797- glib.SaveCallback(cbPtr, cbRefPtr)
797+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
798798 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
799799 }
800800
@@ -818,7 +818,7 @@ func (x *ComboBox) ConnectChanged(cb *func(ComboBox)) uint32 {
818818
819819 }
820820 cbRefPtr := purego.NewCallback(fcb)
821- glib.SaveCallback(cbPtr, cbRefPtr)
821+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
822822 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
823823 }
824824
@@ -871,7 +871,7 @@ func (x *ComboBox) ConnectFormatEntryText(cb *func(ComboBox, string) string) uin
871871
872872 }
873873 cbRefPtr := purego.NewCallback(fcb)
874- glib.SaveCallback(cbPtr, cbRefPtr)
874+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
875875 return gobject.SignalConnect(x.GoPointer(), "format-entry-text", cbRefPtr)
876876 }
877877
@@ -893,7 +893,7 @@ func (x *ComboBox) ConnectMoveActive(cb *func(ComboBox, ScrollType)) uint32 {
893893
894894 }
895895 cbRefPtr := purego.NewCallback(fcb)
896- glib.SaveCallback(cbPtr, cbRefPtr)
896+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
897897 return gobject.SignalConnect(x.GoPointer(), "move-active", cbRefPtr)
898898 }
899899
@@ -917,7 +917,7 @@ func (x *ComboBox) ConnectPopdown(cb *func(ComboBox) bool) uint32 {
917917
918918 }
919919 cbRefPtr := purego.NewCallback(fcb)
920- glib.SaveCallback(cbPtr, cbRefPtr)
920+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
921921 return gobject.SignalConnect(x.GoPointer(), "popdown", cbRefPtr)
922922 }
923923
@@ -941,7 +941,7 @@ func (x *ComboBox) ConnectPopup(cb *func(ComboBox)) uint32 {
941941
942942 }
943943 cbRefPtr := purego.NewCallback(fcb)
944- glib.SaveCallback(cbPtr, cbRefPtr)
944+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
945945 return gobject.SignalConnect(x.GoPointer(), "popup", cbRefPtr)
946946 }
947947
M v4/gtk/gtkcssprovider.go +1 -1
@@ -235,7 +235,7 @@ func (x *CssProvider) ConnectParsingError(cb *func(CssProvider, uintptr, uintptr
235235
236236 }
237237 cbRefPtr := purego.NewCallback(fcb)
238- glib.SaveCallback(cbPtr, cbRefPtr)
238+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
239239 return gobject.SignalConnect(x.GoPointer(), "parsing-error", cbRefPtr)
240240 }
241241
M v4/gtk/gtkcustomfilter.go +4 -4
@@ -66,7 +66,7 @@ func NewCustomFilter(MatchFuncVar *CustomFilterFunc, UserDataVar uintptr, UserDe
6666 return cbFn(arg0, arg1)
6767 }
6868 MatchFuncVarRef = purego.NewCallback(fcb)
69- glib.SaveCallback(MatchFuncVarPtr, MatchFuncVarRef)
69+ glib.SaveCallbackWithClosure(MatchFuncVarPtr, MatchFuncVarRef, MatchFuncVar)
7070 }
7171 }
7272
@@ -81,7 +81,7 @@ func NewCustomFilter(MatchFuncVar *CustomFilterFunc, UserDataVar uintptr, UserDe
8181 cbFn(arg0)
8282 }
8383 UserDestroyVarRef = purego.NewCallback(fcb)
84- glib.SaveCallback(UserDestroyVarPtr, UserDestroyVarRef)
84+ glib.SaveCallbackWithClosure(UserDestroyVarPtr, UserDestroyVarRef, UserDestroyVar)
8585 }
8686 }
8787
@@ -119,7 +119,7 @@ func (x *CustomFilter) SetFilterFunc(MatchFuncVar *CustomFilterFunc, UserDataVar
119119 return cbFn(arg0, arg1)
120120 }
121121 MatchFuncVarRef = purego.NewCallback(fcb)
122- glib.SaveCallback(MatchFuncVarPtr, MatchFuncVarRef)
122+ glib.SaveCallbackWithClosure(MatchFuncVarPtr, MatchFuncVarRef, MatchFuncVar)
123123 }
124124 }
125125
@@ -134,7 +134,7 @@ func (x *CustomFilter) SetFilterFunc(MatchFuncVar *CustomFilterFunc, UserDataVar
134134 cbFn(arg0)
135135 }
136136 UserDestroyVarRef = purego.NewCallback(fcb)
137- glib.SaveCallback(UserDestroyVarPtr, UserDestroyVarRef)
137+ glib.SaveCallbackWithClosure(UserDestroyVarPtr, UserDestroyVarRef, UserDestroyVar)
138138 }
139139 }
140140
M v4/gtk/gtkcustomlayout.go +3 -3
@@ -73,7 +73,7 @@ func NewCustomLayout(RequestModeVar *CustomRequestModeFunc, MeasureVar *CustomMe
7373 return cbFn(arg0)
7474 }
7575 RequestModeVarRef = purego.NewCallback(fcb)
76- glib.SaveCallback(RequestModeVarPtr, RequestModeVarRef)
76+ glib.SaveCallbackWithClosure(RequestModeVarPtr, RequestModeVarRef, RequestModeVar)
7777 }
7878 }
7979
@@ -88,7 +88,7 @@ func NewCustomLayout(RequestModeVar *CustomRequestModeFunc, MeasureVar *CustomMe
8888 cbFn(arg0, arg1, arg2, arg3, arg4, arg5, arg6)
8989 }
9090 MeasureVarRef = purego.NewCallback(fcb)
91- glib.SaveCallback(MeasureVarPtr, MeasureVarRef)
91+ glib.SaveCallbackWithClosure(MeasureVarPtr, MeasureVarRef, MeasureVar)
9292 }
9393 }
9494
@@ -103,7 +103,7 @@ func NewCustomLayout(RequestModeVar *CustomRequestModeFunc, MeasureVar *CustomMe
103103 cbFn(arg0, arg1, arg2, arg3)
104104 }
105105 AllocateVarRef = purego.NewCallback(fcb)
106- glib.SaveCallback(AllocateVarPtr, AllocateVarRef)
106+ glib.SaveCallbackWithClosure(AllocateVarPtr, AllocateVarRef, AllocateVar)
107107 }
108108 }
109109
M v4/gtk/gtkcustomsorter.go +4 -4
@@ -58,7 +58,7 @@ func NewCustomSorter(SortFuncVar *glib.CompareDataFunc, UserDataVar uintptr, Use
5858 return cbFn(arg0, arg1, arg2)
5959 }
6060 SortFuncVarRef = purego.NewCallback(fcb)
61- glib.SaveCallback(SortFuncVarPtr, SortFuncVarRef)
61+ glib.SaveCallbackWithClosure(SortFuncVarPtr, SortFuncVarRef, SortFuncVar)
6262 }
6363 }
6464
@@ -73,7 +73,7 @@ func NewCustomSorter(SortFuncVar *glib.CompareDataFunc, UserDataVar uintptr, Use
7373 cbFn(arg0)
7474 }
7575 UserDestroyVarRef = purego.NewCallback(fcb)
76- glib.SaveCallback(UserDestroyVarPtr, UserDestroyVarRef)
76+ glib.SaveCallbackWithClosure(UserDestroyVarPtr, UserDestroyVarRef, UserDestroyVar)
7777 }
7878 }
7979
@@ -111,7 +111,7 @@ func (x *CustomSorter) SetSortFunc(SortFuncVar *glib.CompareDataFunc, UserDataVa
111111 return cbFn(arg0, arg1, arg2)
112112 }
113113 SortFuncVarRef = purego.NewCallback(fcb)
114- glib.SaveCallback(SortFuncVarPtr, SortFuncVarRef)
114+ glib.SaveCallbackWithClosure(SortFuncVarPtr, SortFuncVarRef, SortFuncVar)
115115 }
116116 }
117117
@@ -126,7 +126,7 @@ func (x *CustomSorter) SetSortFunc(SortFuncVar *glib.CompareDataFunc, UserDataVa
126126 cbFn(arg0)
127127 }
128128 UserDestroyVarRef = purego.NewCallback(fcb)
129- glib.SaveCallback(UserDestroyVarPtr, UserDestroyVarRef)
129+ glib.SaveCallbackWithClosure(UserDestroyVarPtr, UserDestroyVarRef, UserDestroyVar)
130130 }
131131 }
132132
M v4/gtk/gtkdialog.go +2 -2
@@ -601,7 +601,7 @@ func (x *Dialog) ConnectClose(cb *func(Dialog)) uint32 {
601601
602602 }
603603 cbRefPtr := purego.NewCallback(fcb)
604- glib.SaveCallback(cbPtr, cbRefPtr)
604+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
605605 return gobject.SignalConnect(x.GoPointer(), "close", cbRefPtr)
606606 }
607607
@@ -626,7 +626,7 @@ func (x *Dialog) ConnectResponse(cb *func(Dialog, int)) uint32 {
626626
627627 }
628628 cbRefPtr := purego.NewCallback(fcb)
629- glib.SaveCallback(cbPtr, cbRefPtr)
629+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
630630 return gobject.SignalConnect(x.GoPointer(), "response", cbRefPtr)
631631 }
632632
M v4/gtk/gtkdragsource.go +4 -4
@@ -273,7 +273,7 @@ func (x *DragSource) ConnectDragBegin(cb *func(DragSource, uintptr)) uint32 {
273273
274274 }
275275 cbRefPtr := purego.NewCallback(fcb)
276- glib.SaveCallback(cbPtr, cbRefPtr)
276+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
277277 return gobject.SignalConnect(x.GoPointer(), "drag-begin", cbRefPtr)
278278 }
279279
@@ -297,7 +297,7 @@ func (x *DragSource) ConnectDragCancel(cb *func(DragSource, uintptr, gdk.DragCan
297297
298298 }
299299 cbRefPtr := purego.NewCallback(fcb)
300- glib.SaveCallback(cbPtr, cbRefPtr)
300+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
301301 return gobject.SignalConnect(x.GoPointer(), "drag-cancel", cbRefPtr)
302302 }
303303
@@ -321,7 +321,7 @@ func (x *DragSource) ConnectDragEnd(cb *func(DragSource, uintptr, bool)) uint32
321321
322322 }
323323 cbRefPtr := purego.NewCallback(fcb)
324- glib.SaveCallback(cbPtr, cbRefPtr)
324+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
325325 return gobject.SignalConnect(x.GoPointer(), "drag-end", cbRefPtr)
326326 }
327327
@@ -347,7 +347,7 @@ func (x *DragSource) ConnectPrepare(cb *func(DragSource, float64, float64) gdk.C
347347
348348 }
349349 cbRefPtr := purego.NewCallback(fcb)
350- glib.SaveCallback(cbPtr, cbRefPtr)
350+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
351351 return gobject.SignalConnect(x.GoPointer(), "prepare", cbRefPtr)
352352 }
353353
M v4/gtk/gtkdrawingarea.go +3 -3
@@ -257,7 +257,7 @@ func (x *DrawingArea) SetDrawFunc(DrawFuncVar *DrawingAreaDrawFunc, UserDataVar
257257 cbFn(arg0, arg1, arg2, arg3, arg4)
258258 }
259259 DrawFuncVarRef = purego.NewCallback(fcb)
260- glib.SaveCallback(DrawFuncVarPtr, DrawFuncVarRef)
260+ glib.SaveCallbackWithClosure(DrawFuncVarPtr, DrawFuncVarRef, DrawFuncVar)
261261 }
262262 }
263263
@@ -272,7 +272,7 @@ func (x *DrawingArea) SetDrawFunc(DrawFuncVar *DrawingAreaDrawFunc, UserDataVar
272272 cbFn(arg0)
273273 }
274274 DestroyVarRef = purego.NewCallback(fcb)
275- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
275+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
276276 }
277277 }
278278
@@ -345,7 +345,7 @@ func (x *DrawingArea) ConnectResize(cb *func(DrawingArea, int, int)) uint32 {
345345
346346 }
347347 cbRefPtr := purego.NewCallback(fcb)
348- glib.SaveCallback(cbPtr, cbRefPtr)
348+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
349349 return gobject.SignalConnect(x.GoPointer(), "resize", cbRefPtr)
350350 }
351351
M v4/gtk/gtkdropcontrollermotion.go +3 -3
@@ -158,7 +158,7 @@ func (x *DropControllerMotion) ConnectEnter(cb *func(DropControllerMotion, float
158158
159159 }
160160 cbRefPtr := purego.NewCallback(fcb)
161- glib.SaveCallback(cbPtr, cbRefPtr)
161+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
162162 return gobject.SignalConnect(x.GoPointer(), "enter", cbRefPtr)
163163 }
164164
@@ -178,7 +178,7 @@ func (x *DropControllerMotion) ConnectLeave(cb *func(DropControllerMotion)) uint
178178
179179 }
180180 cbRefPtr := purego.NewCallback(fcb)
181- glib.SaveCallback(cbPtr, cbRefPtr)
181+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
182182 return gobject.SignalConnect(x.GoPointer(), "leave", cbRefPtr)
183183 }
184184
@@ -198,7 +198,7 @@ func (x *DropControllerMotion) ConnectMotion(cb *func(DropControllerMotion, floa
198198
199199 }
200200 cbRefPtr := purego.NewCallback(fcb)
201- glib.SaveCallback(cbPtr, cbRefPtr)
201+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
202202 return gobject.SignalConnect(x.GoPointer(), "motion", cbRefPtr)
203203 }
204204
M v4/gtk/gtkdropdown.go +1 -1
@@ -468,7 +468,7 @@ func (x *DropDown) ConnectActivate(cb *func(DropDown)) uint32 {
468468
469469 }
470470 cbRefPtr := purego.NewCallback(fcb)
471- glib.SaveCallback(cbPtr, cbRefPtr)
471+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
472472 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
473473 }
474474
M v4/gtk/gtkdroptarget.go +5 -5
@@ -393,7 +393,7 @@ func (x *DropTarget) ConnectAccept(cb *func(DropTarget, uintptr) bool) uint32 {
393393
394394 }
395395 cbRefPtr := purego.NewCallback(fcb)
396- glib.SaveCallback(cbPtr, cbRefPtr)
396+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
397397 return gobject.SignalConnect(x.GoPointer(), "accept", cbRefPtr)
398398 }
399399
@@ -421,7 +421,7 @@ func (x *DropTarget) ConnectDrop(cb *func(DropTarget, uintptr, float64, float64)
421421
422422 }
423423 cbRefPtr := purego.NewCallback(fcb)
424- glib.SaveCallback(cbPtr, cbRefPtr)
424+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
425425 return gobject.SignalConnect(x.GoPointer(), "drop", cbRefPtr)
426426 }
427427
@@ -443,7 +443,7 @@ func (x *DropTarget) ConnectEnter(cb *func(DropTarget, float64, float64) gdk.Dra
443443
444444 }
445445 cbRefPtr := purego.NewCallback(fcb)
446- glib.SaveCallback(cbPtr, cbRefPtr)
446+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
447447 return gobject.SignalConnect(x.GoPointer(), "enter", cbRefPtr)
448448 }
449449
@@ -466,7 +466,7 @@ func (x *DropTarget) ConnectLeave(cb *func(DropTarget)) uint32 {
466466
467467 }
468468 cbRefPtr := purego.NewCallback(fcb)
469- glib.SaveCallback(cbPtr, cbRefPtr)
469+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
470470 return gobject.SignalConnect(x.GoPointer(), "leave", cbRefPtr)
471471 }
472472
@@ -486,7 +486,7 @@ func (x *DropTarget) ConnectMotion(cb *func(DropTarget, float64, float64) gdk.Dr
486486
487487 }
488488 cbRefPtr := purego.NewCallback(fcb)
489- glib.SaveCallback(cbPtr, cbRefPtr)
489+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
490490 return gobject.SignalConnect(x.GoPointer(), "motion", cbRefPtr)
491491 }
492492
M v4/gtk/gtkdroptargetasync.go +5 -5
@@ -197,7 +197,7 @@ func (x *DropTargetAsync) ConnectAccept(cb *func(DropTargetAsync, uintptr) bool)
197197
198198 }
199199 cbRefPtr := purego.NewCallback(fcb)
200- glib.SaveCallback(cbPtr, cbRefPtr)
200+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
201201 return gobject.SignalConnect(x.GoPointer(), "accept", cbRefPtr)
202202 }
203203
@@ -219,7 +219,7 @@ func (x *DropTargetAsync) ConnectDragEnter(cb *func(DropTargetAsync, uintptr, fl
219219
220220 }
221221 cbRefPtr := purego.NewCallback(fcb)
222- glib.SaveCallback(cbPtr, cbRefPtr)
222+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
223223 return gobject.SignalConnect(x.GoPointer(), "drag-enter", cbRefPtr)
224224 }
225225
@@ -242,7 +242,7 @@ func (x *DropTargetAsync) ConnectDragLeave(cb *func(DropTargetAsync, uintptr)) u
242242
243243 }
244244 cbRefPtr := purego.NewCallback(fcb)
245- glib.SaveCallback(cbPtr, cbRefPtr)
245+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
246246 return gobject.SignalConnect(x.GoPointer(), "drag-leave", cbRefPtr)
247247 }
248248
@@ -262,7 +262,7 @@ func (x *DropTargetAsync) ConnectDragMotion(cb *func(DropTargetAsync, uintptr, f
262262
263263 }
264264 cbRefPtr := purego.NewCallback(fcb)
265- glib.SaveCallback(cbPtr, cbRefPtr)
265+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
266266 return gobject.SignalConnect(x.GoPointer(), "drag-motion", cbRefPtr)
267267 }
268268
@@ -295,7 +295,7 @@ func (x *DropTargetAsync) ConnectDrop(cb *func(DropTargetAsync, uintptr, float64
295295
296296 }
297297 cbRefPtr := purego.NewCallback(fcb)
298- glib.SaveCallback(cbPtr, cbRefPtr)
298+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
299299 return gobject.SignalConnect(x.GoPointer(), "drop", cbRefPtr)
300300 }
301301
M v4/gtk/gtkemojichooser.go +1 -1
@@ -129,7 +129,7 @@ func (x *EmojiChooser) ConnectEmojiPicked(cb *func(EmojiChooser, string)) uint32
129129
130130 }
131131 cbRefPtr := purego.NewCallback(fcb)
132- glib.SaveCallback(cbPtr, cbRefPtr)
132+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
133133 return gobject.SignalConnect(x.GoPointer(), "emoji-picked", cbRefPtr)
134134 }
135135
M v4/gtk/gtkentry.go +3 -3
@@ -1700,7 +1700,7 @@ func (x *Entry) ConnectActivate(cb *func(Entry)) uint32 {
17001700
17011701 }
17021702 cbRefPtr := purego.NewCallback(fcb)
1703- glib.SaveCallback(cbPtr, cbRefPtr)
1703+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
17041704 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
17051705 }
17061706
@@ -1720,7 +1720,7 @@ func (x *Entry) ConnectIconPress(cb *func(Entry, EntryIconPosition)) uint32 {
17201720
17211721 }
17221722 cbRefPtr := purego.NewCallback(fcb)
1723- glib.SaveCallback(cbPtr, cbRefPtr)
1723+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
17241724 return gobject.SignalConnect(x.GoPointer(), "icon-press", cbRefPtr)
17251725 }
17261726
@@ -1741,7 +1741,7 @@ func (x *Entry) ConnectIconRelease(cb *func(Entry, EntryIconPosition)) uint32 {
17411741
17421742 }
17431743 cbRefPtr := purego.NewCallback(fcb)
1744- glib.SaveCallback(cbPtr, cbRefPtr)
1744+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
17451745 return gobject.SignalConnect(x.GoPointer(), "icon-release", cbRefPtr)
17461746 }
17471747
M v4/gtk/gtkentrybuffer.go +2 -2
@@ -621,7 +621,7 @@ func (x *EntryBuffer) ConnectDeletedText(cb *func(EntryBuffer, uint, uint)) uint
621621
622622 }
623623 cbRefPtr := purego.NewCallback(fcb)
624- glib.SaveCallback(cbPtr, cbRefPtr)
624+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
625625 return gobject.SignalConnect(x.GoPointer(), "deleted-text", cbRefPtr)
626626 }
627627
@@ -641,7 +641,7 @@ func (x *EntryBuffer) ConnectInsertedText(cb *func(EntryBuffer, uint, string, ui
641641
642642 }
643643 cbRefPtr := purego.NewCallback(fcb)
644- glib.SaveCallback(cbPtr, cbRefPtr)
644+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
645645 return gobject.SignalConnect(x.GoPointer(), "inserted-text", cbRefPtr)
646646 }
647647
M v4/gtk/gtkentrycompletion.go +6 -6
@@ -305,7 +305,7 @@ func (x *EntryCompletion) SetMatchFunc(FuncVar *EntryCompletionMatchFunc, FuncDa
305305 return cbFn(arg0, arg1, arg2, arg3)
306306 }
307307 FuncVarRef = purego.NewCallback(fcb)
308- glib.SaveCallback(FuncVarPtr, FuncVarRef)
308+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
309309 }
310310 }
311311
@@ -320,7 +320,7 @@ func (x *EntryCompletion) SetMatchFunc(FuncVar *EntryCompletionMatchFunc, FuncDa
320320 cbFn(arg0)
321321 }
322322 FuncNotifyVarRef = purego.NewCallback(fcb)
323- glib.SaveCallback(FuncNotifyVarPtr, FuncNotifyVarRef)
323+ glib.SaveCallbackWithClosure(FuncNotifyVarPtr, FuncNotifyVarRef, FuncNotifyVar)
324324 }
325325 }
326326
@@ -585,7 +585,7 @@ func (x *EntryCompletion) ConnectCursorOnMatch(cb *func(EntryCompletion, uintptr
585585
586586 }
587587 cbRefPtr := purego.NewCallback(fcb)
588- glib.SaveCallback(cbPtr, cbRefPtr)
588+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
589589 return gobject.SignalConnect(x.GoPointer(), "cursor-on-match", cbRefPtr)
590590 }
591591
@@ -613,7 +613,7 @@ func (x *EntryCompletion) ConnectInsertPrefix(cb *func(EntryCompletion, string)
613613
614614 }
615615 cbRefPtr := purego.NewCallback(fcb)
616- glib.SaveCallback(cbPtr, cbRefPtr)
616+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
617617 return gobject.SignalConnect(x.GoPointer(), "insert-prefix", cbRefPtr)
618618 }
619619
@@ -640,7 +640,7 @@ func (x *EntryCompletion) ConnectMatchSelected(cb *func(EntryCompletion, uintptr
640640
641641 }
642642 cbRefPtr := purego.NewCallback(fcb)
643- glib.SaveCallback(cbPtr, cbRefPtr)
643+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
644644 return gobject.SignalConnect(x.GoPointer(), "match-selected", cbRefPtr)
645645 }
646646
@@ -663,7 +663,7 @@ func (x *EntryCompletion) ConnectNoMatches(cb *func(EntryCompletion)) uint32 {
663663
664664 }
665665 cbRefPtr := purego.NewCallback(fcb)
666- glib.SaveCallback(cbPtr, cbRefPtr)
666+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
667667 return gobject.SignalConnect(x.GoPointer(), "no-matches", cbRefPtr)
668668 }
669669
M v4/gtk/gtkeventcontrollerfocus.go +2 -2
@@ -146,7 +146,7 @@ func (x *EventControllerFocus) ConnectEnter(cb *func(EventControllerFocus)) uint
146146
147147 }
148148 cbRefPtr := purego.NewCallback(fcb)
149- glib.SaveCallback(cbPtr, cbRefPtr)
149+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
150150 return gobject.SignalConnect(x.GoPointer(), "enter", cbRefPtr)
151151 }
152152
@@ -174,7 +174,7 @@ func (x *EventControllerFocus) ConnectLeave(cb *func(EventControllerFocus)) uint
174174
175175 }
176176 cbRefPtr := purego.NewCallback(fcb)
177- glib.SaveCallback(cbPtr, cbRefPtr)
177+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
178178 return gobject.SignalConnect(x.GoPointer(), "leave", cbRefPtr)
179179 }
180180
M v4/gtk/gtkeventcontrollerkey.go +4 -4
@@ -138,7 +138,7 @@ func (x *EventControllerKey) ConnectImUpdate(cb *func(EventControllerKey)) uint3
138138
139139 }
140140 cbRefPtr := purego.NewCallback(fcb)
141- glib.SaveCallback(cbPtr, cbRefPtr)
141+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
142142 return gobject.SignalConnect(x.GoPointer(), "im-update", cbRefPtr)
143143 }
144144
@@ -158,7 +158,7 @@ func (x *EventControllerKey) ConnectKeyPressed(cb *func(EventControllerKey, uint
158158
159159 }
160160 cbRefPtr := purego.NewCallback(fcb)
161- glib.SaveCallback(cbPtr, cbRefPtr)
161+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
162162 return gobject.SignalConnect(x.GoPointer(), "key-pressed", cbRefPtr)
163163 }
164164
@@ -178,7 +178,7 @@ func (x *EventControllerKey) ConnectKeyReleased(cb *func(EventControllerKey, uin
178178
179179 }
180180 cbRefPtr := purego.NewCallback(fcb)
181- glib.SaveCallback(cbPtr, cbRefPtr)
181+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
182182 return gobject.SignalConnect(x.GoPointer(), "key-released", cbRefPtr)
183183 }
184184
@@ -198,7 +198,7 @@ func (x *EventControllerKey) ConnectModifiers(cb *func(EventControllerKey, gdk.M
198198
199199 }
200200 cbRefPtr := purego.NewCallback(fcb)
201- glib.SaveCallback(cbPtr, cbRefPtr)
201+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
202202 return gobject.SignalConnect(x.GoPointer(), "modifiers", cbRefPtr)
203203 }
204204
M v4/gtk/gtkeventcontrollerlegacy.go +1 -1
@@ -83,7 +83,7 @@ func (x *EventControllerLegacy) ConnectEvent(cb *func(EventControllerLegacy, uin
8383
8484 }
8585 cbRefPtr := purego.NewCallback(fcb)
86- glib.SaveCallback(cbPtr, cbRefPtr)
86+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
8787 return gobject.SignalConnect(x.GoPointer(), "event", cbRefPtr)
8888 }
8989
M v4/gtk/gtkeventcontrollermotion.go +3 -3
@@ -136,7 +136,7 @@ func (x *EventControllerMotion) ConnectEnter(cb *func(EventControllerMotion, flo
136136
137137 }
138138 cbRefPtr := purego.NewCallback(fcb)
139- glib.SaveCallback(cbPtr, cbRefPtr)
139+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
140140 return gobject.SignalConnect(x.GoPointer(), "enter", cbRefPtr)
141141 }
142142
@@ -156,7 +156,7 @@ func (x *EventControllerMotion) ConnectLeave(cb *func(EventControllerMotion)) ui
156156
157157 }
158158 cbRefPtr := purego.NewCallback(fcb)
159- glib.SaveCallback(cbPtr, cbRefPtr)
159+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
160160 return gobject.SignalConnect(x.GoPointer(), "leave", cbRefPtr)
161161 }
162162
@@ -176,7 +176,7 @@ func (x *EventControllerMotion) ConnectMotion(cb *func(EventControllerMotion, fl
176176
177177 }
178178 cbRefPtr := purego.NewCallback(fcb)
179- glib.SaveCallback(cbPtr, cbRefPtr)
179+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
180180 return gobject.SignalConnect(x.GoPointer(), "motion", cbRefPtr)
181181 }
182182
M v4/gtk/gtkeventcontrollerscroll.go +4 -4
@@ -179,7 +179,7 @@ func (x *EventControllerScroll) ConnectDecelerate(cb *func(EventControllerScroll
179179
180180 }
181181 cbRefPtr := purego.NewCallback(fcb)
182- glib.SaveCallback(cbPtr, cbRefPtr)
182+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
183183 return gobject.SignalConnect(x.GoPointer(), "decelerate", cbRefPtr)
184184 }
185185
@@ -203,7 +203,7 @@ func (x *EventControllerScroll) ConnectScroll(cb *func(EventControllerScroll, fl
203203
204204 }
205205 cbRefPtr := purego.NewCallback(fcb)
206- glib.SaveCallback(cbPtr, cbRefPtr)
206+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
207207 return gobject.SignalConnect(x.GoPointer(), "scroll", cbRefPtr)
208208 }
209209
@@ -225,7 +225,7 @@ func (x *EventControllerScroll) ConnectScrollBegin(cb *func(EventControllerScrol
225225
226226 }
227227 cbRefPtr := purego.NewCallback(fcb)
228- glib.SaveCallback(cbPtr, cbRefPtr)
228+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
229229 return gobject.SignalConnect(x.GoPointer(), "scroll-begin", cbRefPtr)
230230 }
231231
@@ -247,7 +247,7 @@ func (x *EventControllerScroll) ConnectScrollEnd(cb *func(EventControllerScroll)
247247
248248 }
249249 cbRefPtr := purego.NewCallback(fcb)
250- glib.SaveCallback(cbPtr, cbRefPtr)
250+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
251251 return gobject.SignalConnect(x.GoPointer(), "scroll-end", cbRefPtr)
252252 }
253253
M v4/gtk/gtkexpander.go +1 -1
@@ -459,7 +459,7 @@ func (x *Expander) ConnectActivate(cb *func(Expander)) uint32 {
459459
460460 }
461461 cbRefPtr := purego.NewCallback(fcb)
462- glib.SaveCallback(cbPtr, cbRefPtr)
462+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
463463 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
464464 }
465465
M v4/gtk/gtkexpression.go +5 -5
@@ -194,7 +194,7 @@ func NewCClosureExpression(ValueTypeVar types.GType, MarshalVar *gobject.Closure
194194 cbFn(arg0, arg1, arg2, arg3, arg4, arg5)
195195 }
196196 MarshalVarRef = purego.NewCallback(fcb)
197- glib.SaveCallback(MarshalVarPtr, MarshalVarRef)
197+ glib.SaveCallbackWithClosure(MarshalVarPtr, MarshalVarRef, MarshalVar)
198198 }
199199 }
200200
@@ -209,7 +209,7 @@ func NewCClosureExpression(ValueTypeVar types.GType, MarshalVar *gobject.Closure
209209 cbFn()
210210 }
211211 CallbackFuncVarRef = purego.NewCallback(fcb)
212- glib.SaveCallback(CallbackFuncVarPtr, CallbackFuncVarRef)
212+ glib.SaveCallbackWithClosure(CallbackFuncVarPtr, CallbackFuncVarRef, CallbackFuncVar)
213213 }
214214 }
215215
@@ -224,7 +224,7 @@ func NewCClosureExpression(ValueTypeVar types.GType, MarshalVar *gobject.Closure
224224 cbFn(arg0, arg1)
225225 }
226226 UserDestroyVarRef = purego.NewCallback(fcb)
227- glib.SaveCallback(UserDestroyVarPtr, UserDestroyVarRef)
227+ glib.SaveCallbackWithClosure(UserDestroyVarPtr, UserDestroyVarRef, UserDestroyVar)
228228 }
229229 }
230230
@@ -692,7 +692,7 @@ func (x *Expression) Watch(ThisVar *gobject.Object, NotifyVar *ExpressionNotify,
692692 cbFn(arg0)
693693 }
694694 NotifyVarRef = purego.NewCallback(fcb)
695- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)
695+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
696696 }
697697 }
698698
@@ -707,7 +707,7 @@ func (x *Expression) Watch(ThisVar *gobject.Object, NotifyVar *ExpressionNotify,
707707 cbFn(arg0)
708708 }
709709 UserDestroyVarRef = purego.NewCallback(fcb)
710- glib.SaveCallback(UserDestroyVarPtr, UserDestroyVarRef)
710+ glib.SaveCallbackWithClosure(UserDestroyVarPtr, UserDestroyVarRef, UserDestroyVar)
711711 }
712712 }
713713
M v4/gtk/gtkfilechooserwidget.go +12 -12
@@ -146,7 +146,7 @@ func (x *FileChooserWidget) ConnectDesktopFolder(cb *func(FileChooserWidget)) ui
146146
147147 }
148148 cbRefPtr := purego.NewCallback(fcb)
149- glib.SaveCallback(cbPtr, cbRefPtr)
149+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
150150 return gobject.SignalConnect(x.GoPointer(), "desktop-folder", cbRefPtr)
151151 }
152152
@@ -177,7 +177,7 @@ func (x *FileChooserWidget) ConnectDownFolder(cb *func(FileChooserWidget)) uint3
177177
178178 }
179179 cbRefPtr := purego.NewCallback(fcb)
180- glib.SaveCallback(cbPtr, cbRefPtr)
180+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
181181 return gobject.SignalConnect(x.GoPointer(), "down-folder", cbRefPtr)
182182 }
183183
@@ -204,7 +204,7 @@ func (x *FileChooserWidget) ConnectHomeFolder(cb *func(FileChooserWidget)) uint3
204204
205205 }
206206 cbRefPtr := purego.NewCallback(fcb)
207- glib.SaveCallback(cbPtr, cbRefPtr)
207+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
208208 return gobject.SignalConnect(x.GoPointer(), "home-folder", cbRefPtr)
209209 }
210210
@@ -236,7 +236,7 @@ func (x *FileChooserWidget) ConnectLocationPopup(cb *func(FileChooserWidget, str
236236
237237 }
238238 cbRefPtr := purego.NewCallback(fcb)
239- glib.SaveCallback(cbPtr, cbRefPtr)
239+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
240240 return gobject.SignalConnect(x.GoPointer(), "location-popup", cbRefPtr)
241241 }
242242
@@ -263,7 +263,7 @@ func (x *FileChooserWidget) ConnectLocationPopupOnPaste(cb *func(FileChooserWidg
263263
264264 }
265265 cbRefPtr := purego.NewCallback(fcb)
266- glib.SaveCallback(cbPtr, cbRefPtr)
266+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
267267 return gobject.SignalConnect(x.GoPointer(), "location-popup-on-paste", cbRefPtr)
268268 }
269269
@@ -291,7 +291,7 @@ func (x *FileChooserWidget) ConnectLocationTogglePopup(cb *func(FileChooserWidge
291291
292292 }
293293 cbRefPtr := purego.NewCallback(fcb)
294- glib.SaveCallback(cbPtr, cbRefPtr)
294+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
295295 return gobject.SignalConnect(x.GoPointer(), "location-toggle-popup", cbRefPtr)
296296 }
297297
@@ -317,7 +317,7 @@ func (x *FileChooserWidget) ConnectPlacesShortcut(cb *func(FileChooserWidget)) u
317317
318318 }
319319 cbRefPtr := purego.NewCallback(fcb)
320- glib.SaveCallback(cbPtr, cbRefPtr)
320+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
321321 return gobject.SignalConnect(x.GoPointer(), "places-shortcut", cbRefPtr)
322322 }
323323
@@ -350,7 +350,7 @@ func (x *FileChooserWidget) ConnectQuickBookmark(cb *func(FileChooserWidget, int
350350
351351 }
352352 cbRefPtr := purego.NewCallback(fcb)
353- glib.SaveCallback(cbPtr, cbRefPtr)
353+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
354354 return gobject.SignalConnect(x.GoPointer(), "quick-bookmark", cbRefPtr)
355355 }
356356
@@ -376,7 +376,7 @@ func (x *FileChooserWidget) ConnectRecentShortcut(cb *func(FileChooserWidget)) u
376376
377377 }
378378 cbRefPtr := purego.NewCallback(fcb)
379- glib.SaveCallback(cbPtr, cbRefPtr)
379+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
380380 return gobject.SignalConnect(x.GoPointer(), "recent-shortcut", cbRefPtr)
381381 }
382382
@@ -402,7 +402,7 @@ func (x *FileChooserWidget) ConnectSearchShortcut(cb *func(FileChooserWidget)) u
402402
403403 }
404404 cbRefPtr := purego.NewCallback(fcb)
405- glib.SaveCallback(cbPtr, cbRefPtr)
405+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
406406 return gobject.SignalConnect(x.GoPointer(), "search-shortcut", cbRefPtr)
407407 }
408408
@@ -428,7 +428,7 @@ func (x *FileChooserWidget) ConnectShowHidden(cb *func(FileChooserWidget)) uint3
428428
429429 }
430430 cbRefPtr := purego.NewCallback(fcb)
431- glib.SaveCallback(cbPtr, cbRefPtr)
431+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
432432 return gobject.SignalConnect(x.GoPointer(), "show-hidden", cbRefPtr)
433433 }
434434
@@ -455,7 +455,7 @@ func (x *FileChooserWidget) ConnectUpFolder(cb *func(FileChooserWidget)) uint32
455455
456456 }
457457 cbRefPtr := purego.NewCallback(fcb)
458- glib.SaveCallback(cbPtr, cbRefPtr)
458+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
459459 return gobject.SignalConnect(x.GoPointer(), "up-folder", cbRefPtr)
460460 }
461461
M v4/gtk/gtkfiledialog.go +8 -8
@@ -197,7 +197,7 @@ func (x *FileDialog) Open(ParentVar *Window, CancellableVar *gio.Cancellable, Ca
197197 cbFn(arg0, arg1, arg2)
198198 }
199199 CallbackVarRef = purego.NewCallback(fcb)
200- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
200+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
201201 }
202202 }
203203
@@ -252,7 +252,7 @@ func (x *FileDialog) OpenMultiple(ParentVar *Window, CancellableVar *gio.Cancell
252252 cbFn(arg0, arg1, arg2)
253253 }
254254 CallbackVarRef = purego.NewCallback(fcb)
255- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
255+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
256256 }
257257 }
258258
@@ -310,7 +310,7 @@ func (x *FileDialog) OpenMultipleTextFiles(ParentVar *Window, CancellableVar *gi
310310 cbFn(arg0, arg1, arg2)
311311 }
312312 CallbackVarRef = purego.NewCallback(fcb)
313- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
313+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
314314 }
315315 }
316316
@@ -364,7 +364,7 @@ func (x *FileDialog) OpenTextFile(ParentVar *Window, CancellableVar *gio.Cancell
364364 cbFn(arg0, arg1, arg2)
365365 }
366366 CallbackVarRef = purego.NewCallback(fcb)
367- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
367+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
368368 }
369369 }
370370
@@ -422,7 +422,7 @@ func (x *FileDialog) Save(ParentVar *Window, CancellableVar *gio.Cancellable, Ca
422422 cbFn(arg0, arg1, arg2)
423423 }
424424 CallbackVarRef = purego.NewCallback(fcb)
425- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
425+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
426426 }
427427 }
428428
@@ -477,7 +477,7 @@ func (x *FileDialog) SaveTextFile(ParentVar *Window, CancellableVar *gio.Cancell
477477 cbFn(arg0, arg1, arg2)
478478 }
479479 CallbackVarRef = purego.NewCallback(fcb)
480- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
480+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
481481 }
482482 }
483483
@@ -542,7 +542,7 @@ func (x *FileDialog) SelectFolder(ParentVar *Window, CancellableVar *gio.Cancell
542542 cbFn(arg0, arg1, arg2)
543543 }
544544 CallbackVarRef = purego.NewCallback(fcb)
545- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
545+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
546546 }
547547 }
548548
@@ -598,7 +598,7 @@ func (x *FileDialog) SelectMultipleFolders(ParentVar *Window, CancellableVar *gi
598598 cbFn(arg0, arg1, arg2)
599599 }
600600 CallbackVarRef = purego.NewCallback(fcb)
601- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
601+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
602602 }
603603 }
604604
M v4/gtk/gtkfilelauncher.go +2 -2
@@ -121,7 +121,7 @@ func (x *FileLauncher) Launch(ParentVar *Window, CancellableVar *gio.Cancellable
121121 cbFn(arg0, arg1, arg2)
122122 }
123123 CallbackVarRef = purego.NewCallback(fcb)
124- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
124+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
125125 }
126126 }
127127
@@ -164,7 +164,7 @@ func (x *FileLauncher) OpenContainingFolder(ParentVar *Window, CancellableVar *g
164164 cbFn(arg0, arg1, arg2)
165165 }
166166 CallbackVarRef = purego.NewCallback(fcb)
167- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
167+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
168168 }
169169 }
170170
M v4/gtk/gtkfilter.go +1 -1
@@ -461,7 +461,7 @@ func (x *Filter) ConnectChanged(cb *func(Filter, FilterChange)) uint32 {
461461
462462 }
463463 cbRefPtr := purego.NewCallback(fcb)
464- glib.SaveCallback(cbPtr, cbRefPtr)
464+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
465465 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
466466 }
467467
M v4/gtk/gtkflowbox.go +15 -15
@@ -209,7 +209,7 @@ func (x *FlowBox) BindModel(ModelVar gio.ListModel, CreateWidgetFuncVar *FlowBox
209209 return cbFn(arg0, arg1)
210210 }
211211 CreateWidgetFuncVarRef = purego.NewCallback(fcb)
212- glib.SaveCallback(CreateWidgetFuncVarPtr, CreateWidgetFuncVarRef)
212+ glib.SaveCallbackWithClosure(CreateWidgetFuncVarPtr, CreateWidgetFuncVarRef, CreateWidgetFuncVar)
213213 }
214214 }
215215
@@ -224,7 +224,7 @@ func (x *FlowBox) BindModel(ModelVar gio.ListModel, CreateWidgetFuncVar *FlowBox
224224 cbFn(arg0)
225225 }
226226 UserDataFreeFuncVarRef = purego.NewCallback(fcb)
227- glib.SaveCallback(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef)
227+ glib.SaveCallbackWithClosure(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef, UserDataFreeFuncVar)
228228 }
229229 }
230230
@@ -463,7 +463,7 @@ func (x *FlowBox) SelectedForeach(FuncVar *FlowBoxForeachFunc, DataVar uintptr)
463463 cbFn(arg0, arg1, arg2)
464464 }
465465 FuncVarRef = purego.NewCallback(fcb)
466- glib.SaveCallback(FuncVarPtr, FuncVarRef)
466+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
467467 }
468468 }
469469
@@ -518,7 +518,7 @@ func (x *FlowBox) SetFilterFunc(FilterFuncVar *FlowBoxFilterFunc, UserDataVar ui
518518 return cbFn(arg0, arg1)
519519 }
520520 FilterFuncVarRef = purego.NewCallback(fcb)
521- glib.SaveCallback(FilterFuncVarPtr, FilterFuncVarRef)
521+ glib.SaveCallbackWithClosure(FilterFuncVarPtr, FilterFuncVarRef, FilterFuncVar)
522522 }
523523 }
524524
@@ -533,7 +533,7 @@ func (x *FlowBox) SetFilterFunc(FilterFuncVar *FlowBoxFilterFunc, UserDataVar ui
533533 cbFn(arg0)
534534 }
535535 DestroyVarRef = purego.NewCallback(fcb)
536- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
536+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
537537 }
538538 }
539539
@@ -638,7 +638,7 @@ func (x *FlowBox) SetSortFunc(SortFuncVar *FlowBoxSortFunc, UserDataVar uintptr,
638638 return cbFn(arg0, arg1, arg2)
639639 }
640640 SortFuncVarRef = purego.NewCallback(fcb)
641- glib.SaveCallback(SortFuncVarPtr, SortFuncVarRef)
641+ glib.SaveCallbackWithClosure(SortFuncVarPtr, SortFuncVarRef, SortFuncVar)
642642 }
643643 }
644644
@@ -653,7 +653,7 @@ func (x *FlowBox) SetSortFunc(SortFuncVar *FlowBoxSortFunc, UserDataVar uintptr,
653653 cbFn(arg0)
654654 }
655655 DestroyVarRef = purego.NewCallback(fcb)
656- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
656+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
657657 }
658658 }
659659
@@ -864,7 +864,7 @@ func (x *FlowBox) ConnectActivateCursorChild(cb *func(FlowBox)) uint32 {
864864
865865 }
866866 cbRefPtr := purego.NewCallback(fcb)
867- glib.SaveCallback(cbPtr, cbRefPtr)
867+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
868868 return gobject.SignalConnect(x.GoPointer(), "activate-cursor-child", cbRefPtr)
869869 }
870870
@@ -884,7 +884,7 @@ func (x *FlowBox) ConnectChildActivated(cb *func(FlowBox, uintptr)) uint32 {
884884
885885 }
886886 cbRefPtr := purego.NewCallback(fcb)
887- glib.SaveCallback(cbPtr, cbRefPtr)
887+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
888888 return gobject.SignalConnect(x.GoPointer(), "child-activated", cbRefPtr)
889889 }
890890
@@ -919,7 +919,7 @@ func (x *FlowBox) ConnectMoveCursor(cb *func(FlowBox, MovementStep, int, bool, b
919919
920920 }
921921 cbRefPtr := purego.NewCallback(fcb)
922- glib.SaveCallback(cbPtr, cbRefPtr)
922+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
923923 return gobject.SignalConnect(x.GoPointer(), "move-cursor", cbRefPtr)
924924 }
925925
@@ -944,7 +944,7 @@ func (x *FlowBox) ConnectSelectAll(cb *func(FlowBox)) uint32 {
944944
945945 }
946946 cbRefPtr := purego.NewCallback(fcb)
947- glib.SaveCallback(cbPtr, cbRefPtr)
947+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
948948 return gobject.SignalConnect(x.GoPointer(), "select-all", cbRefPtr)
949949 }
950950
@@ -968,7 +968,7 @@ func (x *FlowBox) ConnectSelectedChildrenChanged(cb *func(FlowBox)) uint32 {
968968
969969 }
970970 cbRefPtr := purego.NewCallback(fcb)
971- glib.SaveCallback(cbPtr, cbRefPtr)
971+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
972972 return gobject.SignalConnect(x.GoPointer(), "selected-children-changed", cbRefPtr)
973973 }
974974
@@ -992,7 +992,7 @@ func (x *FlowBox) ConnectToggleCursorChild(cb *func(FlowBox)) uint32 {
992992
993993 }
994994 cbRefPtr := purego.NewCallback(fcb)
995- glib.SaveCallback(cbPtr, cbRefPtr)
995+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
996996 return gobject.SignalConnect(x.GoPointer(), "toggle-cursor-child", cbRefPtr)
997997 }
998998
@@ -1017,7 +1017,7 @@ func (x *FlowBox) ConnectUnselectAll(cb *func(FlowBox)) uint32 {
10171017
10181018 }
10191019 cbRefPtr := purego.NewCallback(fcb)
1020- glib.SaveCallback(cbPtr, cbRefPtr)
1020+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
10211021 return gobject.SignalConnect(x.GoPointer(), "unselect-all", cbRefPtr)
10221022 }
10231023
@@ -1466,7 +1466,7 @@ func (x *FlowBoxChild) ConnectActivate(cb *func(FlowBoxChild)) uint32 {
14661466
14671467 }
14681468 cbRefPtr := purego.NewCallback(fcb)
1469- glib.SaveCallback(cbPtr, cbRefPtr)
1469+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
14701470 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
14711471 }
14721472
M v4/gtk/gtkfontbutton.go +2 -2
@@ -262,7 +262,7 @@ func (x *FontButton) ConnectActivate(cb *func(FontButton)) uint32 {
262262
263263 }
264264 cbRefPtr := purego.NewCallback(fcb)
265- glib.SaveCallback(cbPtr, cbRefPtr)
265+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
266266 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
267267 }
268268
@@ -289,7 +289,7 @@ func (x *FontButton) ConnectFontSet(cb *func(FontButton)) uint32 {
289289
290290 }
291291 cbRefPtr := purego.NewCallback(fcb)
292- glib.SaveCallback(cbPtr, cbRefPtr)
292+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
293293 return gobject.SignalConnect(x.GoPointer(), "font-set", cbRefPtr)
294294 }
295295
M v4/gtk/gtkfontdialog.go +4 -4
@@ -87,7 +87,7 @@ func (x *FontDialog) ChooseFace(ParentVar *Window, InitialValueVar *pango.FontFa
8787 cbFn(arg0, arg1, arg2)
8888 }
8989 CallbackVarRef = purego.NewCallback(fcb)
90- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
90+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
9191 }
9292 }
9393
@@ -137,7 +137,7 @@ func (x *FontDialog) ChooseFamily(ParentVar *Window, InitialValueVar *pango.Font
137137 cbFn(arg0, arg1, arg2)
138138 }
139139 CallbackVarRef = purego.NewCallback(fcb)
140- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
140+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
141141 }
142142 }
143143
@@ -190,7 +190,7 @@ func (x *FontDialog) ChooseFont(ParentVar *Window, InitialValueVar *pango.FontDe
190190 cbFn(arg0, arg1, arg2)
191191 }
192192 CallbackVarRef = purego.NewCallback(fcb)
193- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
193+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
194194 }
195195 }
196196
@@ -220,7 +220,7 @@ func (x *FontDialog) ChooseFontAndFeatures(ParentVar *Window, InitialValueVar *p
220220 cbFn(arg0, arg1, arg2)
221221 }
222222 CallbackVarRef = purego.NewCallback(fcb)
223- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
223+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
224224 }
225225 }
226226
M v4/gtk/gtkfontdialogbutton.go +1 -1
@@ -424,7 +424,7 @@ func (x *FontDialogButton) ConnectActivate(cb *func(FontDialogButton)) uint32 {
424424
425425 }
426426 cbRefPtr := purego.NewCallback(fcb)
427- glib.SaveCallback(cbPtr, cbRefPtr)
427+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
428428 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
429429 }
430430
M v4/gtk/gtkgesture.go +5 -5
@@ -504,7 +504,7 @@ func (x *Gesture) ConnectBegin(cb *func(Gesture, uintptr)) uint32 {
504504
505505 }
506506 cbRefPtr := purego.NewCallback(fcb)
507- glib.SaveCallback(cbPtr, cbRefPtr)
507+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
508508 return gobject.SignalConnect(x.GoPointer(), "begin", cbRefPtr)
509509 }
510510
@@ -533,7 +533,7 @@ func (x *Gesture) ConnectCancel(cb *func(Gesture, uintptr)) uint32 {
533533
534534 }
535535 cbRefPtr := purego.NewCallback(fcb)
536- glib.SaveCallback(cbPtr, cbRefPtr)
536+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
537537 return gobject.SignalConnect(x.GoPointer(), "cancel", cbRefPtr)
538538 }
539539
@@ -561,7 +561,7 @@ func (x *Gesture) ConnectEnd(cb *func(Gesture, uintptr)) uint32 {
561561
562562 }
563563 cbRefPtr := purego.NewCallback(fcb)
564- glib.SaveCallback(cbPtr, cbRefPtr)
564+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
565565 return gobject.SignalConnect(x.GoPointer(), "end", cbRefPtr)
566566 }
567567
@@ -584,7 +584,7 @@ func (x *Gesture) ConnectSequenceStateChanged(cb *func(Gesture, uintptr, EventSe
584584
585585 }
586586 cbRefPtr := purego.NewCallback(fcb)
587- glib.SaveCallback(cbPtr, cbRefPtr)
587+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
588588 return gobject.SignalConnect(x.GoPointer(), "sequence-state-changed", cbRefPtr)
589589 }
590590
@@ -606,7 +606,7 @@ func (x *Gesture) ConnectUpdate(cb *func(Gesture, uintptr)) uint32 {
606606
607607 }
608608 cbRefPtr := purego.NewCallback(fcb)
609- glib.SaveCallback(cbPtr, cbRefPtr)
609+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
610610 return gobject.SignalConnect(x.GoPointer(), "update", cbRefPtr)
611611 }
612612
M v4/gtk/gtkgestureclick.go +4 -4
@@ -87,7 +87,7 @@ func (x *GestureClick) ConnectPressed(cb *func(GestureClick, int, float64, float
8787
8888 }
8989 cbRefPtr := purego.NewCallback(fcb)
90- glib.SaveCallback(cbPtr, cbRefPtr)
90+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
9191 return gobject.SignalConnect(x.GoPointer(), "pressed", cbRefPtr)
9292 }
9393
@@ -112,7 +112,7 @@ func (x *GestureClick) ConnectReleased(cb *func(GestureClick, int, float64, floa
112112
113113 }
114114 cbRefPtr := purego.NewCallback(fcb)
115- glib.SaveCallback(cbPtr, cbRefPtr)
115+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
116116 return gobject.SignalConnect(x.GoPointer(), "released", cbRefPtr)
117117 }
118118
@@ -132,7 +132,7 @@ func (x *GestureClick) ConnectStopped(cb *func(GestureClick)) uint32 {
132132
133133 }
134134 cbRefPtr := purego.NewCallback(fcb)
135- glib.SaveCallback(cbPtr, cbRefPtr)
135+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
136136 return gobject.SignalConnect(x.GoPointer(), "stopped", cbRefPtr)
137137 }
138138
@@ -157,7 +157,7 @@ func (x *GestureClick) ConnectUnpairedRelease(cb *func(GestureClick, float64, fl
157157
158158 }
159159 cbRefPtr := purego.NewCallback(fcb)
160- glib.SaveCallback(cbPtr, cbRefPtr)
160+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
161161 return gobject.SignalConnect(x.GoPointer(), "unpaired-release", cbRefPtr)
162162 }
163163
M v4/gtk/gtkgesturedrag.go +3 -3
@@ -116,7 +116,7 @@ func (x *GestureDrag) ConnectDragBegin(cb *func(GestureDrag, float64, float64))
116116
117117 }
118118 cbRefPtr := purego.NewCallback(fcb)
119- glib.SaveCallback(cbPtr, cbRefPtr)
119+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
120120 return gobject.SignalConnect(x.GoPointer(), "drag-begin", cbRefPtr)
121121 }
122122
@@ -136,7 +136,7 @@ func (x *GestureDrag) ConnectDragEnd(cb *func(GestureDrag, float64, float64)) ui
136136
137137 }
138138 cbRefPtr := purego.NewCallback(fcb)
139- glib.SaveCallback(cbPtr, cbRefPtr)
139+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
140140 return gobject.SignalConnect(x.GoPointer(), "drag-end", cbRefPtr)
141141 }
142142
@@ -156,7 +156,7 @@ func (x *GestureDrag) ConnectDragUpdate(cb *func(GestureDrag, float64, float64))
156156
157157 }
158158 cbRefPtr := purego.NewCallback(fcb)
159- glib.SaveCallback(cbPtr, cbRefPtr)
159+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
160160 return gobject.SignalConnect(x.GoPointer(), "drag-update", cbRefPtr)
161161 }
162162
M v4/gtk/gtkgesturelongpress.go +2 -2
@@ -134,7 +134,7 @@ func (x *GestureLongPress) ConnectCancelled(cb *func(GestureLongPress)) uint32 {
134134
135135 }
136136 cbRefPtr := purego.NewCallback(fcb)
137- glib.SaveCallback(cbPtr, cbRefPtr)
137+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
138138 return gobject.SignalConnect(x.GoPointer(), "cancelled", cbRefPtr)
139139 }
140140
@@ -155,7 +155,7 @@ func (x *GestureLongPress) ConnectPressed(cb *func(GestureLongPress, float64, fl
155155
156156 }
157157 cbRefPtr := purego.NewCallback(fcb)
158- glib.SaveCallback(cbPtr, cbRefPtr)
158+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
159159 return gobject.SignalConnect(x.GoPointer(), "pressed", cbRefPtr)
160160 }
161161
M v4/gtk/gtkgesturepan.go +1 -1
@@ -112,7 +112,7 @@ func (x *GesturePan) ConnectPan(cb *func(GesturePan, PanDirection, float64)) uin
112112
113113 }
114114 cbRefPtr := purego.NewCallback(fcb)
115- glib.SaveCallback(cbPtr, cbRefPtr)
115+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
116116 return gobject.SignalConnect(x.GoPointer(), "pan", cbRefPtr)
117117 }
118118
M v4/gtk/gtkgesturerotate.go +1 -1
@@ -98,7 +98,7 @@ func (x *GestureRotate) ConnectAngleChanged(cb *func(GestureRotate, float64, flo
9898
9999 }
100100 cbRefPtr := purego.NewCallback(fcb)
101- glib.SaveCallback(cbPtr, cbRefPtr)
101+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
102102 return gobject.SignalConnect(x.GoPointer(), "angle-changed", cbRefPtr)
103103 }
104104
M v4/gtk/gtkgesturestylus.go +4 -4
@@ -200,7 +200,7 @@ func (x *GestureStylus) ConnectDown(cb *func(GestureStylus, float64, float64)) u
200200
201201 }
202202 cbRefPtr := purego.NewCallback(fcb)
203- glib.SaveCallback(cbPtr, cbRefPtr)
203+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
204204 return gobject.SignalConnect(x.GoPointer(), "down", cbRefPtr)
205205 }
206206
@@ -220,7 +220,7 @@ func (x *GestureStylus) ConnectMotion(cb *func(GestureStylus, float64, float64))
220220
221221 }
222222 cbRefPtr := purego.NewCallback(fcb)
223- glib.SaveCallback(cbPtr, cbRefPtr)
223+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
224224 return gobject.SignalConnect(x.GoPointer(), "motion", cbRefPtr)
225225 }
226226
@@ -240,7 +240,7 @@ func (x *GestureStylus) ConnectProximity(cb *func(GestureStylus, float64, float6
240240
241241 }
242242 cbRefPtr := purego.NewCallback(fcb)
243- glib.SaveCallback(cbPtr, cbRefPtr)
243+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
244244 return gobject.SignalConnect(x.GoPointer(), "proximity", cbRefPtr)
245245 }
246246
@@ -260,7 +260,7 @@ func (x *GestureStylus) ConnectUp(cb *func(GestureStylus, float64, float64)) uin
260260
261261 }
262262 cbRefPtr := purego.NewCallback(fcb)
263- glib.SaveCallback(cbPtr, cbRefPtr)
263+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
264264 return gobject.SignalConnect(x.GoPointer(), "up", cbRefPtr)
265265 }
266266
M v4/gtk/gtkgestureswipe.go +1 -1
@@ -107,7 +107,7 @@ func (x *GestureSwipe) ConnectSwipe(cb *func(GestureSwipe, float64, float64)) ui
107107
108108 }
109109 cbRefPtr := purego.NewCallback(fcb)
110- glib.SaveCallback(cbPtr, cbRefPtr)
110+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
111111 return gobject.SignalConnect(x.GoPointer(), "swipe", cbRefPtr)
112112 }
113113
M v4/gtk/gtkgesturezoom.go +1 -1
@@ -100,7 +100,7 @@ func (x *GestureZoom) ConnectScaleChanged(cb *func(GestureZoom, float64)) uint32
100100
101101 }
102102 cbRefPtr := purego.NewCallback(fcb)
103- glib.SaveCallback(cbPtr, cbRefPtr)
103+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
104104 return gobject.SignalConnect(x.GoPointer(), "scale-changed", cbRefPtr)
105105 }
106106
M v4/gtk/gtkglarea.go +3 -3
@@ -657,7 +657,7 @@ func (x *GLArea) ConnectCreateContext(cb *func(GLArea) gdk.GLContext) uint32 {
657657
658658 }
659659 cbRefPtr := purego.NewCallback(fcb)
660- glib.SaveCallback(cbPtr, cbRefPtr)
660+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
661661 return gobject.SignalConnect(x.GoPointer(), "create-context", cbRefPtr)
662662 }
663663
@@ -680,7 +680,7 @@ func (x *GLArea) ConnectRender(cb *func(GLArea, uintptr) bool) uint32 {
680680
681681 }
682682 cbRefPtr := purego.NewCallback(fcb)
683- glib.SaveCallback(cbPtr, cbRefPtr)
683+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
684684 return gobject.SignalConnect(x.GoPointer(), "render", cbRefPtr)
685685 }
686686
@@ -710,7 +710,7 @@ func (x *GLArea) ConnectResize(cb *func(GLArea, int, int)) uint32 {
710710
711711 }
712712 cbRefPtr := purego.NewCallback(fcb)
713- glib.SaveCallback(cbPtr, cbRefPtr)
713+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
714714 return gobject.SignalConnect(x.GoPointer(), "resize", cbRefPtr)
715715 }
716716
M v4/gtk/gtkgridview.go +1 -1
@@ -385,7 +385,7 @@ func (x *GridView) ConnectActivate(cb *func(GridView, uint)) uint32 {
385385
386386 }
387387 cbRefPtr := purego.NewCallback(fcb)
388- glib.SaveCallback(cbPtr, cbRefPtr)
388+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
389389 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
390390 }
391391
M v4/gtk/gtkicontheme.go +1 -1
@@ -493,7 +493,7 @@ func (x *IconTheme) ConnectChanged(cb *func(IconTheme)) uint32 {
493493
494494 }
495495 cbRefPtr := purego.NewCallback(fcb)
496- glib.SaveCallback(cbPtr, cbRefPtr)
496+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
497497 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
498498 }
499499
M v4/gtk/gtkiconview.go +9 -9
@@ -573,7 +573,7 @@ func (x *IconView) SelectedForeach(FuncVar *IconViewForeachFunc, DataVar uintptr
573573 cbFn(arg0, arg1, arg2)
574574 }
575575 FuncVarRef = purego.NewCallback(fcb)
576- glib.SaveCallback(FuncVarPtr, FuncVarRef)
576+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
577577 }
578578 }
579579
@@ -1154,7 +1154,7 @@ func (x *IconView) ConnectActivateCursorItem(cb *func(IconView) bool) uint32 {
11541154
11551155 }
11561156 cbRefPtr := purego.NewCallback(fcb)
1157- glib.SaveCallback(cbPtr, cbRefPtr)
1157+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
11581158 return gobject.SignalConnect(x.GoPointer(), "activate-cursor-item", cbRefPtr)
11591159 }
11601160
@@ -1180,7 +1180,7 @@ func (x *IconView) ConnectItemActivated(cb *func(IconView, uintptr)) uint32 {
11801180
11811181 }
11821182 cbRefPtr := purego.NewCallback(fcb)
1183- glib.SaveCallback(cbPtr, cbRefPtr)
1183+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
11841184 return gobject.SignalConnect(x.GoPointer(), "item-activated", cbRefPtr)
11851185 }
11861186
@@ -1213,7 +1213,7 @@ func (x *IconView) ConnectMoveCursor(cb *func(IconView, MovementStep, int, bool,
12131213
12141214 }
12151215 cbRefPtr := purego.NewCallback(fcb)
1216- glib.SaveCallback(cbPtr, cbRefPtr)
1216+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
12171217 return gobject.SignalConnect(x.GoPointer(), "move-cursor", cbRefPtr)
12181218 }
12191219
@@ -1240,7 +1240,7 @@ func (x *IconView) ConnectSelectAll(cb *func(IconView)) uint32 {
12401240
12411241 }
12421242 cbRefPtr := purego.NewCallback(fcb)
1243- glib.SaveCallback(cbPtr, cbRefPtr)
1243+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
12441244 return gobject.SignalConnect(x.GoPointer(), "select-all", cbRefPtr)
12451245 }
12461246
@@ -1268,7 +1268,7 @@ func (x *IconView) ConnectSelectCursorItem(cb *func(IconView)) uint32 {
12681268
12691269 }
12701270 cbRefPtr := purego.NewCallback(fcb)
1271- glib.SaveCallback(cbPtr, cbRefPtr)
1271+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
12721272 return gobject.SignalConnect(x.GoPointer(), "select-cursor-item", cbRefPtr)
12731273 }
12741274
@@ -1289,7 +1289,7 @@ func (x *IconView) ConnectSelectionChanged(cb *func(IconView)) uint32 {
12891289
12901290 }
12911291 cbRefPtr := purego.NewCallback(fcb)
1292- glib.SaveCallback(cbPtr, cbRefPtr)
1292+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
12931293 return gobject.SignalConnect(x.GoPointer(), "selection-changed", cbRefPtr)
12941294 }
12951295
@@ -1318,7 +1318,7 @@ func (x *IconView) ConnectToggleCursorItem(cb *func(IconView)) uint32 {
13181318
13191319 }
13201320 cbRefPtr := purego.NewCallback(fcb)
1321- glib.SaveCallback(cbPtr, cbRefPtr)
1321+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
13221322 return gobject.SignalConnect(x.GoPointer(), "toggle-cursor-item", cbRefPtr)
13231323 }
13241324
@@ -1345,7 +1345,7 @@ func (x *IconView) ConnectUnselectAll(cb *func(IconView)) uint32 {
13451345
13461346 }
13471347 cbRefPtr := purego.NewCallback(fcb)
1348- glib.SaveCallback(cbPtr, cbRefPtr)
1348+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
13491349 return gobject.SignalConnect(x.GoPointer(), "unselect-all", cbRefPtr)
13501350 }
13511351
M v4/gtk/gtkimcontext.go +6 -6
@@ -1073,7 +1073,7 @@ func (x *IMContext) ConnectCommit(cb *func(IMContext, string)) uint32 {
10731073
10741074 }
10751075 cbRefPtr := purego.NewCallback(fcb)
1076- glib.SaveCallback(cbPtr, cbRefPtr)
1076+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
10771077 return gobject.SignalConnect(x.GoPointer(), "commit", cbRefPtr)
10781078 }
10791079
@@ -1094,7 +1094,7 @@ func (x *IMContext) ConnectDeleteSurrounding(cb *func(IMContext, int, int) bool)
10941094
10951095 }
10961096 cbRefPtr := purego.NewCallback(fcb)
1097- glib.SaveCallback(cbPtr, cbRefPtr)
1097+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
10981098 return gobject.SignalConnect(x.GoPointer(), "delete-surrounding", cbRefPtr)
10991099 }
11001100
@@ -1118,7 +1118,7 @@ func (x *IMContext) ConnectPreeditChanged(cb *func(IMContext)) uint32 {
11181118
11191119 }
11201120 cbRefPtr := purego.NewCallback(fcb)
1121- glib.SaveCallback(cbPtr, cbRefPtr)
1121+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
11221122 return gobject.SignalConnect(x.GoPointer(), "preedit-changed", cbRefPtr)
11231123 }
11241124
@@ -1139,7 +1139,7 @@ func (x *IMContext) ConnectPreeditEnd(cb *func(IMContext)) uint32 {
11391139
11401140 }
11411141 cbRefPtr := purego.NewCallback(fcb)
1142- glib.SaveCallback(cbPtr, cbRefPtr)
1142+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
11431143 return gobject.SignalConnect(x.GoPointer(), "preedit-end", cbRefPtr)
11441144 }
11451145
@@ -1160,7 +1160,7 @@ func (x *IMContext) ConnectPreeditStart(cb *func(IMContext)) uint32 {
11601160
11611161 }
11621162 cbRefPtr := purego.NewCallback(fcb)
1163- glib.SaveCallback(cbPtr, cbRefPtr)
1163+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
11641164 return gobject.SignalConnect(x.GoPointer(), "preedit-start", cbRefPtr)
11651165 }
11661166
@@ -1184,7 +1184,7 @@ func (x *IMContext) ConnectRetrieveSurrounding(cb *func(IMContext) bool) uint32
11841184
11851185 }
11861186 cbRefPtr := purego.NewCallback(fcb)
1187- glib.SaveCallback(cbPtr, cbRefPtr)
1187+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
11881188 return gobject.SignalConnect(x.GoPointer(), "retrieve-surrounding", cbRefPtr)
11891189 }
11901190
M v4/gtk/gtkinfobar.go +2 -2
@@ -406,7 +406,7 @@ func (x *InfoBar) ConnectClose(cb *func(InfoBar)) uint32 {
406406
407407 }
408408 cbRefPtr := purego.NewCallback(fcb)
409- glib.SaveCallback(cbPtr, cbRefPtr)
409+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
410410 return gobject.SignalConnect(x.GoPointer(), "close", cbRefPtr)
411411 }
412412
@@ -430,7 +430,7 @@ func (x *InfoBar) ConnectResponse(cb *func(InfoBar, int)) uint32 {
430430
431431 }
432432 cbRefPtr := purego.NewCallback(fcb)
433- glib.SaveCallback(cbPtr, cbRefPtr)
433+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
434434 return gobject.SignalConnect(x.GoPointer(), "response", cbRefPtr)
435435 }
436436
M v4/gtk/gtklabel.go +4 -4
@@ -1351,7 +1351,7 @@ func (x *Label) ConnectActivateCurrentLink(cb *func(Label)) uint32 {
13511351
13521352 }
13531353 cbRefPtr := purego.NewCallback(fcb)
1354- glib.SaveCallback(cbPtr, cbRefPtr)
1354+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
13551355 return gobject.SignalConnect(x.GoPointer(), "activate-current-link", cbRefPtr)
13561356 }
13571357
@@ -1374,7 +1374,7 @@ func (x *Label) ConnectActivateLink(cb *func(Label, string) bool) uint32 {
13741374
13751375 }
13761376 cbRefPtr := purego.NewCallback(fcb)
1377- glib.SaveCallback(cbPtr, cbRefPtr)
1377+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
13781378 return gobject.SignalConnect(x.GoPointer(), "activate-link", cbRefPtr)
13791379 }
13801380
@@ -1398,7 +1398,7 @@ func (x *Label) ConnectCopyClipboard(cb *func(Label)) uint32 {
13981398
13991399 }
14001400 cbRefPtr := purego.NewCallback(fcb)
1401- glib.SaveCallback(cbPtr, cbRefPtr)
1401+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
14021402 return gobject.SignalConnect(x.GoPointer(), "copy-clipboard", cbRefPtr)
14031403 }
14041404
@@ -1436,7 +1436,7 @@ func (x *Label) ConnectMoveCursor(cb *func(Label, MovementStep, int, bool)) uint
14361436
14371437 }
14381438 cbRefPtr := purego.NewCallback(fcb)
1439- glib.SaveCallback(cbPtr, cbRefPtr)
1439+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
14401440 return gobject.SignalConnect(x.GoPointer(), "move-cursor", cbRefPtr)
14411441 }
14421442
M v4/gtk/gtklevelbar.go +2 -2
@@ -434,7 +434,7 @@ func (x *LevelBar) ConnectOffsetChanged(cb *func(LevelBar, string)) uint32 {
434434
435435 }
436436 cbRefPtr := purego.NewCallback(fcb)
437- glib.SaveCallback(cbPtr, cbRefPtr)
437+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
438438 return gobject.SignalConnect(x.GoPointer(), "offset-changed", cbRefPtr)
439439 }
440440
@@ -456,7 +456,7 @@ func (x *LevelBar) ConnectOffsetChangedWithDetail(detail string, cb *func(LevelB
456456
457457 }
458458 cbRefPtr := purego.NewCallback(fcb)
459- glib.SaveCallback(cbPtr, cbRefPtr)
459+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
460460 return gobject.SignalConnect(x.GoPointer(), signalName, cbRefPtr)
461461 }
462462
M v4/gtk/gtklinkbutton.go +1 -1
@@ -229,7 +229,7 @@ func (x *LinkButton) ConnectActivateLink(cb *func(LinkButton) bool) uint32 {
229229
230230 }
231231 cbRefPtr := purego.NewCallback(fcb)
232- glib.SaveCallback(cbPtr, cbRefPtr)
232+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
233233 return gobject.SignalConnect(x.GoPointer(), "activate-link", cbRefPtr)
234234 }
235235
M v4/gtk/gtklistbox.go +18 -18
@@ -221,7 +221,7 @@ func (x *ListBox) BindModel(ModelVar gio.ListModel, CreateWidgetFuncVar *ListBox
221221 return cbFn(arg0, arg1)
222222 }
223223 CreateWidgetFuncVarRef = purego.NewCallback(fcb)
224- glib.SaveCallback(CreateWidgetFuncVarPtr, CreateWidgetFuncVarRef)
224+ glib.SaveCallbackWithClosure(CreateWidgetFuncVarPtr, CreateWidgetFuncVarRef, CreateWidgetFuncVar)
225225 }
226226 }
227227
@@ -236,7 +236,7 @@ func (x *ListBox) BindModel(ModelVar gio.ListModel, CreateWidgetFuncVar *ListBox
236236 cbFn(arg0)
237237 }
238238 UserDataFreeFuncVarRef = purego.NewCallback(fcb)
239- glib.SaveCallback(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef)
239+ glib.SaveCallbackWithClosure(UserDataFreeFuncVarPtr, UserDataFreeFuncVarRef, UserDataFreeFuncVar)
240240 }
241241 }
242242
@@ -522,7 +522,7 @@ func (x *ListBox) SelectedForeach(FuncVar *ListBoxForeachFunc, DataVar uintptr)
522522 cbFn(arg0, arg1, arg2)
523523 }
524524 FuncVarRef = purego.NewCallback(fcb)
525- glib.SaveCallback(FuncVarPtr, FuncVarRef)
525+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
526526 }
527527 }
528528
@@ -586,7 +586,7 @@ func (x *ListBox) SetFilterFunc(FilterFuncVar *ListBoxFilterFunc, UserDataVar ui
586586 return cbFn(arg0, arg1)
587587 }
588588 FilterFuncVarRef = purego.NewCallback(fcb)
589- glib.SaveCallback(FilterFuncVarPtr, FilterFuncVarRef)
589+ glib.SaveCallbackWithClosure(FilterFuncVarPtr, FilterFuncVarRef, FilterFuncVar)
590590 }
591591 }
592592
@@ -601,7 +601,7 @@ func (x *ListBox) SetFilterFunc(FilterFuncVar *ListBoxFilterFunc, UserDataVar ui
601601 cbFn(arg0)
602602 }
603603 DestroyVarRef = purego.NewCallback(fcb)
604- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
604+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
605605 }
606606 }
607607
@@ -649,7 +649,7 @@ func (x *ListBox) SetHeaderFunc(UpdateHeaderVar *ListBoxUpdateHeaderFunc, UserDa
649649 cbFn(arg0, arg1, arg2)
650650 }
651651 UpdateHeaderVarRef = purego.NewCallback(fcb)
652- glib.SaveCallback(UpdateHeaderVarPtr, UpdateHeaderVarRef)
652+ glib.SaveCallbackWithClosure(UpdateHeaderVarPtr, UpdateHeaderVarRef, UpdateHeaderVar)
653653 }
654654 }
655655
@@ -664,7 +664,7 @@ func (x *ListBox) SetHeaderFunc(UpdateHeaderVar *ListBoxUpdateHeaderFunc, UserDa
664664 cbFn(arg0)
665665 }
666666 DestroyVarRef = purego.NewCallback(fcb)
667- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
667+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
668668 }
669669 }
670670
@@ -728,7 +728,7 @@ func (x *ListBox) SetSortFunc(SortFuncVar *ListBoxSortFunc, UserDataVar uintptr,
728728 return cbFn(arg0, arg1, arg2)
729729 }
730730 SortFuncVarRef = purego.NewCallback(fcb)
731- glib.SaveCallback(SortFuncVarPtr, SortFuncVarRef)
731+ glib.SaveCallbackWithClosure(SortFuncVarPtr, SortFuncVarRef, SortFuncVar)
732732 }
733733 }
734734
@@ -743,7 +743,7 @@ func (x *ListBox) SetSortFunc(SortFuncVar *ListBoxSortFunc, UserDataVar uintptr,
743743 cbFn(arg0)
744744 }
745745 DestroyVarRef = purego.NewCallback(fcb)
746- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
746+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
747747 }
748748 }
749749
@@ -858,7 +858,7 @@ func (x *ListBox) ConnectActivateCursorRow(cb *func(ListBox)) uint32 {
858858
859859 }
860860 cbRefPtr := purego.NewCallback(fcb)
861- glib.SaveCallback(cbPtr, cbRefPtr)
861+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
862862 return gobject.SignalConnect(x.GoPointer(), "activate-cursor-row", cbRefPtr)
863863 }
864864
@@ -888,7 +888,7 @@ func (x *ListBox) ConnectMoveCursor(cb *func(ListBox, MovementStep, int, bool, b
888888
889889 }
890890 cbRefPtr := purego.NewCallback(fcb)
891- glib.SaveCallback(cbPtr, cbRefPtr)
891+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
892892 return gobject.SignalConnect(x.GoPointer(), "move-cursor", cbRefPtr)
893893 }
894894
@@ -908,7 +908,7 @@ func (x *ListBox) ConnectRowActivated(cb *func(ListBox, uintptr)) uint32 {
908908
909909 }
910910 cbRefPtr := purego.NewCallback(fcb)
911- glib.SaveCallback(cbPtr, cbRefPtr)
911+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
912912 return gobject.SignalConnect(x.GoPointer(), "row-activated", cbRefPtr)
913913 }
914914
@@ -933,7 +933,7 @@ func (x *ListBox) ConnectRowSelected(cb *func(ListBox, uintptr)) uint32 {
933933
934934 }
935935 cbRefPtr := purego.NewCallback(fcb)
936- glib.SaveCallback(cbPtr, cbRefPtr)
936+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
937937 return gobject.SignalConnect(x.GoPointer(), "row-selected", cbRefPtr)
938938 }
939939
@@ -958,7 +958,7 @@ func (x *ListBox) ConnectSelectAll(cb *func(ListBox)) uint32 {
958958
959959 }
960960 cbRefPtr := purego.NewCallback(fcb)
961- glib.SaveCallback(cbPtr, cbRefPtr)
961+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
962962 return gobject.SignalConnect(x.GoPointer(), "select-all", cbRefPtr)
963963 }
964964
@@ -978,7 +978,7 @@ func (x *ListBox) ConnectSelectedRowsChanged(cb *func(ListBox)) uint32 {
978978
979979 }
980980 cbRefPtr := purego.NewCallback(fcb)
981- glib.SaveCallback(cbPtr, cbRefPtr)
981+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
982982 return gobject.SignalConnect(x.GoPointer(), "selected-rows-changed", cbRefPtr)
983983 }
984984
@@ -1000,7 +1000,7 @@ func (x *ListBox) ConnectToggleCursorRow(cb *func(ListBox)) uint32 {
10001000
10011001 }
10021002 cbRefPtr := purego.NewCallback(fcb)
1003- glib.SaveCallback(cbPtr, cbRefPtr)
1003+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
10041004 return gobject.SignalConnect(x.GoPointer(), "toggle-cursor-row", cbRefPtr)
10051005 }
10061006
@@ -1026,7 +1026,7 @@ func (x *ListBox) ConnectUnselectAll(cb *func(ListBox)) uint32 {
10261026
10271027 }
10281028 cbRefPtr := purego.NewCallback(fcb)
1029- glib.SaveCallback(cbPtr, cbRefPtr)
1029+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
10301030 return gobject.SignalConnect(x.GoPointer(), "unselect-all", cbRefPtr)
10311031 }
10321032
@@ -1563,7 +1563,7 @@ func (x *ListBoxRow) ConnectActivate(cb *func(ListBoxRow)) uint32 {
15631563
15641564 }
15651565 cbRefPtr := purego.NewCallback(fcb)
1566- glib.SaveCallback(cbPtr, cbRefPtr)
1566+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
15671567 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
15681568 }
15691569
M v4/gtk/gtklistview.go +1 -1
@@ -440,7 +440,7 @@ func (x *ListView) ConnectActivate(cb *func(ListView, uint)) uint32 {
440440
441441 }
442442 cbRefPtr := purego.NewCallback(fcb)
443- glib.SaveCallback(cbPtr, cbRefPtr)
443+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
444444 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
445445 }
446446
M v4/gtk/gtkmaplistmodel.go +4 -4
@@ -97,7 +97,7 @@ func NewMapListModel(ModelVar gio.ListModel, MapFuncVar *MapListModelMapFunc, Us
9797 return cbFn(arg0, arg1)
9898 }
9999 MapFuncVarRef = purego.NewCallback(fcb)
100- glib.SaveCallback(MapFuncVarPtr, MapFuncVarRef)
100+ glib.SaveCallbackWithClosure(MapFuncVarPtr, MapFuncVarRef, MapFuncVar)
101101 }
102102 }
103103
@@ -112,7 +112,7 @@ func NewMapListModel(ModelVar gio.ListModel, MapFuncVar *MapListModelMapFunc, Us
112112 cbFn(arg0)
113113 }
114114 UserDestroyVarRef = purego.NewCallback(fcb)
115- glib.SaveCallback(UserDestroyVarPtr, UserDestroyVarRef)
115+ glib.SaveCallbackWithClosure(UserDestroyVarPtr, UserDestroyVarRef, UserDestroyVar)
116116 }
117117 }
118118
@@ -179,7 +179,7 @@ func (x *MapListModel) SetMapFunc(MapFuncVar *MapListModelMapFunc, UserDataVar u
179179 return cbFn(arg0, arg1)
180180 }
181181 MapFuncVarRef = purego.NewCallback(fcb)
182- glib.SaveCallback(MapFuncVarPtr, MapFuncVarRef)
182+ glib.SaveCallbackWithClosure(MapFuncVarPtr, MapFuncVarRef, MapFuncVar)
183183 }
184184 }
185185
@@ -194,7 +194,7 @@ func (x *MapListModel) SetMapFunc(MapFuncVar *MapListModelMapFunc, UserDataVar u
194194 cbFn(arg0)
195195 }
196196 UserDestroyVarRef = purego.NewCallback(fcb)
197- glib.SaveCallback(UserDestroyVarPtr, UserDestroyVarRef)
197+ glib.SaveCallbackWithClosure(UserDestroyVarPtr, UserDestroyVarRef, UserDestroyVar)
198198 }
199199 }
200200
M v4/gtk/gtkmenubutton.go +3 -3
@@ -367,7 +367,7 @@ func (x *MenuButton) SetCreatePopupFunc(FuncVar *MenuButtonCreatePopupFunc, User
367367 cbFn(arg0, arg1)
368368 }
369369 FuncVarRef = purego.NewCallback(fcb)
370- glib.SaveCallback(FuncVarPtr, FuncVarRef)
370+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
371371 }
372372 }
373373
@@ -382,7 +382,7 @@ func (x *MenuButton) SetCreatePopupFunc(FuncVar *MenuButtonCreatePopupFunc, User
382382 cbFn(arg0)
383383 }
384384 DestroyNotifyVarRef = purego.NewCallback(fcb)
385- glib.SaveCallback(DestroyNotifyVarPtr, DestroyNotifyVarRef)
385+ glib.SaveCallbackWithClosure(DestroyNotifyVarPtr, DestroyNotifyVarRef, DestroyNotifyVar)
386386 }
387387 }
388388
@@ -672,7 +672,7 @@ func (x *MenuButton) ConnectActivate(cb *func(MenuButton)) uint32 {
672672
673673 }
674674 cbRefPtr := purego.NewCallback(fcb)
675- glib.SaveCallback(cbPtr, cbRefPtr)
675+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
676676 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
677677 }
678678
M v4/gtk/gtknativedialog.go +1 -1
@@ -451,7 +451,7 @@ func (x *NativeDialog) ConnectResponse(cb *func(NativeDialog, int)) uint32 {
451451
452452 }
453453 cbRefPtr := purego.NewCallback(fcb)
454- glib.SaveCallback(cbPtr, cbRefPtr)
454+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
455455 return gobject.SignalConnect(x.GoPointer(), "response", cbRefPtr)
456456 }
457457
M v4/gtk/gtknotebook.go +10 -10
@@ -887,7 +887,7 @@ func (x *Notebook) ConnectChangeCurrentPage(cb *func(Notebook, int) bool) uint32
887887
888888 }
889889 cbRefPtr := purego.NewCallback(fcb)
890- glib.SaveCallback(cbPtr, cbRefPtr)
890+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
891891 return gobject.SignalConnect(x.GoPointer(), "change-current-page", cbRefPtr)
892892 }
893893
@@ -915,7 +915,7 @@ func (x *Notebook) ConnectCreateWindow(cb *func(Notebook, uintptr) Notebook) uin
915915
916916 }
917917 cbRefPtr := purego.NewCallback(fcb)
918- glib.SaveCallback(cbPtr, cbRefPtr)
918+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
919919 return gobject.SignalConnect(x.GoPointer(), "create-window", cbRefPtr)
920920 }
921921
@@ -935,7 +935,7 @@ func (x *Notebook) ConnectFocusTab(cb *func(Notebook, NotebookTab) bool) uint32
935935
936936 }
937937 cbRefPtr := purego.NewCallback(fcb)
938- glib.SaveCallback(cbPtr, cbRefPtr)
938+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
939939 return gobject.SignalConnect(x.GoPointer(), "focus-tab", cbRefPtr)
940940 }
941941
@@ -961,7 +961,7 @@ func (x *Notebook) ConnectMoveFocusOut(cb *func(Notebook, DirectionType)) uint32
961961
962962 }
963963 cbRefPtr := purego.NewCallback(fcb)
964- glib.SaveCallback(cbPtr, cbRefPtr)
964+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
965965 return gobject.SignalConnect(x.GoPointer(), "move-focus-out", cbRefPtr)
966966 }
967967
@@ -982,7 +982,7 @@ func (x *Notebook) ConnectPageAdded(cb *func(Notebook, uintptr, uint)) uint32 {
982982
983983 }
984984 cbRefPtr := purego.NewCallback(fcb)
985- glib.SaveCallback(cbPtr, cbRefPtr)
985+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
986986 return gobject.SignalConnect(x.GoPointer(), "page-added", cbRefPtr)
987987 }
988988
@@ -1003,7 +1003,7 @@ func (x *Notebook) ConnectPageRemoved(cb *func(Notebook, uintptr, uint)) uint32
10031003
10041004 }
10051005 cbRefPtr := purego.NewCallback(fcb)
1006- glib.SaveCallback(cbPtr, cbRefPtr)
1006+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
10071007 return gobject.SignalConnect(x.GoPointer(), "page-removed", cbRefPtr)
10081008 }
10091009
@@ -1024,7 +1024,7 @@ func (x *Notebook) ConnectPageReordered(cb *func(Notebook, uintptr, uint)) uint3
10241024
10251025 }
10261026 cbRefPtr := purego.NewCallback(fcb)
1027- glib.SaveCallback(cbPtr, cbRefPtr)
1027+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
10281028 return gobject.SignalConnect(x.GoPointer(), "page-reordered", cbRefPtr)
10291029 }
10301030
@@ -1050,7 +1050,7 @@ func (x *Notebook) ConnectReorderTab(cb *func(Notebook, DirectionType, bool) boo
10501050
10511051 }
10521052 cbRefPtr := purego.NewCallback(fcb)
1053- glib.SaveCallback(cbPtr, cbRefPtr)
1053+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
10541054 return gobject.SignalConnect(x.GoPointer(), "reorder-tab", cbRefPtr)
10551055 }
10561056
@@ -1072,7 +1072,7 @@ func (x *Notebook) ConnectSelectPage(cb *func(Notebook, bool) bool) uint32 {
10721072
10731073 }
10741074 cbRefPtr := purego.NewCallback(fcb)
1075- glib.SaveCallback(cbPtr, cbRefPtr)
1075+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
10761076 return gobject.SignalConnect(x.GoPointer(), "select-page", cbRefPtr)
10771077 }
10781078
@@ -1092,7 +1092,7 @@ func (x *Notebook) ConnectSwitchPage(cb *func(Notebook, uintptr, uint)) uint32 {
10921092
10931093 }
10941094 cbRefPtr := purego.NewCallback(fcb)
1095- glib.SaveCallback(cbPtr, cbRefPtr)
1095+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
10961096 return gobject.SignalConnect(x.GoPointer(), "switch-page", cbRefPtr)
10971097 }
10981098
M v4/gtk/gtkoverlay.go +1 -1
@@ -214,7 +214,7 @@ func (x *Overlay) ConnectGetChildPosition(cb *func(Overlay, uintptr, *uintptr) b
214214
215215 }
216216 cbRefPtr := purego.NewCallback(fcb)
217- glib.SaveCallback(cbPtr, cbRefPtr)
217+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
218218 return gobject.SignalConnect(x.GoPointer(), "get-child-position", cbRefPtr)
219219 }
220220
M v4/gtk/gtkpaned.go +6 -6
@@ -487,7 +487,7 @@ func (x *Paned) ConnectAcceptPosition(cb *func(Paned) bool) uint32 {
487487
488488 }
489489 cbRefPtr := purego.NewCallback(fcb)
490- glib.SaveCallback(cbPtr, cbRefPtr)
490+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
491491 return gobject.SignalConnect(x.GoPointer(), "accept-position", cbRefPtr)
492492 }
493493
@@ -515,7 +515,7 @@ func (x *Paned) ConnectCancelPosition(cb *func(Paned) bool) uint32 {
515515
516516 }
517517 cbRefPtr := purego.NewCallback(fcb)
518- glib.SaveCallback(cbPtr, cbRefPtr)
518+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
519519 return gobject.SignalConnect(x.GoPointer(), "cancel-position", cbRefPtr)
520520 }
521521
@@ -539,7 +539,7 @@ func (x *Paned) ConnectCycleChildFocus(cb *func(Paned, bool) bool) uint32 {
539539
540540 }
541541 cbRefPtr := purego.NewCallback(fcb)
542- glib.SaveCallback(cbPtr, cbRefPtr)
542+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
543543 return gobject.SignalConnect(x.GoPointer(), "cycle-child-focus", cbRefPtr)
544544 }
545545
@@ -564,7 +564,7 @@ func (x *Paned) ConnectCycleHandleFocus(cb *func(Paned, bool) bool) uint32 {
564564
565565 }
566566 cbRefPtr := purego.NewCallback(fcb)
567- glib.SaveCallback(cbPtr, cbRefPtr)
567+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
568568 return gobject.SignalConnect(x.GoPointer(), "cycle-handle-focus", cbRefPtr)
569569 }
570570
@@ -593,7 +593,7 @@ func (x *Paned) ConnectMoveHandle(cb *func(Paned, ScrollType) bool) uint32 {
593593
594594 }
595595 cbRefPtr := purego.NewCallback(fcb)
596- glib.SaveCallback(cbPtr, cbRefPtr)
596+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
597597 return gobject.SignalConnect(x.GoPointer(), "move-handle", cbRefPtr)
598598 }
599599
@@ -618,7 +618,7 @@ func (x *Paned) ConnectToggleHandleFocus(cb *func(Paned) bool) uint32 {
618618
619619 }
620620 cbRefPtr := purego.NewCallback(fcb)
621- glib.SaveCallback(cbPtr, cbRefPtr)
621+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
622622 return gobject.SignalConnect(x.GoPointer(), "toggle-handle-focus", cbRefPtr)
623623 }
624624
M v4/gtk/gtkpasswordentry.go +1 -1
@@ -225,7 +225,7 @@ func (x *PasswordEntry) ConnectActivate(cb *func(PasswordEntry)) uint32 {
225225
226226 }
227227 cbRefPtr := purego.NewCallback(fcb)
228- glib.SaveCallback(cbPtr, cbRefPtr)
228+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
229229 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
230230 }
231231
M v4/gtk/gtkpopover.go +2 -2
@@ -572,7 +572,7 @@ func (x *Popover) ConnectActivateDefault(cb *func(Popover)) uint32 {
572572
573573 }
574574 cbRefPtr := purego.NewCallback(fcb)
575- glib.SaveCallback(cbPtr, cbRefPtr)
575+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
576576 return gobject.SignalConnect(x.GoPointer(), "activate-default", cbRefPtr)
577577 }
578578
@@ -592,7 +592,7 @@ func (x *Popover) ConnectClosed(cb *func(Popover)) uint32 {
592592
593593 }
594594 cbRefPtr := purego.NewCallback(fcb)
595- glib.SaveCallback(cbPtr, cbRefPtr)
595+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
596596 return gobject.SignalConnect(x.GoPointer(), "closed", cbRefPtr)
597597 }
598598
M v4/gtk/gtkprintdialog.go +3 -3
@@ -241,7 +241,7 @@ func (x *PrintDialog) Print(ParentVar *Window, SetupVar *PrintSetup, Cancellable
241241 cbFn(arg0, arg1, arg2)
242242 }
243243 CallbackVarRef = purego.NewCallback(fcb)
244- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
244+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
245245 }
246246 }
247247
@@ -268,7 +268,7 @@ func (x *PrintDialog) PrintFile(ParentVar *Window, SetupVar *PrintSetup, FileVar
268268 cbFn(arg0, arg1, arg2)
269269 }
270270 CallbackVarRef = purego.NewCallback(fcb)
271- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
271+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
272272 }
273273 }
274274
@@ -405,7 +405,7 @@ func (x *PrintDialog) Setup(ParentVar *Window, CancellableVar *gio.Cancellable,
405405 cbFn(arg0, arg1, arg2)
406406 }
407407 CallbackVarRef = purego.NewCallback(fcb)
408- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
408+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
409409 }
410410 }
411411
M v4/gtk/gtkprinter.go +3 -3
@@ -86,7 +86,7 @@ func EnumeratePrinters(FuncVar *PrinterFunc, DataVar uintptr, DestroyVar *glib.D
8686 return cbFn(arg0, arg1)
8787 }
8888 FuncVarRef = purego.NewCallback(fcb)
89- glib.SaveCallback(FuncVarPtr, FuncVarRef)
89+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
9090 }
9191 }
9292
@@ -101,7 +101,7 @@ func EnumeratePrinters(FuncVar *PrinterFunc, DataVar uintptr, DestroyVar *glib.D
101101 cbFn(arg0)
102102 }
103103 DestroyVarRef = purego.NewCallback(fcb)
104- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
104+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
105105 }
106106 }
107107
@@ -564,7 +564,7 @@ func (x *Printer) ConnectDetailsAcquired(cb *func(Printer, bool)) uint32 {
564564
565565 }
566566 cbRefPtr := purego.NewCallback(fcb)
567- glib.SaveCallback(cbPtr, cbRefPtr)
567+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
568568 return gobject.SignalConnect(x.GoPointer(), "details-acquired", cbRefPtr)
569569 }
570570
M v4/gtk/gtkprintjob.go +3 -3
@@ -257,7 +257,7 @@ func (x *PrintJob) Send(CallbackVar *PrintJobCompleteFunc, UserDataVar uintptr,
257257 cbFn(arg0, arg1, arg2)
258258 }
259259 CallbackVarRef = purego.NewCallback(fcb)
260- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
260+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
261261 }
262262 }
263263
@@ -272,7 +272,7 @@ func (x *PrintJob) Send(CallbackVar *PrintJobCompleteFunc, UserDataVar uintptr,
272272 cbFn(arg0)
273273 }
274274 DnotifyVarRef = purego.NewCallback(fcb)
275- glib.SaveCallback(DnotifyVarPtr, DnotifyVarRef)
275+ glib.SaveCallbackWithClosure(DnotifyVarPtr, DnotifyVarRef, DnotifyVar)
276276 }
277277 }
278278
@@ -500,7 +500,7 @@ func (x *PrintJob) ConnectStatusChanged(cb *func(PrintJob)) uint32 {
500500
501501 }
502502 cbRefPtr := purego.NewCallback(fcb)
503- glib.SaveCallback(cbPtr, cbRefPtr)
503+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
504504 return gobject.SignalConnect(x.GoPointer(), "status-changed", cbRefPtr)
505505 }
506506
M v4/gtk/gtkprintoperation.go +12 -12
@@ -541,7 +541,7 @@ func PrintRunPageSetupDialogAsync(ParentVar *Window, PageSetupVar *PageSetup, Se
541541 cbFn(arg0, arg1)
542542 }
543543 DoneCbVarRef = purego.NewCallback(fcb)
544- glib.SaveCallback(DoneCbVarPtr, DoneCbVarRef)
544+ glib.SaveCallbackWithClosure(DoneCbVarPtr, DoneCbVarRef, DoneCbVar)
545545 }
546546 }
547547
@@ -1516,7 +1516,7 @@ func (x *PrintOperation) ConnectBeginPrint(cb *func(PrintOperation, uintptr)) ui
15161516
15171517 }
15181518 cbRefPtr := purego.NewCallback(fcb)
1519- glib.SaveCallback(cbPtr, cbRefPtr)
1519+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
15201520 return gobject.SignalConnect(x.GoPointer(), "begin-print", cbRefPtr)
15211521 }
15221522
@@ -1547,7 +1547,7 @@ func (x *PrintOperation) ConnectCreateCustomWidget(cb *func(PrintOperation) gobj
15471547
15481548 }
15491549 cbRefPtr := purego.NewCallback(fcb)
1550- glib.SaveCallback(cbPtr, cbRefPtr)
1550+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
15511551 return gobject.SignalConnect(x.GoPointer(), "create-custom-widget", cbRefPtr)
15521552 }
15531553
@@ -1572,7 +1572,7 @@ func (x *PrintOperation) ConnectCustomWidgetApply(cb *func(PrintOperation, uintp
15721572
15731573 }
15741574 cbRefPtr := purego.NewCallback(fcb)
1575- glib.SaveCallback(cbPtr, cbRefPtr)
1575+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
15761576 return gobject.SignalConnect(x.GoPointer(), "custom-widget-apply", cbRefPtr)
15771577 }
15781578
@@ -1601,7 +1601,7 @@ func (x *PrintOperation) ConnectDone(cb *func(PrintOperation, PrintOperationResu
16011601
16021602 }
16031603 cbRefPtr := purego.NewCallback(fcb)
1604- glib.SaveCallback(cbPtr, cbRefPtr)
1604+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
16051605 return gobject.SignalConnect(x.GoPointer(), "done", cbRefPtr)
16061606 }
16071607
@@ -1674,7 +1674,7 @@ func (x *PrintOperation) ConnectDrawPage(cb *func(PrintOperation, uintptr, int))
16741674
16751675 }
16761676 cbRefPtr := purego.NewCallback(fcb)
1677- glib.SaveCallback(cbPtr, cbRefPtr)
1677+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
16781678 return gobject.SignalConnect(x.GoPointer(), "draw-page", cbRefPtr)
16791679 }
16801680
@@ -1697,7 +1697,7 @@ func (x *PrintOperation) ConnectEndPrint(cb *func(PrintOperation, uintptr)) uint
16971697
16981698 }
16991699 cbRefPtr := purego.NewCallback(fcb)
1700- glib.SaveCallback(cbPtr, cbRefPtr)
1700+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
17011701 return gobject.SignalConnect(x.GoPointer(), "end-print", cbRefPtr)
17021702 }
17031703
@@ -1730,7 +1730,7 @@ func (x *PrintOperation) ConnectPaginate(cb *func(PrintOperation, uintptr) bool)
17301730
17311731 }
17321732 cbRefPtr := purego.NewCallback(fcb)
1733- glib.SaveCallback(cbPtr, cbRefPtr)
1733+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
17341734 return gobject.SignalConnect(x.GoPointer(), "paginate", cbRefPtr)
17351735 }
17361736
@@ -1766,7 +1766,7 @@ func (x *PrintOperation) ConnectPreview(cb *func(PrintOperation, uintptr, uintpt
17661766
17671767 }
17681768 cbRefPtr := purego.NewCallback(fcb)
1769- glib.SaveCallback(cbPtr, cbRefPtr)
1769+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
17701770 return gobject.SignalConnect(x.GoPointer(), "preview", cbRefPtr)
17711771 }
17721772
@@ -1790,7 +1790,7 @@ func (x *PrintOperation) ConnectRequestPageSetup(cb *func(PrintOperation, uintpt
17901790
17911791 }
17921792 cbRefPtr := purego.NewCallback(fcb)
1793- glib.SaveCallback(cbPtr, cbRefPtr)
1793+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
17941794 return gobject.SignalConnect(x.GoPointer(), "request-page-setup", cbRefPtr)
17951795 }
17961796
@@ -1814,7 +1814,7 @@ func (x *PrintOperation) ConnectStatusChanged(cb *func(PrintOperation)) uint32 {
18141814
18151815 }
18161816 cbRefPtr := purego.NewCallback(fcb)
1817- glib.SaveCallback(cbPtr, cbRefPtr)
1817+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
18181818 return gobject.SignalConnect(x.GoPointer(), "status-changed", cbRefPtr)
18191819 }
18201820
@@ -1837,7 +1837,7 @@ func (x *PrintOperation) ConnectUpdateCustomWidget(cb *func(PrintOperation, uint
18371837
18381838 }
18391839 cbRefPtr := purego.NewCallback(fcb)
1840- glib.SaveCallback(cbPtr, cbRefPtr)
1840+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
18411841 return gobject.SignalConnect(x.GoPointer(), "update-custom-widget", cbRefPtr)
18421842 }
18431843
M v4/gtk/gtkprintsettings.go +1 -1
@@ -269,7 +269,7 @@ func (x *PrintSettings) Foreach(FuncVar *PrintSettingsFunc, UserDataVar uintptr)
269269 cbFn(arg0, arg1, arg2)
270270 }
271271 FuncVarRef = purego.NewCallback(fcb)
272- glib.SaveCallback(FuncVarPtr, FuncVarRef)
272+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
273273 }
274274 }
275275
M v4/gtk/gtkrange.go +4 -4
@@ -590,7 +590,7 @@ func (x *Range) ConnectAdjustBounds(cb *func(Range, float64)) uint32 {
590590
591591 }
592592 cbRefPtr := purego.NewCallback(fcb)
593- glib.SaveCallback(cbPtr, cbRefPtr)
593+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
594594 return gobject.SignalConnect(x.GoPointer(), "adjust-bounds", cbRefPtr)
595595 }
596596
@@ -621,7 +621,7 @@ func (x *Range) ConnectChangeValue(cb *func(Range, ScrollType, float64) bool) ui
621621
622622 }
623623 cbRefPtr := purego.NewCallback(fcb)
624- glib.SaveCallback(cbPtr, cbRefPtr)
624+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
625625 return gobject.SignalConnect(x.GoPointer(), "change-value", cbRefPtr)
626626 }
627627
@@ -643,7 +643,7 @@ func (x *Range) ConnectMoveSlider(cb *func(Range, ScrollType)) uint32 {
643643
644644 }
645645 cbRefPtr := purego.NewCallback(fcb)
646- glib.SaveCallback(cbPtr, cbRefPtr)
646+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
647647 return gobject.SignalConnect(x.GoPointer(), "move-slider", cbRefPtr)
648648 }
649649
@@ -663,7 +663,7 @@ func (x *Range) ConnectValueChanged(cb *func(Range)) uint32 {
663663
664664 }
665665 cbRefPtr := purego.NewCallback(fcb)
666- glib.SaveCallback(cbPtr, cbRefPtr)
666+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
667667 return gobject.SignalConnect(x.GoPointer(), "value-changed", cbRefPtr)
668668 }
669669
M v4/gtk/gtkrecentmanager.go +1 -1
@@ -833,7 +833,7 @@ func (x *RecentManager) ConnectChanged(cb *func(RecentManager)) uint32 {
833833
834834 }
835835 cbRefPtr := purego.NewCallback(fcb)
836- glib.SaveCallback(cbPtr, cbRefPtr)
836+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
837837 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
838838 }
839839
M v4/gtk/gtkscale.go +2 -2
@@ -372,7 +372,7 @@ func (x *Scale) SetFormatValueFunc(FuncVar *ScaleFormatValueFunc, UserDataVar ui
372372 return cbFn(arg0, arg1, arg2)
373373 }
374374 FuncVarRef = purego.NewCallback(fcb)
375- glib.SaveCallback(FuncVarPtr, FuncVarRef)
375+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
376376 }
377377 }
378378
@@ -387,7 +387,7 @@ func (x *Scale) SetFormatValueFunc(FuncVar *ScaleFormatValueFunc, UserDataVar ui
387387 cbFn(arg0)
388388 }
389389 DestroyNotifyVarRef = purego.NewCallback(fcb)
390- glib.SaveCallback(DestroyNotifyVarPtr, DestroyNotifyVarRef)
390+ glib.SaveCallbackWithClosure(DestroyNotifyVarPtr, DestroyNotifyVarRef, DestroyNotifyVar)
391391 }
392392 }
393393
M v4/gtk/gtkscalebutton.go +3 -3
@@ -377,7 +377,7 @@ func (x *ScaleButton) ConnectPopdown(cb *func(ScaleButton)) uint32 {
377377
378378 }
379379 cbRefPtr := purego.NewCallback(fcb)
380- glib.SaveCallback(cbPtr, cbRefPtr)
380+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
381381 return gobject.SignalConnect(x.GoPointer(), "popdown", cbRefPtr)
382382 }
383383
@@ -402,7 +402,7 @@ func (x *ScaleButton) ConnectPopup(cb *func(ScaleButton)) uint32 {
402402
403403 }
404404 cbRefPtr := purego.NewCallback(fcb)
405- glib.SaveCallback(cbPtr, cbRefPtr)
405+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
406406 return gobject.SignalConnect(x.GoPointer(), "popup", cbRefPtr)
407407 }
408408
@@ -422,7 +422,7 @@ func (x *ScaleButton) ConnectValueChanged(cb *func(ScaleButton, float64)) uint32
422422
423423 }
424424 cbRefPtr := purego.NewCallback(fcb)
425- glib.SaveCallback(cbPtr, cbRefPtr)
425+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
426426 return gobject.SignalConnect(x.GoPointer(), "value-changed", cbRefPtr)
427427 }
428428
M v4/gtk/gtkscrolledwindow.go +4 -4
@@ -799,7 +799,7 @@ func (x *ScrolledWindow) ConnectEdgeOvershot(cb *func(ScrolledWindow, PositionTy
799799
800800 }
801801 cbRefPtr := purego.NewCallback(fcb)
802- glib.SaveCallback(cbPtr, cbRefPtr)
802+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
803803 return gobject.SignalConnect(x.GoPointer(), "edge-overshot", cbRefPtr)
804804 }
805805
@@ -827,7 +827,7 @@ func (x *ScrolledWindow) ConnectEdgeReached(cb *func(ScrolledWindow, PositionTyp
827827
828828 }
829829 cbRefPtr := purego.NewCallback(fcb)
830- glib.SaveCallback(cbPtr, cbRefPtr)
830+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
831831 return gobject.SignalConnect(x.GoPointer(), "edge-reached", cbRefPtr)
832832 }
833833
@@ -854,7 +854,7 @@ func (x *ScrolledWindow) ConnectMoveFocusOut(cb *func(ScrolledWindow, DirectionT
854854
855855 }
856856 cbRefPtr := purego.NewCallback(fcb)
857- glib.SaveCallback(cbPtr, cbRefPtr)
857+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
858858 return gobject.SignalConnect(x.GoPointer(), "move-focus-out", cbRefPtr)
859859 }
860860
@@ -879,7 +879,7 @@ func (x *ScrolledWindow) ConnectScrollChild(cb *func(ScrolledWindow, ScrollType,
879879
880880 }
881881 cbRefPtr := purego.NewCallback(fcb)
882- glib.SaveCallback(cbPtr, cbRefPtr)
882+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
883883 return gobject.SignalConnect(x.GoPointer(), "scroll-child", cbRefPtr)
884884 }
885885
M v4/gtk/gtksearchentry.go +6 -6
@@ -310,7 +310,7 @@ func (x *SearchEntry) ConnectActivate(cb *func(SearchEntry)) uint32 {
310310
311311 }
312312 cbRefPtr := purego.NewCallback(fcb)
313- glib.SaveCallback(cbPtr, cbRefPtr)
313+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
314314 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
315315 }
316316
@@ -338,7 +338,7 @@ func (x *SearchEntry) ConnectNextMatch(cb *func(SearchEntry)) uint32 {
338338
339339 }
340340 cbRefPtr := purego.NewCallback(fcb)
341- glib.SaveCallback(cbPtr, cbRefPtr)
341+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
342342 return gobject.SignalConnect(x.GoPointer(), "next-match", cbRefPtr)
343343 }
344344
@@ -367,7 +367,7 @@ func (x *SearchEntry) ConnectPreviousMatch(cb *func(SearchEntry)) uint32 {
367367
368368 }
369369 cbRefPtr := purego.NewCallback(fcb)
370- glib.SaveCallback(cbPtr, cbRefPtr)
370+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
371371 return gobject.SignalConnect(x.GoPointer(), "previous-match", cbRefPtr)
372372 }
373373
@@ -389,7 +389,7 @@ func (x *SearchEntry) ConnectSearchChanged(cb *func(SearchEntry)) uint32 {
389389
390390 }
391391 cbRefPtr := purego.NewCallback(fcb)
392- glib.SaveCallback(cbPtr, cbRefPtr)
392+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
393393 return gobject.SignalConnect(x.GoPointer(), "search-changed", cbRefPtr)
394394 }
395395
@@ -409,7 +409,7 @@ func (x *SearchEntry) ConnectSearchStarted(cb *func(SearchEntry)) uint32 {
409409
410410 }
411411 cbRefPtr := purego.NewCallback(fcb)
412- glib.SaveCallback(cbPtr, cbRefPtr)
412+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
413413 return gobject.SignalConnect(x.GoPointer(), "search-started", cbRefPtr)
414414 }
415415
@@ -436,7 +436,7 @@ func (x *SearchEntry) ConnectStopSearch(cb *func(SearchEntry)) uint32 {
436436
437437 }
438438 cbRefPtr := purego.NewCallback(fcb)
439- glib.SaveCallback(cbPtr, cbRefPtr)
439+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
440440 return gobject.SignalConnect(x.GoPointer(), "stop-search", cbRefPtr)
441441 }
442442
M v4/gtk/gtkshortcutaction.go +2 -2
@@ -175,7 +175,7 @@ func NewCallbackAction(CallbackVar *ShortcutFunc, DataVar uintptr, DestroyVar *g
175175 return cbFn(arg0, arg1, arg2)
176176 }
177177 CallbackVarRef = purego.NewCallback(fcb)
178- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
178+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
179179 }
180180 }
181181
@@ -190,7 +190,7 @@ func NewCallbackAction(CallbackVar *ShortcutFunc, DataVar uintptr, DestroyVar *g
190190 cbFn(arg0)
191191 }
192192 DestroyVarRef = purego.NewCallback(fcb)
193- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
193+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
194194 }
195195 }
196196
M v4/gtk/gtkshortcutssection.go +1 -1
@@ -216,7 +216,7 @@ func (x *ShortcutsSection) ConnectChangeCurrentPage(cb *func(ShortcutsSection, i
216216
217217 }
218218 cbRefPtr := purego.NewCallback(fcb)
219- glib.SaveCallback(cbPtr, cbRefPtr)
219+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
220220 return gobject.SignalConnect(x.GoPointer(), "change-current-page", cbRefPtr)
221221 }
222222
M v4/gtk/gtkshortcutswindow.go +2 -2
@@ -200,7 +200,7 @@ func (x *ShortcutsWindow) ConnectClose(cb *func(ShortcutsWindow)) uint32 {
200200
201201 }
202202 cbRefPtr := purego.NewCallback(fcb)
203- glib.SaveCallback(cbPtr, cbRefPtr)
203+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
204204 return gobject.SignalConnect(x.GoPointer(), "close", cbRefPtr)
205205 }
206206
@@ -224,7 +224,7 @@ func (x *ShortcutsWindow) ConnectSearch(cb *func(ShortcutsWindow)) uint32 {
224224
225225 }
226226 cbRefPtr := purego.NewCallback(fcb)
227- glib.SaveCallback(cbPtr, cbRefPtr)
227+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
228228 return gobject.SignalConnect(x.GoPointer(), "search", cbRefPtr)
229229 }
230230
M v4/gtk/gtkshow.go +1 -1
@@ -42,7 +42,7 @@ func ShowUriFull(ParentVar *Window, UriVar string, TimestampVar uint32, Cancella
4242 cbFn(arg0, arg1, arg2)
4343 }
4444 CallbackVarRef = purego.NewCallback(fcb)
45- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
45+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
4646 }
4747 }
4848
M v4/gtk/gtksignallistitemfactory.go +4 -4
@@ -130,7 +130,7 @@ func (x *SignalListItemFactory) ConnectBind(cb *func(SignalListItemFactory, uint
130130
131131 }
132132 cbRefPtr := purego.NewCallback(fcb)
133- glib.SaveCallback(cbPtr, cbRefPtr)
133+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
134134 return gobject.SignalConnect(x.GoPointer(), "bind", cbRefPtr)
135135 }
136136
@@ -158,7 +158,7 @@ func (x *SignalListItemFactory) ConnectSetup(cb *func(SignalListItemFactory, uin
158158
159159 }
160160 cbRefPtr := purego.NewCallback(fcb)
161- glib.SaveCallback(cbPtr, cbRefPtr)
161+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
162162 return gobject.SignalConnect(x.GoPointer(), "setup", cbRefPtr)
163163 }
164164
@@ -183,7 +183,7 @@ func (x *SignalListItemFactory) ConnectTeardown(cb *func(SignalListItemFactory,
183183
184184 }
185185 cbRefPtr := purego.NewCallback(fcb)
186- glib.SaveCallback(cbPtr, cbRefPtr)
186+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
187187 return gobject.SignalConnect(x.GoPointer(), "teardown", cbRefPtr)
188188 }
189189
@@ -210,7 +210,7 @@ func (x *SignalListItemFactory) ConnectUnbind(cb *func(SignalListItemFactory, ui
210210
211211 }
212212 cbRefPtr := purego.NewCallback(fcb)
213- glib.SaveCallback(cbPtr, cbRefPtr)
213+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
214214 return gobject.SignalConnect(x.GoPointer(), "unbind", cbRefPtr)
215215 }
216216
M v4/gtk/gtksorter.go +1 -1
@@ -458,7 +458,7 @@ func (x *Sorter) ConnectChanged(cb *func(Sorter, SorterChange)) uint32 {
458458
459459 }
460460 cbRefPtr := purego.NewCallback(fcb)
461- glib.SaveCallback(cbPtr, cbRefPtr)
461+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
462462 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
463463 }
464464
M v4/gtk/gtkspinbutton.go +6 -6
@@ -704,7 +704,7 @@ func (x *SpinButton) ConnectActivate(cb *func(SpinButton)) uint32 {
704704
705705 }
706706 cbRefPtr := purego.NewCallback(fcb)
707- glib.SaveCallback(cbPtr, cbRefPtr)
707+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
708708 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
709709 }
710710
@@ -732,7 +732,7 @@ func (x *SpinButton) ConnectChangeValue(cb *func(SpinButton, ScrollType)) uint32
732732
733733 }
734734 cbRefPtr := purego.NewCallback(fcb)
735- glib.SaveCallback(cbPtr, cbRefPtr)
735+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
736736 return gobject.SignalConnect(x.GoPointer(), "change-value", cbRefPtr)
737737 }
738738
@@ -758,7 +758,7 @@ func (x *SpinButton) ConnectInput(cb *func(SpinButton, *float64) int) uint32 {
758758
759759 }
760760 cbRefPtr := purego.NewCallback(fcb)
761- glib.SaveCallback(cbPtr, cbRefPtr)
761+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
762762 return gobject.SignalConnect(x.GoPointer(), "input", cbRefPtr)
763763 }
764764
@@ -799,7 +799,7 @@ func (x *SpinButton) ConnectOutput(cb *func(SpinButton) bool) uint32 {
799799
800800 }
801801 cbRefPtr := purego.NewCallback(fcb)
802- glib.SaveCallback(cbPtr, cbRefPtr)
802+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
803803 return gobject.SignalConnect(x.GoPointer(), "output", cbRefPtr)
804804 }
805805
@@ -821,7 +821,7 @@ func (x *SpinButton) ConnectValueChanged(cb *func(SpinButton)) uint32 {
821821
822822 }
823823 cbRefPtr := purego.NewCallback(fcb)
824- glib.SaveCallback(cbPtr, cbRefPtr)
824+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
825825 return gobject.SignalConnect(x.GoPointer(), "value-changed", cbRefPtr)
826826 }
827827
@@ -842,7 +842,7 @@ func (x *SpinButton) ConnectWrapped(cb *func(SpinButton)) uint32 {
842842
843843 }
844844 cbRefPtr := purego.NewCallback(fcb)
845- glib.SaveCallback(cbPtr, cbRefPtr)
845+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
846846 return gobject.SignalConnect(x.GoPointer(), "wrapped", cbRefPtr)
847847 }
848848
M v4/gtk/gtkstatusbar.go +2 -2
@@ -169,7 +169,7 @@ func (x *Statusbar) ConnectTextPopped(cb *func(Statusbar, uint, string)) uint32
169169
170170 }
171171 cbRefPtr := purego.NewCallback(fcb)
172- glib.SaveCallback(cbPtr, cbRefPtr)
172+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
173173 return gobject.SignalConnect(x.GoPointer(), "text-popped", cbRefPtr)
174174 }
175175
@@ -189,7 +189,7 @@ func (x *Statusbar) ConnectTextPushed(cb *func(Statusbar, uint, string)) uint32
189189
190190 }
191191 cbRefPtr := purego.NewCallback(fcb)
192- glib.SaveCallback(cbPtr, cbRefPtr)
192+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
193193 return gobject.SignalConnect(x.GoPointer(), "text-pushed", cbRefPtr)
194194 }
195195
M v4/gtk/gtkswitch.go +2 -2
@@ -211,7 +211,7 @@ func (x *Switch) ConnectActivate(cb *func(Switch)) uint32 {
211211
212212 }
213213 cbRefPtr := purego.NewCallback(fcb)
214- glib.SaveCallback(cbPtr, cbRefPtr)
214+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
215215 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
216216 }
217217
@@ -241,7 +241,7 @@ func (x *Switch) ConnectStateSet(cb *func(Switch, bool) bool) uint32 {
241241
242242 }
243243 cbRefPtr := purego.NewCallback(fcb)
244- glib.SaveCallback(cbPtr, cbRefPtr)
244+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
245245 return gobject.SignalConnect(x.GoPointer(), "state-set", cbRefPtr)
246246 }
247247
M v4/gtk/gtktext.go +11 -11
@@ -890,7 +890,7 @@ func (x *Text) ConnectActivate(cb *func(Text)) uint32 {
890890
891891 }
892892 cbRefPtr := purego.NewCallback(fcb)
893- glib.SaveCallback(cbPtr, cbRefPtr)
893+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
894894 return gobject.SignalConnect(x.GoPointer(), "activate", cbRefPtr)
895895 }
896896
@@ -915,7 +915,7 @@ func (x *Text) ConnectBackspace(cb *func(Text)) uint32 {
915915
916916 }
917917 cbRefPtr := purego.NewCallback(fcb)
918- glib.SaveCallback(cbPtr, cbRefPtr)
918+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
919919 return gobject.SignalConnect(x.GoPointer(), "backspace", cbRefPtr)
920920 }
921921
@@ -941,7 +941,7 @@ func (x *Text) ConnectCopyClipboard(cb *func(Text)) uint32 {
941941
942942 }
943943 cbRefPtr := purego.NewCallback(fcb)
944- glib.SaveCallback(cbPtr, cbRefPtr)
944+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
945945 return gobject.SignalConnect(x.GoPointer(), "copy-clipboard", cbRefPtr)
946946 }
947947
@@ -967,7 +967,7 @@ func (x *Text) ConnectCutClipboard(cb *func(Text)) uint32 {
967967
968968 }
969969 cbRefPtr := purego.NewCallback(fcb)
970- glib.SaveCallback(cbPtr, cbRefPtr)
970+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
971971 return gobject.SignalConnect(x.GoPointer(), "cut-clipboard", cbRefPtr)
972972 }
973973
@@ -997,7 +997,7 @@ func (x *Text) ConnectDeleteFromCursor(cb *func(Text, DeleteType, int)) uint32 {
997997
998998 }
999999 cbRefPtr := purego.NewCallback(fcb)
1000- glib.SaveCallback(cbPtr, cbRefPtr)
1000+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
10011001 return gobject.SignalConnect(x.GoPointer(), "delete-from-cursor", cbRefPtr)
10021002 }
10031003
@@ -1022,7 +1022,7 @@ func (x *Text) ConnectInsertAtCursor(cb *func(Text, string)) uint32 {
10221022
10231023 }
10241024 cbRefPtr := purego.NewCallback(fcb)
1025- glib.SaveCallback(cbPtr, cbRefPtr)
1025+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
10261026 return gobject.SignalConnect(x.GoPointer(), "insert-at-cursor", cbRefPtr)
10271027 }
10281028
@@ -1048,7 +1048,7 @@ func (x *Text) ConnectInsertEmoji(cb *func(Text)) uint32 {
10481048
10491049 }
10501050 cbRefPtr := purego.NewCallback(fcb)
1051- glib.SaveCallback(cbPtr, cbRefPtr)
1051+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
10521052 return gobject.SignalConnect(x.GoPointer(), "insert-emoji", cbRefPtr)
10531053 }
10541054
@@ -1087,7 +1087,7 @@ func (x *Text) ConnectMoveCursor(cb *func(Text, MovementStep, int, bool)) uint32
10871087
10881088 }
10891089 cbRefPtr := purego.NewCallback(fcb)
1090- glib.SaveCallback(cbPtr, cbRefPtr)
1090+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
10911091 return gobject.SignalConnect(x.GoPointer(), "move-cursor", cbRefPtr)
10921092 }
10931093
@@ -1112,7 +1112,7 @@ func (x *Text) ConnectPasteClipboard(cb *func(Text)) uint32 {
11121112
11131113 }
11141114 cbRefPtr := purego.NewCallback(fcb)
1115- glib.SaveCallback(cbPtr, cbRefPtr)
1115+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
11161116 return gobject.SignalConnect(x.GoPointer(), "paste-clipboard", cbRefPtr)
11171117 }
11181118
@@ -1136,7 +1136,7 @@ func (x *Text) ConnectPreeditChanged(cb *func(Text, string)) uint32 {
11361136
11371137 }
11381138 cbRefPtr := purego.NewCallback(fcb)
1139- glib.SaveCallback(cbPtr, cbRefPtr)
1139+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
11401140 return gobject.SignalConnect(x.GoPointer(), "preedit-changed", cbRefPtr)
11411141 }
11421142
@@ -1160,7 +1160,7 @@ func (x *Text) ConnectToggleOverwrite(cb *func(Text)) uint32 {
11601160
11611161 }
11621162 cbRefPtr := purego.NewCallback(fcb)
1163- glib.SaveCallback(cbPtr, cbRefPtr)
1163+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
11641164 return gobject.SignalConnect(x.GoPointer(), "toggle-overwrite", cbRefPtr)
11651165 }
11661166
M v4/gtk/gtktextbuffer.go +17 -17
@@ -639,7 +639,7 @@ func (x *TextBuffer) AddCommitNotify(FlagsVar TextBufferNotifyFlags, CommitNotif
639639 cbFn(arg0, arg1, arg2, arg3, arg4)
640640 }
641641 CommitNotifyVarRef = purego.NewCallback(fcb)
642- glib.SaveCallback(CommitNotifyVarPtr, CommitNotifyVarRef)
642+ glib.SaveCallbackWithClosure(CommitNotifyVarPtr, CommitNotifyVarRef, CommitNotifyVar)
643643 }
644644 }
645645
@@ -654,7 +654,7 @@ func (x *TextBuffer) AddCommitNotify(FlagsVar TextBufferNotifyFlags, CommitNotif
654654 cbFn(arg0)
655655 }
656656 DestroyVarRef = purego.NewCallback(fcb)
657- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
657+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
658658 }
659659 }
660660
@@ -1897,7 +1897,7 @@ func (x *TextBuffer) ConnectApplyTag(cb *func(TextBuffer, uintptr, uintptr, uint
18971897
18981898 }
18991899 cbRefPtr := purego.NewCallback(fcb)
1900- glib.SaveCallback(cbPtr, cbRefPtr)
1900+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
19011901 return gobject.SignalConnect(x.GoPointer(), "apply-tag", cbRefPtr)
19021902 }
19031903
@@ -1926,7 +1926,7 @@ func (x *TextBuffer) ConnectBeginUserAction(cb *func(TextBuffer)) uint32 {
19261926
19271927 }
19281928 cbRefPtr := purego.NewCallback(fcb)
1929- glib.SaveCallback(cbPtr, cbRefPtr)
1929+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
19301930 return gobject.SignalConnect(x.GoPointer(), "begin-user-action", cbRefPtr)
19311931 }
19321932
@@ -1946,7 +1946,7 @@ func (x *TextBuffer) ConnectChanged(cb *func(TextBuffer)) uint32 {
19461946
19471947 }
19481948 cbRefPtr := purego.NewCallback(fcb)
1949- glib.SaveCallback(cbPtr, cbRefPtr)
1949+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
19501950 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
19511951 }
19521952
@@ -1976,7 +1976,7 @@ func (x *TextBuffer) ConnectDeleteRange(cb *func(TextBuffer, uintptr, uintptr))
19761976
19771977 }
19781978 cbRefPtr := purego.NewCallback(fcb)
1979- glib.SaveCallback(cbPtr, cbRefPtr)
1979+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
19801980 return gobject.SignalConnect(x.GoPointer(), "delete-range", cbRefPtr)
19811981 }
19821982
@@ -2006,7 +2006,7 @@ func (x *TextBuffer) ConnectEndUserAction(cb *func(TextBuffer)) uint32 {
20062006
20072007 }
20082008 cbRefPtr := purego.NewCallback(fcb)
2009- glib.SaveCallback(cbPtr, cbRefPtr)
2009+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
20102010 return gobject.SignalConnect(x.GoPointer(), "end-user-action", cbRefPtr)
20112011 }
20122012
@@ -2035,7 +2035,7 @@ func (x *TextBuffer) ConnectInsertChildAnchor(cb *func(TextBuffer, uintptr, uint
20352035
20362036 }
20372037 cbRefPtr := purego.NewCallback(fcb)
2038- glib.SaveCallback(cbPtr, cbRefPtr)
2038+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
20392039 return gobject.SignalConnect(x.GoPointer(), "insert-child-anchor", cbRefPtr)
20402040 }
20412041
@@ -2064,7 +2064,7 @@ func (x *TextBuffer) ConnectInsertPaintable(cb *func(TextBuffer, uintptr, uintpt
20642064
20652065 }
20662066 cbRefPtr := purego.NewCallback(fcb)
2067- glib.SaveCallback(cbPtr, cbRefPtr)
2067+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
20682068 return gobject.SignalConnect(x.GoPointer(), "insert-paintable", cbRefPtr)
20692069 }
20702070
@@ -2094,7 +2094,7 @@ func (x *TextBuffer) ConnectInsertText(cb *func(TextBuffer, uintptr, string, int
20942094
20952095 }
20962096 cbRefPtr := purego.NewCallback(fcb)
2097- glib.SaveCallback(cbPtr, cbRefPtr)
2097+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
20982098 return gobject.SignalConnect(x.GoPointer(), "insert-text", cbRefPtr)
20992099 }
21002100
@@ -2116,7 +2116,7 @@ func (x *TextBuffer) ConnectMarkDeleted(cb *func(TextBuffer, uintptr)) uint32 {
21162116
21172117 }
21182118 cbRefPtr := purego.NewCallback(fcb)
2119- glib.SaveCallback(cbPtr, cbRefPtr)
2119+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
21202120 return gobject.SignalConnect(x.GoPointer(), "mark-deleted", cbRefPtr)
21212121 }
21222122
@@ -2140,7 +2140,7 @@ func (x *TextBuffer) ConnectMarkSet(cb *func(TextBuffer, uintptr, uintptr)) uint
21402140
21412141 }
21422142 cbRefPtr := purego.NewCallback(fcb)
2143- glib.SaveCallback(cbPtr, cbRefPtr)
2143+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
21442144 return gobject.SignalConnect(x.GoPointer(), "mark-set", cbRefPtr)
21452145 }
21462146
@@ -2162,7 +2162,7 @@ func (x *TextBuffer) ConnectModifiedChanged(cb *func(TextBuffer)) uint32 {
21622162
21632163 }
21642164 cbRefPtr := purego.NewCallback(fcb)
2165- glib.SaveCallback(cbPtr, cbRefPtr)
2165+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
21662166 return gobject.SignalConnect(x.GoPointer(), "modified-changed", cbRefPtr)
21672167 }
21682168
@@ -2186,7 +2186,7 @@ func (x *TextBuffer) ConnectPasteDone(cb *func(TextBuffer, uintptr)) uint32 {
21862186
21872187 }
21882188 cbRefPtr := purego.NewCallback(fcb)
2189- glib.SaveCallback(cbPtr, cbRefPtr)
2189+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
21902190 return gobject.SignalConnect(x.GoPointer(), "paste-done", cbRefPtr)
21912191 }
21922192
@@ -2207,7 +2207,7 @@ func (x *TextBuffer) ConnectRedo(cb *func(TextBuffer)) uint32 {
22072207
22082208 }
22092209 cbRefPtr := purego.NewCallback(fcb)
2210- glib.SaveCallback(cbPtr, cbRefPtr)
2210+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
22112211 return gobject.SignalConnect(x.GoPointer(), "redo", cbRefPtr)
22122212 }
22132213
@@ -2236,7 +2236,7 @@ func (x *TextBuffer) ConnectRemoveTag(cb *func(TextBuffer, uintptr, uintptr, uin
22362236
22372237 }
22382238 cbRefPtr := purego.NewCallback(fcb)
2239- glib.SaveCallback(cbPtr, cbRefPtr)
2239+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
22402240 return gobject.SignalConnect(x.GoPointer(), "remove-tag", cbRefPtr)
22412241 }
22422242
@@ -2258,7 +2258,7 @@ func (x *TextBuffer) ConnectUndo(cb *func(TextBuffer)) uint32 {
22582258
22592259 }
22602260 cbRefPtr := purego.NewCallback(fcb)
2261- glib.SaveCallback(cbPtr, cbRefPtr)
2261+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
22622262 return gobject.SignalConnect(x.GoPointer(), "undo", cbRefPtr)
22632263 }
22642264
M v4/gtk/gtktextiter.go +2 -2
@@ -151,7 +151,7 @@ func (x *TextIter) BackwardFindChar(PredVar *TextCharPredicate, UserDataVar uint
151151 return cbFn(arg0, arg1)
152152 }
153153 PredVarRef = purego.NewCallback(fcb)
154- glib.SaveCallback(PredVarPtr, PredVarRef)
154+ glib.SaveCallbackWithClosure(PredVarPtr, PredVarRef, PredVar)
155155 }
156156 }
157157
@@ -609,7 +609,7 @@ func (x *TextIter) ForwardFindChar(PredVar *TextCharPredicate, UserDataVar uintp
609609 return cbFn(arg0, arg1)
610610 }
611611 PredVarRef = purego.NewCallback(fcb)
612- glib.SaveCallback(PredVarPtr, PredVarRef)
612+ glib.SaveCallbackWithClosure(PredVarPtr, PredVarRef, PredVar)
613613 }
614614 }
615615
M v4/gtk/gtktexttagtable.go +4 -4
@@ -106,7 +106,7 @@ func (x *TextTagTable) Foreach(FuncVar *TextTagTableForeach, DataVar uintptr) {
106106 cbFn(arg0, arg1)
107107 }
108108 FuncVarRef = purego.NewCallback(fcb)
109- glib.SaveCallback(FuncVarPtr, FuncVarRef)
109+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
110110 }
111111 }
112112
@@ -182,7 +182,7 @@ func (x *TextTagTable) ConnectTagAdded(cb *func(TextTagTable, uintptr)) uint32 {
182182
183183 }
184184 cbRefPtr := purego.NewCallback(fcb)
185- glib.SaveCallback(cbPtr, cbRefPtr)
185+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
186186 return gobject.SignalConnect(x.GoPointer(), "tag-added", cbRefPtr)
187187 }
188188
@@ -202,7 +202,7 @@ func (x *TextTagTable) ConnectTagChanged(cb *func(TextTagTable, uintptr, bool))
202202
203203 }
204204 cbRefPtr := purego.NewCallback(fcb)
205- glib.SaveCallback(cbPtr, cbRefPtr)
205+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
206206 return gobject.SignalConnect(x.GoPointer(), "tag-changed", cbRefPtr)
207207 }
208208
@@ -225,7 +225,7 @@ func (x *TextTagTable) ConnectTagRemoved(cb *func(TextTagTable, uintptr)) uint32
225225
226226 }
227227 cbRefPtr := purego.NewCallback(fcb)
228- glib.SaveCallback(cbPtr, cbRefPtr)
228+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
229229 return gobject.SignalConnect(x.GoPointer(), "tag-removed", cbRefPtr)
230230 }
231231
M v4/gtk/gtktextview.go +15 -15
@@ -2018,7 +2018,7 @@ func (x *TextView) ConnectBackspace(cb *func(TextView)) uint32 {
20182018
20192019 }
20202020 cbRefPtr := purego.NewCallback(fcb)
2021- glib.SaveCallback(cbPtr, cbRefPtr)
2021+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
20222022 return gobject.SignalConnect(x.GoPointer(), "backspace", cbRefPtr)
20232023 }
20242024
@@ -2044,7 +2044,7 @@ func (x *TextView) ConnectCopyClipboard(cb *func(TextView)) uint32 {
20442044
20452045 }
20462046 cbRefPtr := purego.NewCallback(fcb)
2047- glib.SaveCallback(cbPtr, cbRefPtr)
2047+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
20482048 return gobject.SignalConnect(x.GoPointer(), "copy-clipboard", cbRefPtr)
20492049 }
20502050
@@ -2070,7 +2070,7 @@ func (x *TextView) ConnectCutClipboard(cb *func(TextView)) uint32 {
20702070
20712071 }
20722072 cbRefPtr := purego.NewCallback(fcb)
2073- glib.SaveCallback(cbPtr, cbRefPtr)
2073+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
20742074 return gobject.SignalConnect(x.GoPointer(), "cut-clipboard", cbRefPtr)
20752075 }
20762076
@@ -2101,7 +2101,7 @@ func (x *TextView) ConnectDeleteFromCursor(cb *func(TextView, DeleteType, int))
21012101
21022102 }
21032103 cbRefPtr := purego.NewCallback(fcb)
2104- glib.SaveCallback(cbPtr, cbRefPtr)
2104+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
21052105 return gobject.SignalConnect(x.GoPointer(), "delete-from-cursor", cbRefPtr)
21062106 }
21072107
@@ -2121,7 +2121,7 @@ func (x *TextView) ConnectExtendSelection(cb *func(TextView, TextExtendSelection
21212121
21222122 }
21232123 cbRefPtr := purego.NewCallback(fcb)
2124- glib.SaveCallback(cbPtr, cbRefPtr)
2124+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
21252125 return gobject.SignalConnect(x.GoPointer(), "extend-selection", cbRefPtr)
21262126 }
21272127
@@ -2146,7 +2146,7 @@ func (x *TextView) ConnectInsertAtCursor(cb *func(TextView, string)) uint32 {
21462146
21472147 }
21482148 cbRefPtr := purego.NewCallback(fcb)
2149- glib.SaveCallback(cbPtr, cbRefPtr)
2149+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
21502150 return gobject.SignalConnect(x.GoPointer(), "insert-at-cursor", cbRefPtr)
21512151 }
21522152
@@ -2172,7 +2172,7 @@ func (x *TextView) ConnectInsertEmoji(cb *func(TextView)) uint32 {
21722172
21732173 }
21742174 cbRefPtr := purego.NewCallback(fcb)
2175- glib.SaveCallback(cbPtr, cbRefPtr)
2175+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
21762176 return gobject.SignalConnect(x.GoPointer(), "insert-emoji", cbRefPtr)
21772177 }
21782178
@@ -2213,7 +2213,7 @@ func (x *TextView) ConnectMoveCursor(cb *func(TextView, MovementStep, int, bool)
22132213
22142214 }
22152215 cbRefPtr := purego.NewCallback(fcb)
2216- glib.SaveCallback(cbPtr, cbRefPtr)
2216+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
22172217 return gobject.SignalConnect(x.GoPointer(), "move-cursor", cbRefPtr)
22182218 }
22192219
@@ -2240,7 +2240,7 @@ func (x *TextView) ConnectMoveViewport(cb *func(TextView, ScrollStep, int)) uint
22402240
22412241 }
22422242 cbRefPtr := purego.NewCallback(fcb)
2243- glib.SaveCallback(cbPtr, cbRefPtr)
2243+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
22442244 return gobject.SignalConnect(x.GoPointer(), "move-viewport", cbRefPtr)
22452245 }
22462246
@@ -2267,7 +2267,7 @@ func (x *TextView) ConnectPasteClipboard(cb *func(TextView)) uint32 {
22672267
22682268 }
22692269 cbRefPtr := purego.NewCallback(fcb)
2270- glib.SaveCallback(cbPtr, cbRefPtr)
2270+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
22712271 return gobject.SignalConnect(x.GoPointer(), "paste-clipboard", cbRefPtr)
22722272 }
22732273
@@ -2294,7 +2294,7 @@ func (x *TextView) ConnectPreeditChanged(cb *func(TextView, string)) uint32 {
22942294
22952295 }
22962296 cbRefPtr := purego.NewCallback(fcb)
2297- glib.SaveCallback(cbPtr, cbRefPtr)
2297+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
22982298 return gobject.SignalConnect(x.GoPointer(), "preedit-changed", cbRefPtr)
22992299 }
23002300
@@ -2322,7 +2322,7 @@ func (x *TextView) ConnectSelectAll(cb *func(TextView, bool)) uint32 {
23222322
23232323 }
23242324 cbRefPtr := purego.NewCallback(fcb)
2325- glib.SaveCallback(cbPtr, cbRefPtr)
2325+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
23262326 return gobject.SignalConnect(x.GoPointer(), "select-all", cbRefPtr)
23272327 }
23282328
@@ -2349,7 +2349,7 @@ func (x *TextView) ConnectSetAnchor(cb *func(TextView)) uint32 {
23492349
23502350 }
23512351 cbRefPtr := purego.NewCallback(fcb)
2352- glib.SaveCallback(cbPtr, cbRefPtr)
2352+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
23532353 return gobject.SignalConnect(x.GoPointer(), "set-anchor", cbRefPtr)
23542354 }
23552355
@@ -2374,7 +2374,7 @@ func (x *TextView) ConnectToggleCursorVisible(cb *func(TextView)) uint32 {
23742374
23752375 }
23762376 cbRefPtr := purego.NewCallback(fcb)
2377- glib.SaveCallback(cbPtr, cbRefPtr)
2377+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
23782378 return gobject.SignalConnect(x.GoPointer(), "toggle-cursor-visible", cbRefPtr)
23792379 }
23802380
@@ -2398,7 +2398,7 @@ func (x *TextView) ConnectToggleOverwrite(cb *func(TextView)) uint32 {
23982398
23992399 }
24002400 cbRefPtr := purego.NewCallback(fcb)
2401- glib.SaveCallback(cbPtr, cbRefPtr)
2401+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
24022402 return gobject.SignalConnect(x.GoPointer(), "toggle-overwrite", cbRefPtr)
24032403 }
24042404
M v4/gtk/gtktogglebutton.go +1 -1
@@ -304,7 +304,7 @@ func (x *ToggleButton) ConnectToggled(cb *func(ToggleButton)) uint32 {
304304
305305 }
306306 cbRefPtr := purego.NewCallback(fcb)
307- glib.SaveCallback(cbPtr, cbRefPtr)
307+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
308308 return gobject.SignalConnect(x.GoPointer(), "toggled", cbRefPtr)
309309 }
310310
M v4/gtk/gtktreelistmodel.go +2 -2
@@ -77,7 +77,7 @@ func NewTreeListModel(RootVar gio.ListModel, PassthroughVar bool, AutoexpandVar
7777 return cbFn(arg0, arg1)
7878 }
7979 CreateFuncVarRef = purego.NewCallback(fcb)
80- glib.SaveCallback(CreateFuncVarPtr, CreateFuncVarRef)
80+ glib.SaveCallbackWithClosure(CreateFuncVarPtr, CreateFuncVarRef, CreateFuncVar)
8181 }
8282 }
8383
@@ -92,7 +92,7 @@ func NewTreeListModel(RootVar gio.ListModel, PassthroughVar bool, AutoexpandVar
9292 cbFn(arg0)
9393 }
9494 UserDestroyVarRef = purego.NewCallback(fcb)
95- glib.SaveCallback(UserDestroyVarPtr, UserDestroyVarRef)
95+ glib.SaveCallbackWithClosure(UserDestroyVarPtr, UserDestroyVarRef, UserDestroyVar)
9696 }
9797 }
9898
M v4/gtk/gtktreemodelfilter.go +4 -4
@@ -305,7 +305,7 @@ func (x *TreeModelFilter) SetModifyFunc(NColumnsVar int, TypesVar []types.GType,
305305 cbFn(arg0, arg1, arg2, arg3, arg4)
306306 }
307307 FuncVarRef = purego.NewCallback(fcb)
308- glib.SaveCallback(FuncVarPtr, FuncVarRef)
308+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
309309 }
310310 }
311311
@@ -320,7 +320,7 @@ func (x *TreeModelFilter) SetModifyFunc(NColumnsVar int, TypesVar []types.GType,
320320 cbFn(arg0)
321321 }
322322 DestroyVarRef = purego.NewCallback(fcb)
323- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
323+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
324324 }
325325 }
326326
@@ -397,7 +397,7 @@ func (x *TreeModelFilter) SetVisibleFunc(FuncVar *TreeModelFilterVisibleFunc, Da
397397 return cbFn(arg0, arg1, arg2)
398398 }
399399 FuncVarRef = purego.NewCallback(fcb)
400- glib.SaveCallback(FuncVarPtr, FuncVarRef)
400+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
401401 }
402402 }
403403
@@ -412,7 +412,7 @@ func (x *TreeModelFilter) SetVisibleFunc(FuncVar *TreeModelFilterVisibleFunc, Da
412412 cbFn(arg0)
413413 }
414414 DestroyVarRef = purego.NewCallback(fcb)
415- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
415+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
416416 }
417417 }
418418
M v4/gtk/gtktreeselection.go +4 -4
@@ -232,7 +232,7 @@ func (x *TreeSelection) SelectedForeach(FuncVar *TreeSelectionForeachFunc, DataV
232232 cbFn(arg0, arg1, arg2, arg3)
233233 }
234234 FuncVarRef = purego.NewCallback(fcb)
235- glib.SaveCallback(FuncVarPtr, FuncVarRef)
235+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
236236 }
237237 }
238238
@@ -272,7 +272,7 @@ func (x *TreeSelection) SetSelectFunction(FuncVar *TreeSelectionFunc, DataVar ui
272272 return cbFn(arg0, arg1, arg2, arg3, arg4)
273273 }
274274 FuncVarRef = purego.NewCallback(fcb)
275- glib.SaveCallback(FuncVarPtr, FuncVarRef)
275+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
276276 }
277277 }
278278
@@ -287,7 +287,7 @@ func (x *TreeSelection) SetSelectFunction(FuncVar *TreeSelectionFunc, DataVar ui
287287 cbFn(arg0)
288288 }
289289 DestroyVarRef = purego.NewCallback(fcb)
290- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
290+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
291291 }
292292 }
293293
@@ -362,7 +362,7 @@ func (x *TreeSelection) ConnectChanged(cb *func(TreeSelection)) uint32 {
362362
363363 }
364364 cbRefPtr := purego.NewCallback(fcb)
365- glib.SaveCallback(cbPtr, cbRefPtr)
365+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
366366 return gobject.SignalConnect(x.GoPointer(), "changed", cbRefPtr)
367367 }
368368
M v4/gtk/gtktreeview.go +24 -24
@@ -1232,7 +1232,7 @@ func (x *TreeView) InsertColumnWithDataFunc(PositionVar int, TitleVar string, Ce
12321232 cbFn(arg0, arg1, arg2, arg3, arg4)
12331233 }
12341234 FuncVarRef = purego.NewCallback(fcb)
1235- glib.SaveCallback(FuncVarPtr, FuncVarRef)
1235+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
12361236 }
12371237 }
12381238
@@ -1247,7 +1247,7 @@ func (x *TreeView) InsertColumnWithDataFunc(PositionVar int, TitleVar string, Ce
12471247 cbFn(arg0)
12481248 }
12491249 DnotifyVarRef = purego.NewCallback(fcb)
1250- glib.SaveCallback(DnotifyVarPtr, DnotifyVarRef)
1250+ glib.SaveCallbackWithClosure(DnotifyVarPtr, DnotifyVarRef, DnotifyVar)
12511251 }
12521252 }
12531253
@@ -1309,7 +1309,7 @@ func (x *TreeView) MapExpandedRows(FuncVar *TreeViewMappingFunc, DataVar uintptr
13091309 cbFn(arg0, arg1, arg2)
13101310 }
13111311 FuncVarRef = purego.NewCallback(fcb)
1312- glib.SaveCallback(FuncVarPtr, FuncVarRef)
1312+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
13131313 }
13141314 }
13151315
@@ -1429,7 +1429,7 @@ func (x *TreeView) SetColumnDragFunction(FuncVar *TreeViewColumnDropFunc, UserDa
14291429 return cbFn(arg0, arg1, arg2, arg3, arg4)
14301430 }
14311431 FuncVarRef = purego.NewCallback(fcb)
1432- glib.SaveCallback(FuncVarPtr, FuncVarRef)
1432+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
14331433 }
14341434 }
14351435
@@ -1444,7 +1444,7 @@ func (x *TreeView) SetColumnDragFunction(FuncVar *TreeViewColumnDropFunc, UserDa
14441444 cbFn(arg0)
14451445 }
14461446 DestroyVarRef = purego.NewCallback(fcb)
1447- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
1447+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
14481448 }
14491449 }
14501450
@@ -1667,7 +1667,7 @@ func (x *TreeView) SetRowSeparatorFunc(FuncVar *TreeViewRowSeparatorFunc, DataVa
16671667 return cbFn(arg0, arg1, arg2)
16681668 }
16691669 FuncVarRef = purego.NewCallback(fcb)
1670- glib.SaveCallback(FuncVarPtr, FuncVarRef)
1670+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
16711671 }
16721672 }
16731673
@@ -1682,7 +1682,7 @@ func (x *TreeView) SetRowSeparatorFunc(FuncVar *TreeViewRowSeparatorFunc, DataVa
16821682 cbFn(arg0)
16831683 }
16841684 DestroyVarRef = purego.NewCallback(fcb)
1685- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
1685+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
16861686 }
16871687 }
16881688
@@ -1749,7 +1749,7 @@ func (x *TreeView) SetSearchEqualFunc(SearchEqualFuncVar *TreeViewSearchEqualFun
17491749 return cbFn(arg0, arg1, arg2, arg3, arg4)
17501750 }
17511751 SearchEqualFuncVarRef = purego.NewCallback(fcb)
1752- glib.SaveCallback(SearchEqualFuncVarPtr, SearchEqualFuncVarRef)
1752+ glib.SaveCallbackWithClosure(SearchEqualFuncVarPtr, SearchEqualFuncVarRef, SearchEqualFuncVar)
17531753 }
17541754 }
17551755
@@ -1764,7 +1764,7 @@ func (x *TreeView) SetSearchEqualFunc(SearchEqualFuncVar *TreeViewSearchEqualFun
17641764 cbFn(arg0)
17651765 }
17661766 SearchDestroyVarRef = purego.NewCallback(fcb)
1767- glib.SaveCallback(SearchDestroyVarPtr, SearchDestroyVarRef)
1767+ glib.SaveCallbackWithClosure(SearchDestroyVarPtr, SearchDestroyVarRef, SearchDestroyVar)
17681768 }
17691769 }
17701770
@@ -2138,7 +2138,7 @@ func (x *TreeView) ConnectColumnsChanged(cb *func(TreeView)) uint32 {
21382138
21392139 }
21402140 cbRefPtr := purego.NewCallback(fcb)
2141- glib.SaveCallback(cbPtr, cbRefPtr)
2141+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
21422142 return gobject.SignalConnect(x.GoPointer(), "columns-changed", cbRefPtr)
21432143 }
21442144
@@ -2158,7 +2158,7 @@ func (x *TreeView) ConnectCursorChanged(cb *func(TreeView)) uint32 {
21582158
21592159 }
21602160 cbRefPtr := purego.NewCallback(fcb)
2161- glib.SaveCallback(cbPtr, cbRefPtr)
2161+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
21622162 return gobject.SignalConnect(x.GoPointer(), "cursor-changed", cbRefPtr)
21632163 }
21642164
@@ -2177,7 +2177,7 @@ func (x *TreeView) ConnectExpandCollapseCursorRow(cb *func(TreeView, bool, bool,
21772177
21782178 }
21792179 cbRefPtr := purego.NewCallback(fcb)
2180- glib.SaveCallback(cbPtr, cbRefPtr)
2180+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
21812181 return gobject.SignalConnect(x.GoPointer(), "expand-collapse-cursor-row", cbRefPtr)
21822182 }
21832183
@@ -2205,7 +2205,7 @@ func (x *TreeView) ConnectMoveCursor(cb *func(TreeView, MovementStep, int, bool,
22052205
22062206 }
22072207 cbRefPtr := purego.NewCallback(fcb)
2208- glib.SaveCallback(cbPtr, cbRefPtr)
2208+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
22092209 return gobject.SignalConnect(x.GoPointer(), "move-cursor", cbRefPtr)
22102210 }
22112211
@@ -2238,7 +2238,7 @@ func (x *TreeView) ConnectRowActivated(cb *func(TreeView, uintptr, uintptr)) uin
22382238
22392239 }
22402240 cbRefPtr := purego.NewCallback(fcb)
2241- glib.SaveCallback(cbPtr, cbRefPtr)
2241+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
22422242 return gobject.SignalConnect(x.GoPointer(), "row-activated", cbRefPtr)
22432243 }
22442244
@@ -2258,7 +2258,7 @@ func (x *TreeView) ConnectRowCollapsed(cb *func(TreeView, uintptr, uintptr)) uin
22582258
22592259 }
22602260 cbRefPtr := purego.NewCallback(fcb)
2261- glib.SaveCallback(cbPtr, cbRefPtr)
2261+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
22622262 return gobject.SignalConnect(x.GoPointer(), "row-collapsed", cbRefPtr)
22632263 }
22642264
@@ -2278,7 +2278,7 @@ func (x *TreeView) ConnectRowExpanded(cb *func(TreeView, uintptr, uintptr)) uint
22782278
22792279 }
22802280 cbRefPtr := purego.NewCallback(fcb)
2281- glib.SaveCallback(cbPtr, cbRefPtr)
2281+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
22822282 return gobject.SignalConnect(x.GoPointer(), "row-expanded", cbRefPtr)
22832283 }
22842284
@@ -2297,7 +2297,7 @@ func (x *TreeView) ConnectSelectAll(cb *func(TreeView) bool) uint32 {
22972297
22982298 }
22992299 cbRefPtr := purego.NewCallback(fcb)
2300- glib.SaveCallback(cbPtr, cbRefPtr)
2300+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
23012301 return gobject.SignalConnect(x.GoPointer(), "select-all", cbRefPtr)
23022302 }
23032303
@@ -2316,7 +2316,7 @@ func (x *TreeView) ConnectSelectCursorParent(cb *func(TreeView) bool) uint32 {
23162316
23172317 }
23182318 cbRefPtr := purego.NewCallback(fcb)
2319- glib.SaveCallback(cbPtr, cbRefPtr)
2319+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
23202320 return gobject.SignalConnect(x.GoPointer(), "select-cursor-parent", cbRefPtr)
23212321 }
23222322
@@ -2335,7 +2335,7 @@ func (x *TreeView) ConnectSelectCursorRow(cb *func(TreeView, bool) bool) uint32
23352335
23362336 }
23372337 cbRefPtr := purego.NewCallback(fcb)
2338- glib.SaveCallback(cbPtr, cbRefPtr)
2338+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
23392339 return gobject.SignalConnect(x.GoPointer(), "select-cursor-row", cbRefPtr)
23402340 }
23412341
@@ -2354,7 +2354,7 @@ func (x *TreeView) ConnectStartInteractiveSearch(cb *func(TreeView) bool) uint32
23542354
23552355 }
23562356 cbRefPtr := purego.NewCallback(fcb)
2357- glib.SaveCallback(cbPtr, cbRefPtr)
2357+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
23582358 return gobject.SignalConnect(x.GoPointer(), "start-interactive-search", cbRefPtr)
23592359 }
23602360
@@ -2375,7 +2375,7 @@ func (x *TreeView) ConnectTestCollapseRow(cb *func(TreeView, uintptr, uintptr) b
23752375
23762376 }
23772377 cbRefPtr := purego.NewCallback(fcb)
2378- glib.SaveCallback(cbPtr, cbRefPtr)
2378+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
23792379 return gobject.SignalConnect(x.GoPointer(), "test-collapse-row", cbRefPtr)
23802380 }
23812381
@@ -2396,7 +2396,7 @@ func (x *TreeView) ConnectTestExpandRow(cb *func(TreeView, uintptr, uintptr) boo
23962396
23972397 }
23982398 cbRefPtr := purego.NewCallback(fcb)
2399- glib.SaveCallback(cbPtr, cbRefPtr)
2399+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
24002400 return gobject.SignalConnect(x.GoPointer(), "test-expand-row", cbRefPtr)
24012401 }
24022402
@@ -2415,7 +2415,7 @@ func (x *TreeView) ConnectToggleCursorRow(cb *func(TreeView) bool) uint32 {
24152415
24162416 }
24172417 cbRefPtr := purego.NewCallback(fcb)
2418- glib.SaveCallback(cbPtr, cbRefPtr)
2418+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
24192419 return gobject.SignalConnect(x.GoPointer(), "toggle-cursor-row", cbRefPtr)
24202420 }
24212421
@@ -2434,7 +2434,7 @@ func (x *TreeView) ConnectUnselectAll(cb *func(TreeView) bool) uint32 {
24342434
24352435 }
24362436 cbRefPtr := purego.NewCallback(fcb)
2437- glib.SaveCallback(cbPtr, cbRefPtr)
2437+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
24382438 return gobject.SignalConnect(x.GoPointer(), "unselect-all", cbRefPtr)
24392439 }
24402440
M v4/gtk/gtktreeviewcolumn.go +3 -3
@@ -553,7 +553,7 @@ func (x *TreeViewColumn) SetCellDataFunc(CellRendererVar *CellRenderer, FuncVar
553553 cbFn(arg0, arg1, arg2, arg3, arg4)
554554 }
555555 FuncVarRef = purego.NewCallback(fcb)
556- glib.SaveCallback(FuncVarPtr, FuncVarRef)
556+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
557557 }
558558 }
559559
@@ -568,7 +568,7 @@ func (x *TreeViewColumn) SetCellDataFunc(CellRendererVar *CellRenderer, FuncVar
568568 cbFn(arg0)
569569 }
570570 DestroyVarRef = purego.NewCallback(fcb)
571- glib.SaveCallback(DestroyVarPtr, DestroyVarRef)
571+ glib.SaveCallbackWithClosure(DestroyVarPtr, DestroyVarRef, DestroyVar)
572572 }
573573 }
574574
@@ -995,7 +995,7 @@ func (x *TreeViewColumn) ConnectClicked(cb *func(TreeViewColumn)) uint32 {
995995
996996 }
997997 cbRefPtr := purego.NewCallback(fcb)
998- glib.SaveCallback(cbPtr, cbRefPtr)
998+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
999999 return gobject.SignalConnect(x.GoPointer(), "clicked", cbRefPtr)
10001000 }
10011001
M v4/gtk/gtkurilauncher.go +1 -1
@@ -113,7 +113,7 @@ func (x *UriLauncher) Launch(ParentVar *Window, CancellableVar *gio.Cancellable,
113113 cbFn(arg0, arg1, arg2)
114114 }
115115 CallbackVarRef = purego.NewCallback(fcb)
116- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
116+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
117117 }
118118 }
119119
M v4/gtk/gtkwidget.go +18 -18
@@ -173,7 +173,7 @@ func (x *WidgetClass) AddBinding(KeyvalVar uint, ModsVar gdk.ModifierType, Callb
173173 return cbFn(arg0, arg1, arg2)
174174 }
175175 CallbackVarRef = purego.NewCallback(fcb)
176- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
176+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
177177 }
178178 }
179179
@@ -269,7 +269,7 @@ func (x *WidgetClass) BindTemplateCallbackFull(CallbackNameVar string, CallbackS
269269 cbFn()
270270 }
271271 CallbackSymbolVarRef = purego.NewCallback(fcb)
272- glib.SaveCallback(CallbackSymbolVarPtr, CallbackSymbolVarRef)
272+ glib.SaveCallbackWithClosure(CallbackSymbolVarPtr, CallbackSymbolVarRef, CallbackSymbolVar)
273273 }
274274 }
275275
@@ -388,7 +388,7 @@ func (x *WidgetClass) InstallAction(ActionNameVar string, ParameterTypeVar *stri
388388 cbFn(arg0, arg1, arg2)
389389 }
390390 ActivateVarRef = purego.NewCallback(fcb)
391- glib.SaveCallback(ActivateVarPtr, ActivateVarRef)
391+ glib.SaveCallbackWithClosure(ActivateVarPtr, ActivateVarRef, ActivateVar)
392392 }
393393 }
394394
@@ -1919,7 +1919,7 @@ func (x *Widget) AddTickCallback(CallbackVar *TickCallback, UserDataVar uintptr,
19191919 return cbFn(arg0, arg1, arg2)
19201920 }
19211921 CallbackVarRef = purego.NewCallback(fcb)
1922- glib.SaveCallback(CallbackVarPtr, CallbackVarRef)
1922+ glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
19231923 }
19241924 }
19251925
@@ -1934,7 +1934,7 @@ func (x *Widget) AddTickCallback(CallbackVar *TickCallback, UserDataVar uintptr,
19341934 cbFn(arg0)
19351935 }
19361936 NotifyVarRef = purego.NewCallback(fcb)
1937- glib.SaveCallback(NotifyVarPtr, NotifyVarRef)
1937+ glib.SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
19381938 }
19391939 }
19401940
@@ -5169,7 +5169,7 @@ func (x *Widget) ConnectDestroy(cb *func(Widget)) uint32 {
51695169
51705170 }
51715171 cbRefPtr := purego.NewCallback(fcb)
5172- glib.SaveCallback(cbPtr, cbRefPtr)
5172+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
51735173 return gobject.SignalConnect(x.GoPointer(), "destroy", cbRefPtr)
51745174 }
51755175
@@ -5189,7 +5189,7 @@ func (x *Widget) ConnectDirectionChanged(cb *func(Widget, TextDirection)) uint32
51895189
51905190 }
51915191 cbRefPtr := purego.NewCallback(fcb)
5192- glib.SaveCallback(cbPtr, cbRefPtr)
5192+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
51935193 return gobject.SignalConnect(x.GoPointer(), "direction-changed", cbRefPtr)
51945194 }
51955195
@@ -5209,7 +5209,7 @@ func (x *Widget) ConnectHide(cb *func(Widget)) uint32 {
52095209
52105210 }
52115211 cbRefPtr := purego.NewCallback(fcb)
5212- glib.SaveCallback(cbPtr, cbRefPtr)
5212+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
52135213 return gobject.SignalConnect(x.GoPointer(), "hide", cbRefPtr)
52145214 }
52155215
@@ -5231,7 +5231,7 @@ func (x *Widget) ConnectKeynavFailed(cb *func(Widget, DirectionType) bool) uint3
52315231
52325232 }
52335233 cbRefPtr := purego.NewCallback(fcb)
5234- glib.SaveCallback(cbPtr, cbRefPtr)
5234+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
52355235 return gobject.SignalConnect(x.GoPointer(), "keynav-failed", cbRefPtr)
52365236 }
52375237
@@ -5259,7 +5259,7 @@ func (x *Widget) ConnectMap(cb *func(Widget)) uint32 {
52595259
52605260 }
52615261 cbRefPtr := purego.NewCallback(fcb)
5262- glib.SaveCallback(cbPtr, cbRefPtr)
5262+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
52635263 return gobject.SignalConnect(x.GoPointer(), "map", cbRefPtr)
52645264 }
52655265
@@ -5282,7 +5282,7 @@ func (x *Widget) ConnectMnemonicActivate(cb *func(Widget, bool) bool) uint32 {
52825282
52835283 }
52845284 cbRefPtr := purego.NewCallback(fcb)
5285- glib.SaveCallback(cbPtr, cbRefPtr)
5285+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
52865286 return gobject.SignalConnect(x.GoPointer(), "mnemonic-activate", cbRefPtr)
52875287 }
52885288
@@ -5307,7 +5307,7 @@ func (x *Widget) ConnectMoveFocus(cb *func(Widget, DirectionType)) uint32 {
53075307
53085308 }
53095309 cbRefPtr := purego.NewCallback(fcb)
5310- glib.SaveCallback(cbPtr, cbRefPtr)
5310+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
53115311 return gobject.SignalConnect(x.GoPointer(), "move-focus", cbRefPtr)
53125312 }
53135313
@@ -5339,7 +5339,7 @@ func (x *Widget) ConnectQueryTooltip(cb *func(Widget, int, int, bool, uintptr) b
53395339
53405340 }
53415341 cbRefPtr := purego.NewCallback(fcb)
5342- glib.SaveCallback(cbPtr, cbRefPtr)
5342+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
53435343 return gobject.SignalConnect(x.GoPointer(), "query-tooltip", cbRefPtr)
53445344 }
53455345
@@ -5362,7 +5362,7 @@ func (x *Widget) ConnectRealize(cb *func(Widget)) uint32 {
53625362
53635363 }
53645364 cbRefPtr := purego.NewCallback(fcb)
5365- glib.SaveCallback(cbPtr, cbRefPtr)
5365+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
53665366 return gobject.SignalConnect(x.GoPointer(), "realize", cbRefPtr)
53675367 }
53685368
@@ -5382,7 +5382,7 @@ func (x *Widget) ConnectShow(cb *func(Widget)) uint32 {
53825382
53835383 }
53845384 cbRefPtr := purego.NewCallback(fcb)
5385- glib.SaveCallback(cbPtr, cbRefPtr)
5385+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
53865386 return gobject.SignalConnect(x.GoPointer(), "show", cbRefPtr)
53875387 }
53885388
@@ -5404,7 +5404,7 @@ func (x *Widget) ConnectStateFlagsChanged(cb *func(Widget, StateFlags)) uint32 {
54045404
54055405 }
54065406 cbRefPtr := purego.NewCallback(fcb)
5407- glib.SaveCallback(cbPtr, cbRefPtr)
5407+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
54085408 return gobject.SignalConnect(x.GoPointer(), "state-flags-changed", cbRefPtr)
54095409 }
54105410
@@ -5430,7 +5430,7 @@ func (x *Widget) ConnectUnmap(cb *func(Widget)) uint32 {
54305430
54315431 }
54325432 cbRefPtr := purego.NewCallback(fcb)
5433- glib.SaveCallback(cbPtr, cbRefPtr)
5433+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
54345434 return gobject.SignalConnect(x.GoPointer(), "unmap", cbRefPtr)
54355435 }
54365436
@@ -5453,7 +5453,7 @@ func (x *Widget) ConnectUnrealize(cb *func(Widget)) uint32 {
54535453
54545454 }
54555455 cbRefPtr := purego.NewCallback(fcb)
5456- glib.SaveCallback(cbPtr, cbRefPtr)
5456+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
54575457 return gobject.SignalConnect(x.GoPointer(), "unrealize", cbRefPtr)
54585458 }
54595459
M v4/gtk/gtkwindow.go +5 -5
@@ -1599,7 +1599,7 @@ func (x *Window) ConnectActivateDefault(cb *func(Window)) uint32 {
15991599
16001600 }
16011601 cbRefPtr := purego.NewCallback(fcb)
1602- glib.SaveCallback(cbPtr, cbRefPtr)
1602+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
16031603 return gobject.SignalConnect(x.GoPointer(), "activate-default", cbRefPtr)
16041604 }
16051605
@@ -1624,7 +1624,7 @@ func (x *Window) ConnectActivateFocus(cb *func(Window)) uint32 {
16241624
16251625 }
16261626 cbRefPtr := purego.NewCallback(fcb)
1627- glib.SaveCallback(cbPtr, cbRefPtr)
1627+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
16281628 return gobject.SignalConnect(x.GoPointer(), "activate-focus", cbRefPtr)
16291629 }
16301630
@@ -1644,7 +1644,7 @@ func (x *Window) ConnectCloseRequest(cb *func(Window) bool) uint32 {
16441644
16451645 }
16461646 cbRefPtr := purego.NewCallback(fcb)
1647- glib.SaveCallback(cbPtr, cbRefPtr)
1647+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
16481648 return gobject.SignalConnect(x.GoPointer(), "close-request", cbRefPtr)
16491649 }
16501650
@@ -1674,7 +1674,7 @@ func (x *Window) ConnectEnableDebugging(cb *func(Window, bool) bool) uint32 {
16741674
16751675 }
16761676 cbRefPtr := purego.NewCallback(fcb)
1677- glib.SaveCallback(cbPtr, cbRefPtr)
1677+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
16781678 return gobject.SignalConnect(x.GoPointer(), "enable-debugging", cbRefPtr)
16791679 }
16801680
@@ -1695,7 +1695,7 @@ func (x *Window) ConnectKeysChanged(cb *func(Window)) uint32 {
16951695
16961696 }
16971697 cbRefPtr := purego.NewCallback(fcb)
1698- glib.SaveCallback(cbPtr, cbRefPtr)
1698+ glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
16991699 return gobject.SignalConnect(x.GoPointer(), "keys-changed", cbRefPtr)
17001700 }
17011701
M v4/pango/pango-attributes.go +3 -3
@@ -408,7 +408,7 @@ func (x *AttrList) Filter(FuncVar *AttrFilterFunc, DataVar uintptr) *AttrList {
408408 return cbFn(arg0, arg1)
409409 }
410410 FuncVarRef = purego.NewCallback(fcb)
411- glib.SaveCallback(FuncVarPtr, FuncVarRef)
411+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
412412 }
413413 }
414414
@@ -1397,7 +1397,7 @@ func AttrShapeNewWithData(InkRectVar *Rectangle, LogicalRectVar *Rectangle, Data
13971397 return cbFn(arg0)
13981398 }
13991399 CopyFuncVarRef = purego.NewCallback(fcb)
1400- glib.SaveCallback(CopyFuncVarPtr, CopyFuncVarRef)
1400+ glib.SaveCallbackWithClosure(CopyFuncVarPtr, CopyFuncVarRef, CopyFuncVar)
14011401 }
14021402 }
14031403
@@ -1412,7 +1412,7 @@ func AttrShapeNewWithData(InkRectVar *Rectangle, LogicalRectVar *Rectangle, Data
14121412 cbFn(arg0)
14131413 }
14141414 DestroyFuncVarRef = purego.NewCallback(fcb)
1415- glib.SaveCallback(DestroyFuncVarPtr, DestroyFuncVarRef)
1415+ glib.SaveCallbackWithClosure(DestroyFuncVarPtr, DestroyFuncVarRef, DestroyFuncVar)
14161416 }
14171417 }
14181418
M v4/pango/pango-fontset.go +1 -1
@@ -300,7 +300,7 @@ func (x *Fontset) Foreach(FuncVar *FontsetForeachFunc, DataVar uintptr) {
300300 return cbFn(arg0, arg1, arg2)
301301 }
302302 FuncVarRef = purego.NewCallback(fcb)
303- glib.SaveCallback(FuncVarPtr, FuncVarRef)
303+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
304304 }
305305 }
306306
M v4/pangocairo/pangocairo.go +2 -2
@@ -255,7 +255,7 @@ func ContextSetShapeRenderer(ContextVar *pango.Context, FuncVar *ShapeRendererFu
255255 cbFn(arg0, arg1, arg2, arg3)
256256 }
257257 FuncVarRef = purego.NewCallback(fcb)
258- glib.SaveCallback(FuncVarPtr, FuncVarRef)
258+ glib.SaveCallbackWithClosure(FuncVarPtr, FuncVarRef, FuncVar)
259259 }
260260 }
261261
@@ -270,7 +270,7 @@ func ContextSetShapeRenderer(ContextVar *pango.Context, FuncVar *ShapeRendererFu
270270 cbFn(arg0)
271271 }
272272 DnotifyVarRef = purego.NewCallback(fcb)
273- glib.SaveCallback(DnotifyVarPtr, DnotifyVarRef)
273+ glib.SaveCallbackWithClosure(DnotifyVarPtr, DnotifyVarRef, DnotifyVar)
274274 }
275275 }
276276

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