detached 3581026

Merge pull request #4 from bnema/fix/callback-trampoline

feat(glib): implement trampoline pattern for source callbacks
commit
35810267b265873ed9980b670093865eed5abcf0
author
bnema · · 2026-02-13 18:41 UTC
committer
GitHub · · 2026-02-13 18:41 UTC
merge of
fb13c24 + 6182b1e · diff against the first parent
signature
GPG UnverifiedB5690EEEBB952194 The key is unknown
59 files · +941 -194
M templates/glib +150 -0
@@ -187,6 +187,152 @@ func RemoveCallbackBySource(sourceID uint) {
187187 callbacks.Unlock()
188188 }
189189
190+// ---------------------------------------------------------------------------
191+// Source callback trampoline
192+//
193+// GLib source functions (IdleAdd, TimeoutAdd, etc.) previously allocated a new
194+// purego callback slot for every invocation. purego has a hard limit of 2000
195+// slots, so long-running programs that schedule many one-shot idle/timeout
196+// callbacks would exhaust the pool and panic.
197+//
198+// The trampoline uses a single purego callback that dispatches through a
199+// Go-side map keyed by an opaque ID passed as GLib's user_data pointer.
200+// This means all IdleAdd/TimeoutAdd calls share ONE purego slot regardless
201+// of how many are outstanding.
202+// ---------------------------------------------------------------------------
203+
204+// sourceEntry holds a registered GLib source callback.
205+type sourceEntry struct {
206+ fn SourceFunc
207+ once bool // if true, automatically remove after first call (SourceOnceFunc semantics)
208+}
209+
210+var sourceTrampolines = struct {
211+ sync.Mutex
212+ nextID uintptr
213+ funcs map[uintptr]*sourceEntry
214+ sourceToDataID map[uint]uintptr // GLib source ID → trampoline data ID
215+}{
216+ funcs: make(map[uintptr]*sourceEntry),
217+ sourceToDataID: make(map[uint]uintptr),
218+}
219+
220+// sourceTrampolineCb is the single purego callback shared by all source functions.
221+// GLib calls it with the user_data we provided (our map key).
222+var sourceTrampolineCb uintptr
223+
224+// sourceTrampolineOnceCb is the single purego callback for SourceOnceFunc sources
225+// (IdleAddOnce, TimeoutAddOnce). These have signature func(uintptr) with no return.
226+var sourceTrampolineOnceCb uintptr
227+
228+func initSourceTrampoline() {
229+ fn := func(id uintptr) uintptr {
230+ sourceTrampolines.Lock()
231+ entry, ok := sourceTrampolines.funcs[id]
232+ if !ok {
233+ sourceTrampolines.Unlock()
234+ return 0 // SOURCE_REMOVE — entry already cleaned up (e.g. by SourceRemove)
235+ }
236+ cb := entry.fn
237+ sourceTrampolines.Unlock()
238+
239+ result := cb(0)
240+
241+ if !result {
242+ sourceTrampolines.Lock()
243+ delete(sourceTrampolines.funcs, id)
244+ // Also clean up the reverse mapping (source ID → data ID).
245+ for sid, did := range sourceTrampolines.sourceToDataID {
246+ if did == id {
247+ delete(sourceTrampolines.sourceToDataID, sid)
248+ break
249+ }
250+ }
251+ sourceTrampolines.Unlock()
252+ }
253+ if result {
254+ return 1
255+ }
256+ return 0
257+ }
258+ sourceTrampolineCb = purego.NewCallback(fn)
259+
260+ onceFn := func(id uintptr) {
261+ sourceTrampolines.Lock()
262+ entry, ok := sourceTrampolines.funcs[id]
263+ if !ok {
264+ sourceTrampolines.Unlock()
265+ return
266+ }
267+ cb := entry.fn
268+ delete(sourceTrampolines.funcs, id)
269+ // Also clean up the reverse mapping.
270+ for sid, did := range sourceTrampolines.sourceToDataID {
271+ if did == id {
272+ delete(sourceTrampolines.sourceToDataID, sid)
273+ break
274+ }
275+ }
276+ sourceTrampolines.Unlock()
277+
278+ cb(0)
279+ }
280+ sourceTrampolineOnceCb = purego.NewCallback(onceFn)
281+}
282+
283+// registerSourceFunc stores a SourceFunc in the trampoline map and returns
284+// the trampoline callback pointer and the user_data key.
285+func registerSourceFunc(fn *SourceFunc, once bool) (trampolineCb uintptr, userData uintptr) {
286+ if fn == nil {
287+ return 0, 0
288+ }
289+ sourceTrampolines.Lock()
290+ sourceTrampolines.nextID++
291+ id := sourceTrampolines.nextID
292+ sourceTrampolines.funcs[id] = &sourceEntry{fn: *fn, once: once}
293+ sourceTrampolines.Unlock()
294+ if once {
295+ return sourceTrampolineOnceCb, id
296+ }
297+ return sourceTrampolineCb, id
298+}
299+
300+// registerSourceOnceFunc stores a SourceOnceFunc in the trampoline map and
301+// returns the trampoline callback pointer and the user_data key.
302+func registerSourceOnceFunc(fn *SourceOnceFunc) (trampolineCb uintptr, userData uintptr) {
303+ if fn == nil {
304+ return 0, 0
305+ }
306+ // Wrap SourceOnceFunc as SourceFunc so the entry type is uniform.
307+ wrapped := SourceFunc(func(data uintptr) bool {
308+ (*fn)(data)
309+ return false
310+ })
311+ return registerSourceFunc(&wrapped, true)
312+}
313+
314+// saveSourceTrampolineMapping records the GLib source ID → trampoline data ID
315+// mapping so that SourceRemove can clean up the trampoline entry.
316+func saveSourceTrampolineMapping(sourceID uint, dataID uintptr) {
317+ if sourceID == 0 {
318+ return
319+ }
320+ sourceTrampolines.Lock()
321+ sourceTrampolines.sourceToDataID[sourceID] = dataID
322+ sourceTrampolines.Unlock()
323+}
324+
325+// removeSourceTrampolineBySourceID cleans up trampoline state when a GLib
326+// source is removed via SourceRemove (before the callback fires).
327+func removeSourceTrampolineBySourceID(sourceID uint) {
328+ sourceTrampolines.Lock()
329+ if dataID, ok := sourceTrampolines.sourceToDataID[sourceID]; ok {
330+ delete(sourceTrampolines.sourceToDataID, sourceID)
331+ delete(sourceTrampolines.funcs, dataID)
332+ }
333+ sourceTrampolines.Unlock()
334+}
335+
190336 // UnrefCallbackValue unreferences the provided callback by reflect.value to free a purego slot
191337 //
192338 // NOTE: Windows does not support unreferencing callbacks, so on that platform this operation is
@@ -211,6 +357,10 @@ func NewCallbackNullable(fn interface{}) uintptr {
211357 return NewCallback(fn)
212358 }
213359
360+func init() {
361+ initSourceTrampoline()
362+}
363+
214364 func (e *Error) Error() string {
215365 return fmt.Sprintf("Gtk reported an error with message: '%s', domain: '%v' and code: '%v'", e.MessageGo(), e.Domain, e.Code)
216366 }
M templates/go +48 -5
@@ -289,23 +289,65 @@ const (
289289 {{end}}
290290
291291 {{- define "glib_source_mapping_post_hook" -}}
292-{{- if or (eq .Name "ChildWatchAdd") (eq .Name "ChildWatchAddFull") (eq .Name "IdleAdd") (eq .Name "IdleAddFull") (eq .Name "IdleAddOnce") (eq .Name "TimeoutAdd") (eq .Name "TimeoutAddFull") (eq .Name "TimeoutAddOnce") (eq .Name "TimeoutAddSeconds") (eq .Name "TimeoutAddSecondsFull") (eq .Name "TimeoutAddSecondsOnce")}}
293-if FunctionVar != nil {
294- SaveSourceMapping(cret, uintptr(unsafe.Pointer(FunctionVar)))
295-}
296-{{- end}}
297292 {{- if eq .Name "SourceRemove"}}
298293 if cret {
299294 RemoveCallbackBySource(TagVar)
295+ removeSourceTrampolineBySourceID(TagVar)
300296 }
301297 {{- end}}
302298 {{- end}}
303299
300+{{- /* glib_source_trampoline_body emits the entire function body for IdleAdd/TimeoutAdd
301+ family functions. These use a shared purego trampoline callback instead of allocating
302+ a new purego callback slot per call. */ -}}
303+{{- /* glib_source_trampoline_body emits the entire function body for IdleAdd/TimeoutAdd
304+ family functions. These use a shared purego trampoline callback instead of allocating
305+ a new purego callback slot per call. */ -}}
306+{{- define "glib_source_trampoline_body" -}}
307+{{- if or (eq .Name "IdleAdd") (eq .Name "TimeoutAdd") (eq .Name "TimeoutAddSeconds") -}}
308+ trampolineCb, userData := registerSourceFunc(FunctionVar, false)
309+ cret := x{{.Name}}({{- if or (eq .Name "TimeoutAdd") (eq .Name "TimeoutAddSeconds") -}}IntervalVar, {{end}}trampolineCb, userData)
310+ saveSourceTrampolineMapping(cret, userData)
311+ return cret
312+{{- else if or (eq .Name "IdleAddOnce") (eq .Name "TimeoutAddOnce") (eq .Name "TimeoutAddSecondsOnce") -}}
313+ trampolineCb, userData := registerSourceOnceFunc(FunctionVar)
314+ cret := x{{.Name}}({{- if or (eq .Name "TimeoutAddOnce") (eq .Name "TimeoutAddSecondsOnce") -}}IntervalVar, {{end}}trampolineCb, userData)
315+ saveSourceTrampolineMapping(cret, userData)
316+ return cret
317+{{- else if or (eq .Name "IdleAddFull") (eq .Name "TimeoutAddFull") (eq .Name "TimeoutAddSecondsFull") -}}
318+ trampolineCb, userData := registerSourceFunc(FunctionVar, false)
319+ {{range .Args.Callbacks -}}
320+ {{- if eq .Name "NotifyVar" -}}
321+ var {{.Name}}Ref uintptr
322+ if {{.Name}} != nil {
323+ {{.Name}}Ptr := uintptr(unsafe.Pointer({{.Name}}))
324+ if cbRefPtr, ok := GetCallback({{.Name}}Ptr); ok {
325+ {{.Name}}Ref = cbRefPtr
326+ } else {
327+ fcb := func({{range $i, $t := .PureTypes}}{{if $i}}, {{end}}arg{{$i}} {{$t}}{{end}}) {{.RetRaw}} {
328+ cbFn := *{{.Name}}
329+ {{if .RetRaw}}return {{end}}cbFn({{range $i, $a := .CallArgs}}{{if $i}}, {{end}}{{$a}}{{end}})
330+ }
331+ {{.Name}}Ref = purego.NewCallback(fcb)
332+ SaveCallbackWithClosure({{.Name}}Ptr, {{.Name}}Ref, {{.Name}})
333+ }
334+ }
335+ {{- end}}
336+ {{- end}}
337+ cret := x{{.Name}}(PriorityVar, {{- if or (eq .Name "TimeoutAddFull") (eq .Name "TimeoutAddSecondsFull") -}}IntervalVar, {{end}}trampolineCb, userData, NotifyVarRef)
338+ saveSourceTrampolineMapping(cret, userData)
339+ return cret
340+{{- end}}
341+{{- end}}
342+
304343 {{range .Functions -}}
305344 var x{{.Name}} func({{conv .Args.Pure.Types}}) {{.Ret.Raw}}
306345
307346 {{.Doc}}
308347 func {{.Name}}({{conv .Args.API.Full}}) {{.Ret.Return}} {
348+ {{- if and (not $NotGLib) (or (eq .Name "IdleAdd") (eq .Name "IdleAddFull") (eq .Name "IdleAddOnce") (eq .Name "TimeoutAdd") (eq .Name "TimeoutAddFull") (eq .Name "TimeoutAddOnce") (eq .Name "TimeoutAddSeconds") (eq .Name "TimeoutAddSecondsFull") (eq .Name "TimeoutAddSecondsOnce"))}}
349+ {{template "glib_source_trampoline_body" .}}
350+ {{- else}}
309351 {{.Ret.Preamble $NotGLib}}
310352 {{range .Args.Callbacks}}
311353 var {{.Name}}Ref uintptr
@@ -332,6 +374,7 @@ func {{.Name}}({{conv .Args.API.Full}}) {{.Ret.Return}} {
332374 {{template "glib_source_mapping_post_hook" .}}
333375 {{- end}}
334376 {{.Ret.Fmt $NotGObject}}
377+ {{- end}}
335378 }
336379 {{end}}
337380
M v4/glib/garray.go +21 -0
@@ -387,6 +387,7 @@ var xArrayNewTake func(uintptr, uint, bool, uint) uintptr
387387 func ArrayNewTake(DataVar uintptr, LenVar uint, ClearVar bool, ElementSizeVar uint) uintptr {
388388
389389 cret := xArrayNewTake(DataVar, LenVar, ClearVar, ElementSizeVar)
390+
390391 return cret
391392 }
392393
@@ -414,6 +415,7 @@ var xArrayNewTakeZeroTerminated func(uintptr, bool, uint) uintptr
414415 func ArrayNewTakeZeroTerminated(DataVar uintptr, ClearVar bool, ElementSizeVar uint) uintptr {
415416
416417 cret := xArrayNewTakeZeroTerminated(DataVar, ClearVar, ElementSizeVar)
418+
417419 return cret
418420 }
419421
@@ -424,6 +426,7 @@ var xByteArrayAppend func([]byte, []byte, uint) uintptr
424426 func ByteArrayAppend(ArrayVar []byte, DataVar []byte, LenVar uint) uintptr {
425427
426428 cret := xByteArrayAppend(ArrayVar, DataVar, LenVar)
429+
427430 return cret
428431 }
429432
@@ -436,6 +439,7 @@ var xByteArrayFree func([]byte, bool) uintptr
436439 func ByteArrayFree(ArrayVar []byte, FreeSegmentVar bool) uintptr {
437440
438441 cret := xByteArrayFree(ArrayVar, FreeSegmentVar)
442+
439443 return cret
440444 }
441445
@@ -453,6 +457,7 @@ var xByteArrayFreeToBytes func([]byte) *Bytes
453457 func ByteArrayFreeToBytes(ArrayVar []byte) *Bytes {
454458
455459 cret := xByteArrayFreeToBytes(ArrayVar)
460+
456461 return cret
457462 }
458463
@@ -462,6 +467,7 @@ var xByteArrayNew func() uintptr
462467 func ByteArrayNew() uintptr {
463468
464469 cret := xByteArrayNew()
470+
465471 return cret
466472 }
467473
@@ -478,6 +484,7 @@ var xByteArrayNewTake func([]byte, uint) uintptr
478484 func ByteArrayNewTake(DataVar []byte, LenVar uint) uintptr {
479485
480486 cret := xByteArrayNewTake(DataVar, LenVar)
487+
481488 return cret
482489 }
483490
@@ -488,6 +495,7 @@ var xByteArrayPrepend func([]byte, []byte, uint) uintptr
488495 func ByteArrayPrepend(ArrayVar []byte, DataVar []byte, LenVar uint) uintptr {
489496
490497 cret := xByteArrayPrepend(ArrayVar, DataVar, LenVar)
498+
491499 return cret
492500 }
493501
@@ -498,6 +506,7 @@ var xByteArrayRef func([]byte) uintptr
498506 func ByteArrayRef(ArrayVar []byte) uintptr {
499507
500508 cret := xByteArrayRef(ArrayVar)
509+
501510 return cret
502511 }
503512
@@ -508,6 +517,7 @@ var xByteArrayRemoveIndex func([]byte, uint) uintptr
508517 func ByteArrayRemoveIndex(ArrayVar []byte, IndexVar uint) uintptr {
509518
510519 cret := xByteArrayRemoveIndex(ArrayVar, IndexVar)
520+
511521 return cret
512522 }
513523
@@ -520,6 +530,7 @@ var xByteArrayRemoveIndexFast func([]byte, uint) uintptr
520530 func ByteArrayRemoveIndexFast(ArrayVar []byte, IndexVar uint) uintptr {
521531
522532 cret := xByteArrayRemoveIndexFast(ArrayVar, IndexVar)
533+
523534 return cret
524535 }
525536
@@ -530,6 +541,7 @@ var xByteArrayRemoveRange func([]byte, uint, uint) uintptr
530541 func ByteArrayRemoveRange(ArrayVar []byte, IndexVar uint, LengthVar uint) uintptr {
531542
532543 cret := xByteArrayRemoveRange(ArrayVar, IndexVar, LengthVar)
544+
533545 return cret
534546 }
535547
@@ -539,6 +551,7 @@ var xByteArraySetSize func([]byte, uint) uintptr
539551 func ByteArraySetSize(ArrayVar []byte, LengthVar uint) uintptr {
540552
541553 cret := xByteArraySetSize(ArrayVar, LengthVar)
554+
542555 return cret
543556 }
544557
@@ -551,6 +564,7 @@ var xByteArraySizedNew func(uint) uintptr
551564 func ByteArraySizedNew(ReservedSizeVar uint) uintptr {
552565
553566 cret := xByteArraySizedNew(ReservedSizeVar)
567+
554568 return cret
555569 }
556570
@@ -620,6 +634,7 @@ var xByteArraySteal func([]byte, *uint) uintptr
620634 func ByteArraySteal(ArrayVar []byte, LenVar *uint) uintptr {
621635
622636 cret := xByteArraySteal(ArrayVar, LenVar)
637+
623638 return cret
624639 }
625640
@@ -648,6 +663,7 @@ var xPtrArrayFind func([]uintptr, uintptr, *uint) bool
648663 func PtrArrayFind(HaystackVar []uintptr, NeedleVar uintptr, IndexVar *uint) bool {
649664
650665 cret := xPtrArrayFind(HaystackVar, NeedleVar, IndexVar)
666+
651667 return cret
652668 }
653669
@@ -680,6 +696,7 @@ func PtrArrayFindWithEqualFunc(HaystackVar []uintptr, NeedleVar uintptr, EqualFu
680696 }
681697
682698 cret := xPtrArrayFindWithEqualFunc(HaystackVar, NeedleVar, EqualFuncVarRef, IndexVar)
699+
683700 return cret
684701 }
685702
@@ -735,6 +752,7 @@ func PtrArrayNewFromArray(DataVar []uintptr, LenVar uint, CopyFuncVar *CopyFunc,
735752 }
736753
737754 cret := xPtrArrayNewFromArray(DataVar, LenVar, CopyFuncVarRef, CopyFuncUserDataVar, ElementFreeFuncVarRef)
755+
738756 return cret
739757 }
740758
@@ -786,6 +804,7 @@ func PtrArrayNewFromNullTerminatedArray(DataVar []uintptr, CopyFuncVar *CopyFunc
786804 }
787805
788806 cret := xPtrArrayNewFromNullTerminatedArray(DataVar, CopyFuncVarRef, CopyFuncUserDataVar, ElementFreeFuncVarRef)
807+
789808 return cret
790809 }
791810
@@ -825,6 +844,7 @@ func PtrArrayNewTake(DataVar []uintptr, LenVar uint, ElementFreeFuncVar *Destroy
825844 }
826845
827846 cret := xPtrArrayNewTake(DataVar, LenVar, ElementFreeFuncVarRef)
847+
828848 return cret
829849 }
830850
@@ -867,6 +887,7 @@ func PtrArrayNewTakeNullTerminated(DataVar []uintptr, ElementFreeFuncVar *Destro
867887 }
868888
869889 cret := xPtrArrayNewTakeNullTerminated(DataVar, ElementFreeFuncVarRef)
890+
870891 return cret
871892 }
872893
M v4/glib/gasyncqueue.go +2 -0
@@ -457,6 +457,7 @@ var xAsyncQueueNew func() *AsyncQueue
457457 func AsyncQueueNew() *AsyncQueue {
458458
459459 cret := xAsyncQueueNew()
460+
460461 return cret
461462 }
462463
@@ -483,6 +484,7 @@ func AsyncQueueNewFull(ItemFreeFuncVar *DestroyNotify) *AsyncQueue {
483484 }
484485
485486 cret := xAsyncQueueNewFull(ItemFreeFuncVarRef)
487+
486488 return cret
487489 }
488490
M v4/glib/gatomic.go +18 -0
@@ -23,6 +23,7 @@ var xAtomicIntAdd func(uintptr, int) int
2323 func AtomicIntAdd(AtomicVar uintptr, ValVar int) int {
2424
2525 cret := xAtomicIntAdd(AtomicVar, ValVar)
26+
2627 return cret
2728 }
2829
@@ -41,6 +42,7 @@ var xAtomicIntAnd func(uintptr, uint) uint
4142 func AtomicIntAnd(AtomicVar uintptr, ValVar uint) uint {
4243
4344 cret := xAtomicIntAnd(AtomicVar, ValVar)
45+
4446 return cret
4547 }
4648
@@ -61,6 +63,7 @@ var xAtomicIntCompareAndExchange func(uintptr, int, int) bool
6163 func AtomicIntCompareAndExchange(AtomicVar uintptr, OldvalVar int, NewvalVar int) bool {
6264
6365 cret := xAtomicIntCompareAndExchange(AtomicVar, OldvalVar, NewvalVar)
66+
6467 return cret
6568 }
6669
@@ -81,6 +84,7 @@ var xAtomicIntCompareAndExchangeFull func(uintptr, int, int, *int) bool
8184 func AtomicIntCompareAndExchangeFull(AtomicVar uintptr, OldvalVar int, NewvalVar int, PrevalVar *int) bool {
8285
8386 cret := xAtomicIntCompareAndExchangeFull(AtomicVar, OldvalVar, NewvalVar, PrevalVar)
87+
8488 return cret
8589 }
8690
@@ -98,6 +102,7 @@ var xAtomicIntDecAndTest func(uintptr) bool
98102 func AtomicIntDecAndTest(AtomicVar uintptr) bool {
99103
100104 cret := xAtomicIntDecAndTest(AtomicVar)
105+
101106 return cret
102107 }
103108
@@ -114,6 +119,7 @@ var xAtomicIntExchange func(uintptr, int) int
114119 func AtomicIntExchange(AtomicVar uintptr, NewvalVar int) int {
115120
116121 cret := xAtomicIntExchange(AtomicVar, NewvalVar)
122+
117123 return cret
118124 }
119125
@@ -125,6 +131,7 @@ var xAtomicIntExchangeAndAdd func(uintptr, int) int
125131 func AtomicIntExchangeAndAdd(AtomicVar uintptr, ValVar int) int {
126132
127133 cret := xAtomicIntExchangeAndAdd(AtomicVar, ValVar)
134+
128135 return cret
129136 }
130137
@@ -140,6 +147,7 @@ var xAtomicIntGet func(uintptr) int
140147 func AtomicIntGet(AtomicVar uintptr) int {
141148
142149 cret := xAtomicIntGet(AtomicVar)
150+
143151 return cret
144152 }
145153
@@ -174,6 +182,7 @@ var xAtomicIntOr func(uintptr, uint) uint
174182 func AtomicIntOr(AtomicVar uintptr, ValVar uint) uint {
175183
176184 cret := xAtomicIntOr(AtomicVar, ValVar)
185+
177186 return cret
178187 }
179188
@@ -207,6 +216,7 @@ var xAtomicIntXor func(uintptr, uint) uint
207216 func AtomicIntXor(AtomicVar uintptr, ValVar uint) uint {
208217
209218 cret := xAtomicIntXor(AtomicVar, ValVar)
219+
210220 return cret
211221 }
212222
@@ -228,6 +238,7 @@ var xAtomicPointerAdd func(uintptr, int) int
228238 func AtomicPointerAdd(AtomicVar uintptr, ValVar int) int {
229239
230240 cret := xAtomicPointerAdd(AtomicVar, ValVar)
241+
231242 return cret
232243 }
233244
@@ -250,6 +261,7 @@ var xAtomicPointerAnd func(uintptr, uint) uintptr
250261 func AtomicPointerAnd(AtomicVar uintptr, ValVar uint) uintptr {
251262
252263 cret := xAtomicPointerAnd(AtomicVar, ValVar)
264+
253265 return cret
254266 }
255267
@@ -270,6 +282,7 @@ var xAtomicPointerCompareAndExchange func(uintptr, uintptr, uintptr) bool
270282 func AtomicPointerCompareAndExchange(AtomicVar uintptr, OldvalVar uintptr, NewvalVar uintptr) bool {
271283
272284 cret := xAtomicPointerCompareAndExchange(AtomicVar, OldvalVar, NewvalVar)
285+
273286 return cret
274287 }
275288
@@ -290,6 +303,7 @@ var xAtomicPointerCompareAndExchangeFull func(uintptr, uintptr, uintptr, *uintpt
290303 func AtomicPointerCompareAndExchangeFull(AtomicVar uintptr, OldvalVar uintptr, NewvalVar uintptr, PrevalVar *uintptr) bool {
291304
292305 cret := xAtomicPointerCompareAndExchangeFull(AtomicVar, OldvalVar, NewvalVar, PrevalVar)
306+
293307 return cret
294308 }
295309
@@ -306,6 +320,7 @@ var xAtomicPointerExchange func(uintptr, uintptr) uintptr
306320 func AtomicPointerExchange(AtomicVar uintptr, NewvalVar uintptr) uintptr {
307321
308322 cret := xAtomicPointerExchange(AtomicVar, NewvalVar)
323+
309324 return cret
310325 }
311326
@@ -321,6 +336,7 @@ var xAtomicPointerGet func(uintptr) uintptr
321336 func AtomicPointerGet(AtomicVar uintptr) uintptr {
322337
323338 cret := xAtomicPointerGet(AtomicVar)
339+
324340 return cret
325341 }
326342
@@ -343,6 +359,7 @@ var xAtomicPointerOr func(uintptr, uint) uintptr
343359 func AtomicPointerOr(AtomicVar uintptr, ValVar uint) uintptr {
344360
345361 cret := xAtomicPointerOr(AtomicVar, ValVar)
362+
346363 return cret
347364 }
348365
@@ -380,6 +397,7 @@ var xAtomicPointerXor func(uintptr, uint) uintptr
380397 func AtomicPointerXor(AtomicVar uintptr, ValVar uint) uintptr {
381398
382399 cret := xAtomicPointerXor(AtomicVar, ValVar)
400+
383401 return cret
384402 }
385403
M v4/glib/gbase64.go +6 -0
@@ -14,6 +14,7 @@ var xBase64Decode func(string, *uint) uintptr
1414 func Base64Decode(TextVar string, OutLenVar *uint) uintptr {
1515
1616 cret := xBase64Decode(TextVar, OutLenVar)
17+
1718 return cret
1819 }
1920
@@ -24,6 +25,7 @@ var xBase64DecodeInplace func([]byte, uint) byte
2425 func Base64DecodeInplace(TextVar []byte, OutLenVar uint) byte {
2526
2627 cret := xBase64DecodeInplace(TextVar, OutLenVar)
28+
2729 return cret
2830 }
2931
@@ -40,6 +42,7 @@ var xBase64DecodeStep func([]byte, uint, *[]byte, int, uint) uint
4042 func Base64DecodeStep(InVar []byte, LenVar uint, OutVar *[]byte, StateVar int, SaveVar uint) uint {
4143
4244 cret := xBase64DecodeStep(InVar, LenVar, OutVar, StateVar, SaveVar)
45+
4346 return cret
4447 }
4548
@@ -50,6 +53,7 @@ var xBase64Encode func([]byte, uint) string
5053 func Base64Encode(DataVar []byte, LenVar uint) string {
5154
5255 cret := xBase64Encode(DataVar, LenVar)
56+
5357 return cret
5458 }
5559
@@ -65,6 +69,7 @@ var xBase64EncodeClose func(bool, *[]byte, int, int) uint
6569 func Base64EncodeClose(BreakLinesVar bool, OutVar *[]byte, StateVar int, SaveVar int) uint {
6670
6771 cret := xBase64EncodeClose(BreakLinesVar, OutVar, StateVar, SaveVar)
72+
6873 return cret
6974 }
7075
@@ -92,6 +97,7 @@ var xBase64EncodeStep func([]byte, uint, bool, *[]byte, int, int) uint
9297 func Base64EncodeStep(InVar []byte, LenVar uint, BreakLinesVar bool, OutVar *[]byte, StateVar int, SaveVar int) uint {
9398
9499 cret := xBase64EncodeStep(InVar, LenVar, BreakLinesVar, OutVar, StateVar, SaveVar)
100+
95101 return cret
96102 }
97103
M v4/glib/gbitlock.go +3 -0
@@ -59,6 +59,7 @@ var xBitTrylock func(uintptr, int) bool
5959 func BitTrylock(AddressVar uintptr, LockBitVar int) bool {
6060
6161 cret := xBitTrylock(AddressVar, LockBitVar)
62+
6263 return cret
6364 }
6465
@@ -130,6 +131,7 @@ var xPointerBitLockMaskPtr func(uintptr, uint, bool, uintptr, uintptr) uintptr
130131 func PointerBitLockMaskPtr(PtrVar uintptr, LockBitVar uint, SetVar bool, PreserveMaskVar uintptr, PreservePtrVar uintptr) uintptr {
131132
132133 cret := xPointerBitLockMaskPtr(PtrVar, LockBitVar, SetVar, PreserveMaskVar, PreservePtrVar)
134+
133135 return cret
134136 }
135137
@@ -146,6 +148,7 @@ var xPointerBitTrylock func(uintptr, int) bool
146148 func PointerBitTrylock(AddressVar uintptr, LockBitVar int) bool {
147149
148150 cret := xPointerBitTrylock(AddressVar, LockBitVar)
151+
149152 return cret
150153 }
151154
M v4/glib/gcharset.go +6 -0
@@ -32,6 +32,7 @@ var xGetCharset func(*string) bool
3232 func GetCharset(CharsetVar *string) bool {
3333
3434 cret := xGetCharset(CharsetVar)
35+
3536 return cret
3637 }
3738
@@ -41,6 +42,7 @@ var xGetCodeset func() string
4142 func GetCodeset() string {
4243
4344 cret := xGetCodeset()
45+
4446 return cret
4547 }
4648
@@ -66,6 +68,7 @@ var xGetConsoleCharset func(*string) bool
6668 func GetConsoleCharset(CharsetVar *string) bool {
6769
6870 cret := xGetConsoleCharset(CharsetVar)
71+
6972 return cret
7073 }
7174
@@ -85,6 +88,7 @@ var xGetLanguageNames func() []string
8588 func GetLanguageNames() []string {
8689
8790 cret := xGetLanguageNames()
91+
8892 return cret
8993 }
9094
@@ -103,6 +107,7 @@ var xGetLanguageNamesWithCategory func(string) []string
103107 func GetLanguageNamesWithCategory(CategoryNameVar string) []string {
104108
105109 cret := xGetLanguageNamesWithCategory(CategoryNameVar)
110+
106111 return cret
107112 }
108113
@@ -126,6 +131,7 @@ var xGetLocaleVariants func(string) []string
126131 func GetLocaleVariants(LocaleVar string) []string {
127132
128133 cret := xGetLocaleVariants(LocaleVar)
134+
129135 return cret
130136 }
131137
M v4/glib/gchecksum.go +4 -0
@@ -155,6 +155,7 @@ var xChecksumTypeGetLength func(ChecksumType) int
155155 func ChecksumTypeGetLength(ChecksumTypeVar ChecksumType) int {
156156
157157 cret := xChecksumTypeGetLength(ChecksumTypeVar)
158+
158159 return cret
159160 }
160161
@@ -168,6 +169,7 @@ var xComputeChecksumForBytes func(ChecksumType, *Bytes) string
168169 func ComputeChecksumForBytes(ChecksumTypeVar ChecksumType, DataVar *Bytes) string {
169170
170171 cret := xComputeChecksumForBytes(ChecksumTypeVar, DataVar)
172+
171173 return cret
172174 }
173175
@@ -181,6 +183,7 @@ var xComputeChecksumForData func(ChecksumType, []byte, uint) string
181183 func ComputeChecksumForData(ChecksumTypeVar ChecksumType, DataVar []byte, LengthVar uint) string {
182184
183185 cret := xComputeChecksumForData(ChecksumTypeVar, DataVar, LengthVar)
186+
184187 return cret
185188 }
186189
@@ -192,6 +195,7 @@ var xComputeChecksumForString func(ChecksumType, string, int) string
192195 func ComputeChecksumForString(ChecksumTypeVar ChecksumType, StrVar string, LengthVar int) string {
193196
194197 cret := xComputeChecksumForString(ChecksumTypeVar, StrVar, LengthVar)
198+
195199 return cret
196200 }
197201
M v4/glib/gconvert.go +15 -0
@@ -107,6 +107,7 @@ func Convert(StrVar []byte, LenVar int, ToCodesetVar string, FromCodesetVar stri
107107 var cerr *Error
108108
109109 cret := xConvert(StrVar, LenVar, ToCodesetVar, FromCodesetVar, BytesReadVar, BytesWrittenVar, &cerr)
110+
110111 if cerr == nil {
111112 return cret, nil
112113 }
@@ -137,6 +138,7 @@ func ConvertWithFallback(StrVar []byte, LenVar int, ToCodesetVar string, FromCod
137138 var cerr *Error
138139
139140 cret := xConvertWithFallback(StrVar, LenVar, ToCodesetVar, FromCodesetVar, FallbackVar, BytesReadVar, BytesWrittenVar, &cerr)
141+
140142 if cerr == nil {
141143 return cret, nil
142144 }
@@ -169,6 +171,7 @@ func ConvertWithIconv(StrVar []byte, LenVar int, ConverterVar uintptr, BytesRead
169171 var cerr *Error
170172
171173 cret := xConvertWithIconv(StrVar, LenVar, ConverterVar, BytesReadVar, BytesWrittenVar, &cerr)
174+
172175 if cerr == nil {
173176 return cret, nil
174177 }
@@ -197,6 +200,7 @@ var xFilenameDisplayBasename func(string) string
197200 func FilenameDisplayBasename(FilenameVar string) string {
198201
199202 cret := xFilenameDisplayBasename(FilenameVar)
203+
200204 return cret
201205 }
202206
@@ -220,6 +224,7 @@ var xFilenameDisplayName func(string) string
220224 func FilenameDisplayName(FilenameVar string) string {
221225
222226 cret := xFilenameDisplayName(FilenameVar)
227+
223228 return cret
224229 }
225230
@@ -236,6 +241,7 @@ func FilenameFromUri(UriVar string, HostnameVar *string) (string, error) {
236241 var cerr *Error
237242
238243 cret := xFilenameFromUri(UriVar, HostnameVar, &cerr)
244+
239245 if cerr == nil {
240246 return cret, nil
241247 }
@@ -259,6 +265,7 @@ func FilenameFromUtf8(Utf8stringVar string, LenVar int, BytesReadVar *uint, Byte
259265 var cerr *Error
260266
261267 cret := xFilenameFromUtf8(Utf8stringVar, LenVar, BytesReadVar, BytesWrittenVar, &cerr)
268+
262269 if cerr == nil {
263270 return cret, nil
264271 }
@@ -277,6 +284,7 @@ func FilenameToUri(FilenameVar string, HostnameVar *string) (string, error) {
277284 defer core.GFreeNullable(HostnameVarPtr)
278285
279286 cret := xFilenameToUri(FilenameVar, HostnameVarPtr, &cerr)
287+
280288 if cerr == nil {
281289 return cret, nil
282290 }
@@ -302,6 +310,7 @@ func FilenameToUtf8(OpsysstringVar string, LenVar int, BytesReadVar *uint, Bytes
302310 var cerr *Error
303311
304312 cret := xFilenameToUtf8(OpsysstringVar, LenVar, BytesReadVar, BytesWrittenVar, &cerr)
313+
305314 if cerr == nil {
306315 return cret, nil
307316 }
@@ -338,6 +347,7 @@ var xGetFilenameCharsets func(*[]string) bool
338347 func GetFilenameCharsets(FilenameCharsetsVar *[]string) bool {
339348
340349 cret := xGetFilenameCharsets(FilenameCharsetsVar)
350+
341351 return cret
342352 }
343353
@@ -362,6 +372,7 @@ var xIconv func(uintptr, string, uint, string, uint) uint
362372 func Iconv(ConverterVar uintptr, InbufVar string, InbytesLeftVar uint, OutbufVar string, OutbytesLeftVar uint) uint {
363373
364374 cret := xIconv(ConverterVar, InbufVar, InbytesLeftVar, OutbufVar, OutbytesLeftVar)
375+
365376 return cret
366377 }
367378
@@ -376,6 +387,7 @@ var xIconvOpen func(string, string) uintptr
376387 func IconvOpen(ToCodesetVar string, FromCodesetVar string) uintptr {
377388
378389 cret := xIconvOpen(ToCodesetVar, FromCodesetVar)
390+
379391 return cret
380392 }
381393
@@ -394,6 +406,7 @@ func LocaleFromUtf8(Utf8stringVar string, LenVar int, BytesReadVar *uint, BytesW
394406 var cerr *Error
395407
396408 cret := xLocaleFromUtf8(Utf8stringVar, LenVar, BytesReadVar, BytesWrittenVar, &cerr)
409+
397410 if cerr == nil {
398411 return cret, nil
399412 }
@@ -418,6 +431,7 @@ func LocaleToUtf8(OpsysstringVar []byte, LenVar int, BytesReadVar *uint, BytesWr
418431 var cerr *Error
419432
420433 cret := xLocaleToUtf8(OpsysstringVar, LenVar, BytesReadVar, BytesWrittenVar, &cerr)
434+
421435 if cerr == nil {
422436 return cret, nil
423437 }
@@ -433,6 +447,7 @@ var xUriListExtractUris func(string) []string
433447 func UriListExtractUris(UriListVar string) []string {
434448
435449 cret := xUriListExtractUris(UriListVar)
450+
436451 return cret
437452 }
438453
M v4/glib/gdataset.go +8 -0
@@ -89,6 +89,7 @@ var xDatalistGetData func(**Data, string) uintptr
8989 func DatalistGetData(DatalistVar **Data, KeyVar string) uintptr {
9090
9191 cret := xDatalistGetData(DatalistVar, KeyVar)
92+
9293 return cret
9394 }
9495
@@ -99,6 +100,7 @@ var xDatalistGetFlags func(**Data) uint
99100 func DatalistGetFlags(DatalistVar **Data) uint {
100101
101102 cret := xDatalistGetFlags(DatalistVar)
103+
102104 return cret
103105 }
104106
@@ -135,6 +137,7 @@ func DatalistIdDupData(DatalistVar **Data, KeyIdVar Quark, DupFuncVar *Duplicate
135137 }
136138
137139 cret := xDatalistIdDupData(DatalistVar, KeyIdVar, DupFuncVarRef, UserDataVar)
140+
138141 return cret
139142 }
140143
@@ -144,6 +147,7 @@ var xDatalistIdGetData func(**Data, Quark) uintptr
144147 func DatalistIdGetData(DatalistVar **Data, KeyIdVar Quark) uintptr {
145148
146149 cret := xDatalistIdGetData(DatalistVar, KeyIdVar)
150+
147151 return cret
148152 }
149153
@@ -169,6 +173,7 @@ var xDatalistIdRemoveNoNotify func(**Data, Quark) uintptr
169173 func DatalistIdRemoveNoNotify(DatalistVar **Data, KeyIdVar Quark) uintptr {
170174
171175 cret := xDatalistIdRemoveNoNotify(DatalistVar, KeyIdVar)
176+
172177 return cret
173178 }
174179
@@ -205,6 +210,7 @@ func DatalistIdReplaceData(DatalistVar **Data, KeyIdVar Quark, OldvalVar uintptr
205210 }
206211
207212 cret := xDatalistIdReplaceData(DatalistVar, KeyIdVar, OldvalVar, NewvalVar, DestroyVarRef, OldDestroyVar)
213+
208214 return cret
209215 }
210216
@@ -315,6 +321,7 @@ var xDatasetIdGetData func(uintptr, Quark) uintptr
315321 func DatasetIdGetData(DatasetLocationVar uintptr, KeyIdVar Quark) uintptr {
316322
317323 cret := xDatasetIdGetData(DatasetLocationVar, KeyIdVar)
324+
318325 return cret
319326 }
320327
@@ -325,6 +332,7 @@ var xDatasetIdRemoveNoNotify func(uintptr, Quark) uintptr
325332 func DatasetIdRemoveNoNotify(DatasetLocationVar uintptr, KeyIdVar Quark) uintptr {
326333
327334 cret := xDatasetIdRemoveNoNotify(DatasetLocationVar, KeyIdVar)
335+
328336 return cret
329337 }
330338
M v4/glib/gdate.go +12 -0
@@ -647,6 +647,7 @@ var xDateGetDaysInMonth func(DateMonth, DateYear) byte
647647 func DateGetDaysInMonth(MonthVar DateMonth, YearVar DateYear) byte {
648648
649649 cret := xDateGetDaysInMonth(MonthVar, YearVar)
650+
650651 return cret
651652 }
652653
@@ -662,6 +663,7 @@ var xDateGetMondayWeeksInYear func(DateYear) byte
662663 func DateGetMondayWeeksInYear(YearVar DateYear) byte {
663664
664665 cret := xDateGetMondayWeeksInYear(YearVar)
666+
665667 return cret
666668 }
667669
@@ -677,6 +679,7 @@ var xDateGetSundayWeeksInYear func(DateYear) byte
677679 func DateGetSundayWeeksInYear(YearVar DateYear) byte {
678680
679681 cret := xDateGetSundayWeeksInYear(YearVar)
682+
680683 return cret
681684 }
682685
@@ -694,6 +697,7 @@ var xDateGetWeeksInYear func(DateYear, DateWeekday) byte
694697 func DateGetWeeksInYear(YearVar DateYear, FirstDayOfWeekVar DateWeekday) byte {
695698
696699 cret := xDateGetWeeksInYear(YearVar, FirstDayOfWeekVar)
700+
697701 return cret
698702 }
699703
@@ -708,6 +712,7 @@ var xDateIsLeapYear func(DateYear) bool
708712 func DateIsLeapYear(YearVar DateYear) bool {
709713
710714 cret := xDateIsLeapYear(YearVar)
715+
711716 return cret
712717 }
713718
@@ -729,6 +734,7 @@ var xDateStrftime func(string, uint, string, *Date) uint
729734 func DateStrftime(SVar string, SlenVar uint, FormatVar string, DateVar *Date) uint {
730735
731736 cret := xDateStrftime(SVar, SlenVar, FormatVar, DateVar)
737+
732738 return cret
733739 }
734740
@@ -739,6 +745,7 @@ var xDateValidDay func(DateDay) bool
739745 func DateValidDay(DayVar DateDay) bool {
740746
741747 cret := xDateValidDay(DayVar)
748+
742749 return cret
743750 }
744751
@@ -750,6 +757,7 @@ var xDateValidDmy func(DateDay, DateMonth, DateYear) bool
750757 func DateValidDmy(DayVar DateDay, MonthVar DateMonth, YearVar DateYear) bool {
751758
752759 cret := xDateValidDmy(DayVar, MonthVar, YearVar)
760+
753761 return cret
754762 }
755763
@@ -760,6 +768,7 @@ var xDateValidJulian func(uint32) bool
760768 func DateValidJulian(JulianDateVar uint32) bool {
761769
762770 cret := xDateValidJulian(JulianDateVar)
771+
763772 return cret
764773 }
765774
@@ -770,6 +779,7 @@ var xDateValidMonth func(DateMonth) bool
770779 func DateValidMonth(MonthVar DateMonth) bool {
771780
772781 cret := xDateValidMonth(MonthVar)
782+
773783 return cret
774784 }
775785
@@ -780,6 +790,7 @@ var xDateValidWeekday func(DateWeekday) bool
780790 func DateValidWeekday(WeekdayVar DateWeekday) bool {
781791
782792 cret := xDateValidWeekday(WeekdayVar)
793+
783794 return cret
784795 }
785796
@@ -790,6 +801,7 @@ var xDateValidYear func(DateYear) bool
790801 func DateValidYear(YearVar DateYear) bool {
791802
792803 cret := xDateValidYear(YearVar)
804+
793805 return cret
794806 }
795807
M v4/glib/genviron.go +7 -0
@@ -13,6 +13,7 @@ var xEnvironGetenv func([]string, string) string
1313 func EnvironGetenv(EnvpVar []string, VariableVar string) string {
1414
1515 cret := xEnvironGetenv(EnvpVar, VariableVar)
16+
1617 return cret
1718 }
1819
@@ -23,6 +24,7 @@ var xEnvironSetenv func([]string, string, string, bool) []string
2324 func EnvironSetenv(EnvpVar []string, VariableVar string, ValueVar string, OverwriteVar bool) []string {
2425
2526 cret := xEnvironSetenv(EnvpVar, VariableVar, ValueVar, OverwriteVar)
27+
2628 return cret
2729 }
2830
@@ -33,6 +35,7 @@ var xEnvironUnsetenv func([]string, string) []string
3335 func EnvironUnsetenv(EnvpVar []string, VariableVar string) []string {
3436
3537 cret := xEnvironUnsetenv(EnvpVar, VariableVar)
38+
3639 return cret
3740 }
3841
@@ -51,6 +54,7 @@ var xGetEnviron func() []string
5154 func GetEnviron() []string {
5255
5356 cret := xGetEnviron()
57+
5458 return cret
5559 }
5660
@@ -66,6 +70,7 @@ var xGetenv func(string) string
6670 func Getenv(VariableVar string) string {
6771
6872 cret := xGetenv(VariableVar)
73+
6974 return cret
7075 }
7176
@@ -82,6 +87,7 @@ var xListenv func() []string
8287 func Listenv() []string {
8388
8489 cret := xListenv()
90+
8591 return cret
8692 }
8793
@@ -109,6 +115,7 @@ var xSetenv func(string, string, bool) bool
109115 func Setenv(VariableVar string, ValueVar string, OverwriteVar bool) bool {
110116
111117 cret := xSetenv(VariableVar, ValueVar, OverwriteVar)
118+
112119 return cret
113120 }
114121
M v4/glib/gerror.go +3 -0
@@ -135,6 +135,7 @@ func ClearError() error {
135135 var cerr *Error
136136
137137 xClearError()
138+
138139 if cerr == nil {
139140 return nil
140141 }
@@ -195,6 +196,7 @@ func ErrorDomainRegister(ErrorTypeNameVar string, ErrorTypePrivateSizeVar uint,
195196 }
196197
197198 cret := xErrorDomainRegister(ErrorTypeNameVar, ErrorTypePrivateSizeVar, ErrorTypeInitVarRef, ErrorTypeCopyVarRef, ErrorTypeClearVarRef)
199+
198200 return cret
199201 }
200202
@@ -265,6 +267,7 @@ func ErrorDomainRegisterStatic(ErrorTypeNameVar string, ErrorTypePrivateSizeVar
265267 }
266268
267269 cret := xErrorDomainRegisterStatic(ErrorTypeNameVar, ErrorTypePrivateSizeVar, ErrorTypeInitVarRef, ErrorTypeCopyVarRef, ErrorTypeClearVarRef)
270+
268271 return cret
269272 }
270273
M v4/glib/gfileutils.go +25 -0
@@ -172,6 +172,7 @@ var xBasename func(string) string
172172 func Basename(FileNameVar string) string {
173173
174174 cret := xBasename(FileNameVar)
175+
175176 return cret
176177 }
177178
@@ -198,6 +199,7 @@ var xBuildFilename func(string, ...interface{}) string
198199 func BuildFilename(FirstElementVar string, varArgs ...interface{}) string {
199200
200201 cret := xBuildFilename(FirstElementVar, varArgs...)
202+
201203 return cret
202204 }
203205
@@ -214,6 +216,7 @@ var xBuildFilenameValist func(string, []interface{}) string
214216 func BuildFilenameValist(FirstElementVar string, ArgsVar []interface{}) string {
215217
216218 cret := xBuildFilenameValist(FirstElementVar, ArgsVar)
219+
217220 return cret
218221 }
219222
@@ -231,6 +234,7 @@ var xBuildFilenamev func([]string) string
231234 func BuildFilenamev(ArgsVar []string) string {
232235
233236 cret := xBuildFilenamev(ArgsVar)
237+
234238 return cret
235239 }
236240
@@ -267,6 +271,7 @@ var xBuildPath func(string, string, ...interface{}) string
267271 func BuildPath(SeparatorVar string, FirstElementVar string, varArgs ...interface{}) string {
268272
269273 cret := xBuildPath(SeparatorVar, FirstElementVar, varArgs...)
274+
270275 return cret
271276 }
272277
@@ -279,6 +284,7 @@ var xBuildPathv func(string, []string) string
279284 func BuildPathv(SeparatorVar string, ArgsVar []string) string {
280285
281286 cret := xBuildPathv(SeparatorVar, ArgsVar)
287+
282288 return cret
283289 }
284290
@@ -304,6 +310,7 @@ func CanonicalizeFilename(FilenameVar string, RelativeToVar *string) string {
304310 defer core.GFreeNullable(RelativeToVarPtr)
305311
306312 cret := xCanonicalizeFilename(FilenameVar, RelativeToVarPtr)
313+
307314 return cret
308315 }
309316
@@ -327,6 +334,7 @@ func DirMakeTmp(TmplVar *string) (string, error) {
327334 defer core.GFreeNullable(TmplVarPtr)
328335
329336 cret := xDirMakeTmp(TmplVarPtr, &cerr)
337+
330338 if cerr == nil {
331339 return cret, nil
332340 }
@@ -348,6 +356,7 @@ var xFileErrorFromErrno func(int) FileError
348356 func FileErrorFromErrno(ErrNoVar int) FileError {
349357
350358 cret := xFileErrorFromErrno(ErrNoVar)
359+
351360 return cret
352361 }
353362
@@ -367,6 +376,7 @@ func FileGetContents(FilenameVar string, ContentsVar *[]byte, LengthVar *uint) (
367376 var cerr *Error
368377
369378 cret := xFileGetContents(FilenameVar, ContentsVar, LengthVar, &cerr)
379+
370380 if cerr == nil {
371381 return cret, nil
372382 }
@@ -399,6 +409,7 @@ func FileOpenTmp(TmplVar *string, NameUsedVar *string) (int, error) {
399409 defer core.GFreeNullable(TmplVarPtr)
400410
401411 cret := xFileOpenTmp(TmplVarPtr, NameUsedVar, &cerr)
412+
402413 if cerr == nil {
403414 return cret, nil
404415 }
@@ -438,6 +449,7 @@ func FileReadLink(FilenameVar string) (string, error) {
438449 var cerr *Error
439450
440451 cret := xFileReadLink(FilenameVar, &cerr)
452+
441453 if cerr == nil {
442454 return cret, nil
443455 }
@@ -455,6 +467,7 @@ func FileSetContents(FilenameVar string, ContentsVar []byte, LengthVar int) (boo
455467 var cerr *Error
456468
457469 cret := xFileSetContents(FilenameVar, ContentsVar, LengthVar, &cerr)
470+
458471 if cerr == nil {
459472 return cret, nil
460473 }
@@ -522,6 +535,7 @@ func FileSetContentsFull(FilenameVar string, ContentsVar []byte, LengthVar int,
522535 var cerr *Error
523536
524537 cret := xFileSetContentsFull(FilenameVar, ContentsVar, LengthVar, FlagsVar, ModeVar, &cerr)
538+
525539 if cerr == nil {
526540 return cret, nil
527541 }
@@ -595,6 +609,7 @@ var xNewFileTest func(string, FileTest) bool
595609 func NewFileTest(FilenameVar string, TestVar FileTest) bool {
596610
597611 cret := xNewFileTest(FilenameVar, TestVar)
612+
598613 return cret
599614 }
600615
@@ -613,6 +628,7 @@ var xGetCurrentDir func() string
613628 func GetCurrentDir() string {
614629
615630 cret := xGetCurrentDir()
631+
616632 return cret
617633 }
618634
@@ -623,6 +639,7 @@ var xMkdirWithParents func(string, int) int
623639 func MkdirWithParents(PathnameVar string, ModeVar int) int {
624640
625641 cret := xMkdirWithParents(PathnameVar, ModeVar)
642+
626643 return cret
627644 }
628645
@@ -647,6 +664,7 @@ var xMkdtemp func(string) string
647664 func Mkdtemp(TmplVar string) string {
648665
649666 cret := xMkdtemp(TmplVar)
667+
650668 return cret
651669 }
652670
@@ -671,6 +689,7 @@ var xMkdtempFull func(string, int) string
671689 func MkdtempFull(TmplVar string, ModeVar int) string {
672690
673691 cret := xMkdtempFull(TmplVar, ModeVar)
692+
674693 return cret
675694 }
676695
@@ -690,6 +709,7 @@ var xMkstemp func(string) int
690709 func Mkstemp(TmplVar string) int {
691710
692711 cret := xMkstemp(TmplVar)
712+
693713 return cret
694714 }
695715
@@ -710,6 +730,7 @@ var xMkstempFull func(string, int, int) int
710730 func MkstempFull(TmplVar string, FlagsVar int, ModeVar int) int {
711731
712732 cret := xMkstempFull(TmplVar, FlagsVar, ModeVar)
733+
713734 return cret
714735 }
715736
@@ -724,6 +745,7 @@ var xPathGetBasename func(string) string
724745 func PathGetBasename(FileNameVar string) string {
725746
726747 cret := xPathGetBasename(FileNameVar)
748+
727749 return cret
728750 }
729751
@@ -738,6 +760,7 @@ var xPathGetDirname func(string) string
738760 func PathGetDirname(FileNameVar string) string {
739761
740762 cret := xPathGetDirname(FileNameVar)
763+
741764 return cret
742765 }
743766
@@ -770,6 +793,7 @@ var xPathIsAbsolute func(string) bool
770793 func PathIsAbsolute(FileNameVar string) bool {
771794
772795 cret := xPathIsAbsolute(FileNameVar)
796+
773797 return cret
774798 }
775799
@@ -781,6 +805,7 @@ var xPathSkipRoot func(string) string
781805 func PathSkipRoot(FileNameVar string) string {
782806
783807 cret := xPathSkipRoot(FileNameVar)
808+
784809 return cret
785810 }
786811
M v4/glib/ggettext.go +6 -0
@@ -18,6 +18,7 @@ func Dcgettext(DomainVar *string, MsgidVar string, CategoryVar int) string {
1818 defer core.GFreeNullable(DomainVarPtr)
1919
2020 cret := xDcgettext(DomainVarPtr, MsgidVar, CategoryVar)
21+
2122 return cret
2223 }
2324
@@ -61,6 +62,7 @@ func Dgettext(DomainVar *string, MsgidVar string) string {
6162 defer core.GFreeNullable(DomainVarPtr)
6263
6364 cret := xDgettext(DomainVarPtr, MsgidVar)
65+
6466 return cret
6567 }
6668
@@ -78,6 +80,7 @@ func Dngettext(DomainVar *string, MsgidVar string, MsgidPluralVar string, NVar u
7880 defer core.GFreeNullable(DomainVarPtr)
7981
8082 cret := xDngettext(DomainVarPtr, MsgidVar, MsgidPluralVar, NVar)
83+
8184 return cret
8285 }
8386
@@ -102,6 +105,7 @@ func Dpgettext(DomainVar *string, MsgctxtidVar string, MsgidoffsetVar uint) stri
102105 defer core.GFreeNullable(DomainVarPtr)
103106
104107 cret := xDpgettext(DomainVarPtr, MsgctxtidVar, MsgidoffsetVar)
108+
105109 return cret
106110 }
107111
@@ -123,6 +127,7 @@ func Dpgettext2(DomainVar *string, ContextVar string, MsgidVar string) string {
123127 defer core.GFreeNullable(DomainVarPtr)
124128
125129 cret := xDpgettext2(DomainVarPtr, ContextVar, MsgidVar)
130+
126131 return cret
127132 }
128133
@@ -132,6 +137,7 @@ var xStripContext func(string, string) string
132137 func StripContext(MsgidVar string, MsgvalVar string) string {
133138
134139 cret := xStripContext(MsgidVar, MsgvalVar)
140+
135141 return cret
136142 }
137143
M v4/glib/ghash.go +29 -0
@@ -180,6 +180,7 @@ var xDirectEqual func(uintptr, uintptr) bool
180180 func DirectEqual(V1Var uintptr, V2Var uintptr) bool {
181181
182182 cret := xDirectEqual(V1Var, V2Var)
183+
183184 return cret
184185 }
185186
@@ -195,6 +196,7 @@ var xDirectHash func(uintptr) uint
195196 func DirectHash(VVar uintptr) uint {
196197
197198 cret := xDirectHash(VVar)
199+
198200 return cret
199201 }
200202
@@ -208,6 +210,7 @@ var xDoubleEqual func(uintptr, uintptr) bool
208210 func DoubleEqual(V1Var uintptr, V2Var uintptr) bool {
209211
210212 cret := xDoubleEqual(V1Var, V2Var)
213+
211214 return cret
212215 }
213216
@@ -220,6 +223,7 @@ var xDoubleHash func(uintptr) uint
220223 func DoubleHash(VVar uintptr) uint {
221224
222225 cret := xDoubleHash(VVar)
226+
223227 return cret
224228 }
225229
@@ -243,6 +247,7 @@ var xHashTableAdd func(*HashTable, uintptr) bool
243247 func HashTableAdd(HashTableVar *HashTable, KeyVar uintptr) bool {
244248
245249 cret := xHashTableAdd(HashTableVar, KeyVar)
250+
246251 return cret
247252 }
248253
@@ -252,6 +257,7 @@ var xHashTableContains func(*HashTable, uintptr) bool
252257 func HashTableContains(HashTableVar *HashTable, KeyVar uintptr) bool {
253258
254259 cret := xHashTableContains(HashTableVar, KeyVar)
260+
255261 return cret
256262 }
257263
@@ -302,6 +308,7 @@ func HashTableFind(HashTableVar *HashTable, PredicateVar *HRFunc, UserDataVar ui
302308 }
303309
304310 cret := xHashTableFind(HashTableVar, PredicateVarRef, UserDataVar)
311+
305312 return cret
306313 }
307314
@@ -368,6 +375,7 @@ func HashTableForeachRemove(HashTableVar *HashTable, FuncVar *HRFunc, UserDataVa
368375 }
369376
370377 cret := xHashTableForeachRemove(HashTableVar, FuncVarRef, UserDataVar)
378+
371379 return cret
372380 }
373381
@@ -398,6 +406,7 @@ func HashTableForeachSteal(HashTableVar *HashTable, FuncVar *HRFunc, UserDataVar
398406 }
399407
400408 cret := xHashTableForeachSteal(HashTableVar, FuncVarRef, UserDataVar)
409+
401410 return cret
402411 }
403412
@@ -414,6 +423,7 @@ var xHashTableGetKeysAsPtrArray func(*HashTable) uintptr
414423 func HashTableGetKeysAsPtrArray(HashTableVar *HashTable) uintptr {
415424
416425 cret := xHashTableGetKeysAsPtrArray(HashTableVar)
426+
417427 return cret
418428 }
419429
@@ -430,6 +440,7 @@ var xHashTableGetValuesAsPtrArray func(*HashTable) uintptr
430440 func HashTableGetValuesAsPtrArray(HashTableVar *HashTable) uintptr {
431441
432442 cret := xHashTableGetValuesAsPtrArray(HashTableVar)
443+
433444 return cret
434445 }
435446
@@ -450,6 +461,7 @@ var xHashTableInsert func(*HashTable, uintptr, uintptr) bool
450461 func HashTableInsert(HashTableVar *HashTable, KeyVar uintptr, ValueVar uintptr) bool {
451462
452463 cret := xHashTableInsert(HashTableVar, KeyVar, ValueVar)
464+
453465 return cret
454466 }
455467
@@ -462,6 +474,7 @@ var xHashTableLookup func(*HashTable, uintptr) uintptr
462474 func HashTableLookup(HashTableVar *HashTable, KeyVar uintptr) uintptr {
463475
464476 cret := xHashTableLookup(HashTableVar, KeyVar)
477+
465478 return cret
466479 }
467480
@@ -478,6 +491,7 @@ var xHashTableLookupExtended func(*HashTable, uintptr, *uintptr, *uintptr) bool
478491 func HashTableLookupExtended(HashTableVar *HashTable, LookupKeyVar uintptr, OrigKeyVar *uintptr, ValueVar *uintptr) bool {
479492
480493 cret := xHashTableLookupExtended(HashTableVar, LookupKeyVar, OrigKeyVar, ValueVar)
494+
481495 return cret
482496 }
483497
@@ -494,6 +508,7 @@ var xHashTableNewSimilar func(*HashTable) *HashTable
494508 func HashTableNewSimilar(OtherHashTableVar *HashTable) *HashTable {
495509
496510 cret := xHashTableNewSimilar(OtherHashTableVar)
511+
497512 return cret
498513 }
499514
@@ -504,6 +519,7 @@ var xHashTableRef func(*HashTable) *HashTable
504519 func HashTableRef(HashTableVar *HashTable) *HashTable {
505520
506521 cret := xHashTableRef(HashTableVar)
522+
507523 return cret
508524 }
509525
@@ -518,6 +534,7 @@ var xHashTableRemove func(*HashTable, uintptr) bool
518534 func HashTableRemove(HashTableVar *HashTable, KeyVar uintptr) bool {
519535
520536 cret := xHashTableRemove(HashTableVar, KeyVar)
537+
521538 return cret
522539 }
523540
@@ -551,6 +568,7 @@ var xHashTableReplace func(*HashTable, uintptr, uintptr) bool
551568 func HashTableReplace(HashTableVar *HashTable, KeyVar uintptr, ValueVar uintptr) bool {
552569
553570 cret := xHashTableReplace(HashTableVar, KeyVar, ValueVar)
571+
554572 return cret
555573 }
556574
@@ -560,6 +578,7 @@ var xHashTableSize func(*HashTable) uint
560578 func HashTableSize(HashTableVar *HashTable) uint {
561579
562580 cret := xHashTableSize(HashTableVar)
581+
563582 return cret
564583 }
565584
@@ -570,6 +589,7 @@ var xHashTableSteal func(*HashTable, uintptr) bool
570589 func HashTableSteal(HashTableVar *HashTable, KeyVar uintptr) bool {
571590
572591 cret := xHashTableSteal(HashTableVar, KeyVar)
592+
573593 return cret
574594 }
575595
@@ -592,6 +612,7 @@ var xHashTableStealAllKeys func(*HashTable) uintptr
592612 func HashTableStealAllKeys(HashTableVar *HashTable) uintptr {
593613
594614 cret := xHashTableStealAllKeys(HashTableVar)
615+
595616 return cret
596617 }
597618
@@ -604,6 +625,7 @@ var xHashTableStealAllValues func(*HashTable) uintptr
604625 func HashTableStealAllValues(HashTableVar *HashTable) uintptr {
605626
606627 cret := xHashTableStealAllValues(HashTableVar)
628+
607629 return cret
608630 }
609631
@@ -629,6 +651,7 @@ var xHashTableStealExtended func(*HashTable, uintptr, *uintptr, *uintptr) bool
629651 func HashTableStealExtended(HashTableVar *HashTable, LookupKeyVar uintptr, StolenKeyVar *uintptr, StolenValueVar *uintptr) bool {
630652
631653 cret := xHashTableStealExtended(HashTableVar, LookupKeyVar, StolenKeyVar, StolenValueVar)
654+
632655 return cret
633656 }
634657
@@ -654,6 +677,7 @@ var xInt64Equal func(uintptr, uintptr) bool
654677 func Int64Equal(V1Var uintptr, V2Var uintptr) bool {
655678
656679 cret := xInt64Equal(V1Var, V2Var)
680+
657681 return cret
658682 }
659683
@@ -667,6 +691,7 @@ var xInt64Hash func(uintptr) uint
667691 func Int64Hash(VVar uintptr) uint {
668692
669693 cret := xInt64Hash(VVar)
694+
670695 return cret
671696 }
672697
@@ -684,6 +709,7 @@ var xIntEqual func(uintptr, uintptr) bool
684709 func IntEqual(V1Var uintptr, V2Var uintptr) bool {
685710
686711 cret := xIntEqual(V1Var, V2Var)
712+
687713 return cret
688714 }
689715
@@ -699,6 +725,7 @@ var xIntHash func(uintptr) uint
699725 func IntHash(VVar uintptr) uint {
700726
701727 cret := xIntHash(VVar)
728+
702729 return cret
703730 }
704731
@@ -715,6 +742,7 @@ var xStrEqual func(uintptr, uintptr) bool
715742 func StrEqual(V1Var uintptr, V2Var uintptr) bool {
716743
717744 cret := xStrEqual(V1Var, V2Var)
745+
718746 return cret
719747 }
720748
@@ -737,6 +765,7 @@ var xStrHash func(uintptr) uint
737765 func StrHash(VVar uintptr) uint {
738766
739767 cret := xStrHash(VVar)
768+
740769 return cret
741770 }
742771
M v4/glib/ghmac.go +3 -0
@@ -148,6 +148,7 @@ var xComputeHmacForBytes func(ChecksumType, *Bytes, *Bytes) string
148148 func ComputeHmacForBytes(DigestTypeVar ChecksumType, KeyVar *Bytes, DataVar *Bytes) string {
149149
150150 cret := xComputeHmacForBytes(DigestTypeVar, KeyVar, DataVar)
151+
151152 return cret
152153 }
153154
@@ -161,6 +162,7 @@ var xComputeHmacForData func(ChecksumType, []byte, uint, []byte, uint) string
161162 func ComputeHmacForData(DigestTypeVar ChecksumType, KeyVar []byte, KeyLenVar uint, DataVar []byte, LengthVar uint) string {
162163
163164 cret := xComputeHmacForData(DigestTypeVar, KeyVar, KeyLenVar, DataVar, LengthVar)
165+
164166 return cret
165167 }
166168
@@ -172,6 +174,7 @@ var xComputeHmacForString func(ChecksumType, []byte, uint, string, int) string
172174 func ComputeHmacForString(DigestTypeVar ChecksumType, KeyVar []byte, KeyLenVar uint, StrVar string, LengthVar int) string {
173175
174176 cret := xComputeHmacForString(DigestTypeVar, KeyVar, KeyLenVar, StrVar, LengthVar)
177+
175178 return cret
176179 }
177180
M v4/glib/ghook.go +1 -0
@@ -207,6 +207,7 @@ var xHookDestroy func(*HookList, uint) bool
207207 func HookDestroy(HookListVar *HookList, HookIdVar uint) bool {
208208
209209 cret := xHookDestroy(HookListVar, HookIdVar)
210+
210211 return cret
211212 }
212213
M v4/glib/ghostutils.go +5 -0
@@ -19,6 +19,7 @@ var xHostnameIsAsciiEncoded func(string) bool
1919 func HostnameIsAsciiEncoded(HostnameVar string) bool {
2020
2121 cret := xHostnameIsAsciiEncoded(HostnameVar)
22+
2223 return cret
2324 }
2425
@@ -31,6 +32,7 @@ var xHostnameIsIpAddress func(string) bool
3132 func HostnameIsIpAddress(HostnameVar string) bool {
3233
3334 cret := xHostnameIsIpAddress(HostnameVar)
35+
3436 return cret
3537 }
3638
@@ -46,6 +48,7 @@ var xHostnameIsNonAscii func(string) bool
4648 func HostnameIsNonAscii(HostnameVar string) bool {
4749
4850 cret := xHostnameIsNonAscii(HostnameVar)
51+
4952 return cret
5053 }
5154
@@ -57,6 +60,7 @@ var xHostnameToAscii func(string) string
5760 func HostnameToAscii(HostnameVar string) string {
5861
5962 cret := xHostnameToAscii(HostnameVar)
63+
6064 return cret
6165 }
6266
@@ -72,6 +76,7 @@ var xHostnameToUnicode func(string) string
7276 func HostnameToUnicode(HostnameVar string) string {
7377
7478 cret := xHostnameToUnicode(HostnameVar)
79+
7580 return cret
7681 }
7782
M v4/glib/giochannel.go +4 -0
@@ -1040,6 +1040,7 @@ func IoAddWatch(ChannelVar *IOChannel, ConditionVar IOCondition, FuncVar *IOFunc
10401040 }
10411041
10421042 cret := xIoAddWatch(ChannelVar, ConditionVar, FuncVarRef, UserDataVar)
1043+
10431044 return cret
10441045 }
10451046
@@ -1084,6 +1085,7 @@ func IoAddWatchFull(ChannelVar *IOChannel, PriorityVar int, ConditionVar IOCondi
10841085 }
10851086
10861087 cret := xIoAddWatchFull(ChannelVar, PriorityVar, ConditionVar, FuncVarRef, UserDataVar, NotifyVarRef)
1088+
10871089 return cret
10881090 }
10891091
@@ -1093,6 +1095,7 @@ var xIoChannelErrorFromErrno func(int) IOChannelError
10931095 func IoChannelErrorFromErrno(EnVar int) IOChannelError {
10941096
10951097 cret := xIoChannelErrorFromErrno(EnVar)
1098+
10961099 return cret
10971100 }
10981101
@@ -1115,6 +1118,7 @@ var xIoCreateWatch func(*IOChannel, IOCondition) *Source
11151118 func IoCreateWatch(ChannelVar *IOChannel, ConditionVar IOCondition) *Source {
11161119
11171120 cret := xIoCreateWatch(ChannelVar, ConditionVar)
1121+
11181122 return cret
11191123 }
11201124
M v4/glib/glib-types.go +2 -0
@@ -12,6 +12,7 @@ var xStrvGetType func() types.GType
1212 func StrvGetType() types.GType {
1313
1414 cret := xStrvGetType()
15+
1516 return cret
1617 }
1718
@@ -20,6 +21,7 @@ var xVariantGetGtype func() types.GType
2021 func VariantGetGtype() types.GType {
2122
2223 cret := xVariantGetGtype()
24+
2325 return cret
2426 }
2527
M v4/glib/glib-unix.go +11 -0
@@ -57,6 +57,7 @@ var xClosefrom func(int) int
5757 func Closefrom(LowfdVar int) int {
5858
5959 cret := xClosefrom(LowfdVar)
60+
6061 return cret
6162 }
6263
@@ -79,6 +80,7 @@ var xFdwalkSetCloexec func(int) int
7980 func FdwalkSetCloexec(LowfdVar int) int {
8081
8182 cret := xFdwalkSetCloexec(LowfdVar)
83+
8284 return cret
8385 }
8486
@@ -115,6 +117,7 @@ func UnixFdAdd(FdVar int, ConditionVar IOCondition, FunctionVar *UnixFDSourceFun
115117 }
116118
117119 cret := xUnixFdAdd(FdVar, ConditionVar, FunctionVarRef, UserDataVar)
120+
118121 return cret
119122 }
120123
@@ -159,6 +162,7 @@ func UnixFdAddFull(PriorityVar int, FdVar int, ConditionVar IOCondition, Functio
159162 }
160163
161164 cret := xUnixFdAddFull(PriorityVar, FdVar, ConditionVar, FunctionVarRef, UserDataVar, NotifyVarRef)
165+
162166 return cret
163167 }
164168
@@ -174,6 +178,7 @@ var xUnixFdSourceNew func(int, IOCondition) *Source
174178 func UnixFdSourceNew(FdVar int, ConditionVar IOCondition) *Source {
175179
176180 cret := xUnixFdSourceNew(FdVar, ConditionVar)
181+
177182 return cret
178183 }
179184
@@ -194,6 +199,7 @@ func UnixGetPasswdEntry(UserNameVar string) (uintptr, error) {
194199 var cerr *Error
195200
196201 cret := xUnixGetPasswdEntry(UserNameVar, &cerr)
202+
197203 if cerr == nil {
198204 return cret, nil
199205 }
@@ -226,6 +232,7 @@ func UnixOpenPipe(FdsVar [2]int, FlagsVar int) (bool, error) {
226232 var cerr *Error
227233
228234 cret := xUnixOpenPipe(FdsVar, FlagsVar, &cerr)
235+
229236 if cerr == nil {
230237 return cret, nil
231238 }
@@ -242,6 +249,7 @@ func UnixSetFdNonblocking(FdVar int, NonblockVar bool) (bool, error) {
242249 var cerr *Error
243250
244251 cret := xUnixSetFdNonblocking(FdVar, NonblockVar, &cerr)
252+
245253 if cerr == nil {
246254 return cret, nil
247255 }
@@ -272,6 +280,7 @@ func UnixSignalAdd(SignumVar int, HandlerVar *SourceFunc, UserDataVar uintptr) u
272280 }
273281
274282 cret := xUnixSignalAdd(SignumVar, HandlerVarRef, UserDataVar)
283+
275284 return cret
276285 }
277286
@@ -313,6 +322,7 @@ func UnixSignalAddFull(PriorityVar int, SignumVar int, HandlerVar *SourceFunc, U
313322 }
314323
315324 cret := xUnixSignalAddFull(PriorityVar, SignumVar, HandlerVarRef, UserDataVar, NotifyVarRef)
325+
316326 return cret
317327 }
318328
@@ -344,6 +354,7 @@ var xUnixSignalSourceNew func(int) *Source
344354 func UnixSignalSourceNew(SignumVar int) *Source {
345355
346356 cret := xUnixSignalSourceNew(SignumVar)
357+
347358 return cret
348359 }
349360
M v4/glib/gmain.go +45 -189
@@ -1716,9 +1716,7 @@ func ChildWatchAdd(PidVar Pid, FunctionVar *ChildWatchFunc, DataVar uintptr) uin
17161716 }
17171717
17181718 cret := xChildWatchAdd(PidVar, FunctionVarRef, DataVar)
1719- if FunctionVar != nil {
1720- SaveSourceMapping(cret, uintptr(unsafe.Pointer(FunctionVar)))
1721- }
1719+
17221720 return cret
17231721 }
17241722
@@ -1782,9 +1780,7 @@ func ChildWatchAddFull(PriorityVar int, PidVar Pid, FunctionVar *ChildWatchFunc,
17821780 }
17831781
17841782 cret := xChildWatchAddFull(PriorityVar, PidVar, FunctionVarRef, DataVar, NotifyVarRef)
1785- if FunctionVar != nil {
1786- SaveSourceMapping(cret, uintptr(unsafe.Pointer(FunctionVar)))
1787- }
1783+
17881784 return cret
17891785 }
17901786
@@ -1833,6 +1829,7 @@ var xChildWatchSourceNew func(Pid) *Source
18331829 func ChildWatchSourceNew(PidVar Pid) *Source {
18341830
18351831 cret := xChildWatchSourceNew(PidVar)
1832+
18361833 return cret
18371834 }
18381835
@@ -1899,6 +1896,7 @@ var xGetMonotonicTime func() int64
18991896 func GetMonotonicTime() int64 {
19001897
19011898 cret := xGetMonotonicTime()
1899+
19021900 return cret
19031901 }
19041902
@@ -1915,6 +1913,7 @@ var xGetRealTime func() int64
19151913 func GetRealTime() int64 {
19161914
19171915 cret := xGetRealTime()
1916+
19181917 return cret
19191918 }
19201919
@@ -1937,26 +1936,9 @@ var xIdleAdd func(uintptr, uintptr) uint
19371936 // thread is running that main context. You can do these steps manually if you
19381937 // need greater control or to use a custom main context.
19391938 func IdleAdd(FunctionVar *SourceFunc, DataVar uintptr) uint {
1940-
1941- var FunctionVarRef uintptr
1942- if FunctionVar != nil {
1943- FunctionVarPtr := uintptr(unsafe.Pointer(FunctionVar))
1944- if cbRefPtr, ok := GetCallback(FunctionVarPtr); ok {
1945- FunctionVarRef = cbRefPtr
1946- } else {
1947- fcb := func(arg0 uintptr) bool {
1948- cbFn := *FunctionVar
1949- return cbFn(arg0)
1950- }
1951- FunctionVarRef = purego.NewCallback(fcb)
1952- SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
1953- }
1954- }
1955-
1956- cret := xIdleAdd(FunctionVarRef, DataVar)
1957- if FunctionVar != nil {
1958- SaveSourceMapping(cret, uintptr(unsafe.Pointer(FunctionVar)))
1959- }
1939+ trampolineCb, userData := registerSourceFunc(FunctionVar, false)
1940+ cret := xIdleAdd(trampolineCb, userData)
1941+ saveSourceTrampolineMapping(cret, userData)
19601942 return cret
19611943 }
19621944
@@ -1977,22 +1959,7 @@ var xIdleAddFull func(int, uintptr, uintptr, uintptr) uint
19771959 // thread is running that main context. You can do these steps manually if you
19781960 // need greater control or to use a custom main context.
19791961 func IdleAddFull(PriorityVar int, FunctionVar *SourceFunc, DataVar uintptr, NotifyVar *DestroyNotify) uint {
1980-
1981- var FunctionVarRef uintptr
1982- if FunctionVar != nil {
1983- FunctionVarPtr := uintptr(unsafe.Pointer(FunctionVar))
1984- if cbRefPtr, ok := GetCallback(FunctionVarPtr); ok {
1985- FunctionVarRef = cbRefPtr
1986- } else {
1987- fcb := func(arg0 uintptr) bool {
1988- cbFn := *FunctionVar
1989- return cbFn(arg0)
1990- }
1991- FunctionVarRef = purego.NewCallback(fcb)
1992- SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
1993- }
1994- }
1995-
1962+ trampolineCb, userData := registerSourceFunc(FunctionVar, false)
19961963 var NotifyVarRef uintptr
19971964 if NotifyVar != nil {
19981965 NotifyVarPtr := uintptr(unsafe.Pointer(NotifyVar))
@@ -2007,11 +1974,8 @@ func IdleAddFull(PriorityVar int, FunctionVar *SourceFunc, DataVar uintptr, Noti
20071974 SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
20081975 }
20091976 }
2010-
2011- cret := xIdleAddFull(PriorityVar, FunctionVarRef, DataVar, NotifyVarRef)
2012- if FunctionVar != nil {
2013- SaveSourceMapping(cret, uintptr(unsafe.Pointer(FunctionVar)))
2014- }
1977+ cret := xIdleAddFull(PriorityVar, trampolineCb, userData, NotifyVarRef)
1978+ saveSourceTrampolineMapping(cret, userData)
20151979 return cret
20161980 }
20171981
@@ -2028,26 +1992,9 @@ var xIdleAddOnce func(uintptr, uintptr) uint
20281992 //
20291993 // This function otherwise behaves like [func@GLib.idle_add].
20301994 func IdleAddOnce(FunctionVar *SourceOnceFunc, DataVar uintptr) uint {
2031-
2032- var FunctionVarRef uintptr
2033- if FunctionVar != nil {
2034- FunctionVarPtr := uintptr(unsafe.Pointer(FunctionVar))
2035- if cbRefPtr, ok := GetCallback(FunctionVarPtr); ok {
2036- FunctionVarRef = cbRefPtr
2037- } else {
2038- fcb := func(arg0 uintptr) {
2039- cbFn := *FunctionVar
2040- cbFn(arg0)
2041- }
2042- FunctionVarRef = purego.NewCallback(fcb)
2043- SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
2044- }
2045- }
2046-
2047- cret := xIdleAddOnce(FunctionVarRef, DataVar)
2048- if FunctionVar != nil {
2049- SaveSourceMapping(cret, uintptr(unsafe.Pointer(FunctionVar)))
2050- }
1995+ trampolineCb, userData := registerSourceOnceFunc(FunctionVar)
1996+ cret := xIdleAddOnce(trampolineCb, userData)
1997+ saveSourceTrampolineMapping(cret, userData)
20511998 return cret
20521999 }
20532000
@@ -2057,6 +2004,7 @@ var xIdleRemoveByData func(uintptr) bool
20572004 func IdleRemoveByData(DataVar uintptr) bool {
20582005
20592006 cret := xIdleRemoveByData(DataVar)
2007+
20602008 return cret
20612009 }
20622010
@@ -2073,6 +2021,7 @@ var xIdleSourceNew func() *Source
20732021 func IdleSourceNew() *Source {
20742022
20752023 cret := xIdleSourceNew()
2024+
20762025 return cret
20772026 }
20782027
@@ -2087,6 +2036,7 @@ var xMainContextDefault func() *MainContext
20872036 func MainContextDefault() *MainContext {
20882037
20892038 cret := xMainContextDefault()
2039+
20902040 return cret
20912041 }
20922042
@@ -2107,6 +2057,7 @@ var xMainContextGetThreadDefault func() *MainContext
21072057 func MainContextGetThreadDefault() *MainContext {
21082058
21092059 cret := xMainContextGetThreadDefault()
2060+
21102061 return cret
21112062 }
21122063
@@ -2125,6 +2076,7 @@ var xMainContextRefThreadDefault func() *MainContext
21252076 func MainContextRefThreadDefault() *MainContext {
21262077
21272078 cret := xMainContextRefThreadDefault()
2079+
21282080 return cret
21292081 }
21302082
@@ -2134,6 +2086,7 @@ var xMainCurrentSource func() *Source
21342086 func MainCurrentSource() *Source {
21352087
21362088 cret := xMainCurrentSource()
2089+
21372090 return cret
21382091 }
21392092
@@ -2251,6 +2204,7 @@ var xMainDepth func() int
22512204 func MainDepth() int {
22522205
22532206 cret := xMainDepth()
2207+
22542208 return cret
22552209 }
22562210
@@ -2281,8 +2235,10 @@ var xSourceRemove func(uint) bool
22812235 func SourceRemove(TagVar uint) bool {
22822236
22832237 cret := xSourceRemove(TagVar)
2238+
22842239 if cret {
22852240 RemoveCallbackBySource(TagVar)
2241+ removeSourceTrampolineBySourceID(TagVar)
22862242 }
22872243 return cret
22882244 }
@@ -2297,6 +2253,7 @@ var xSourceRemoveByFuncsUserData func(*SourceFuncs, uintptr) bool
22972253 func SourceRemoveByFuncsUserData(FuncsVar *SourceFuncs, UserDataVar uintptr) bool {
22982254
22992255 cret := xSourceRemoveByFuncsUserData(FuncsVar, UserDataVar)
2256+
23002257 return cret
23012258 }
23022259
@@ -2309,6 +2266,7 @@ var xSourceRemoveByUserData func(uintptr) bool
23092266 func SourceRemoveByUserData(UserDataVar uintptr) bool {
23102267
23112268 cret := xSourceRemoveByUserData(UserDataVar)
2269+
23122270 return cret
23132271 }
23142272
@@ -2372,26 +2330,9 @@ var xTimeoutAdd func(uint, uintptr, uintptr) uint
23722330 // The interval given is in terms of monotonic time, not wall clock
23732331 // time. See [func@GLib.get_monotonic_time].
23742332 func TimeoutAdd(IntervalVar uint, FunctionVar *SourceFunc, DataVar uintptr) uint {
2375-
2376- var FunctionVarRef uintptr
2377- if FunctionVar != nil {
2378- FunctionVarPtr := uintptr(unsafe.Pointer(FunctionVar))
2379- if cbRefPtr, ok := GetCallback(FunctionVarPtr); ok {
2380- FunctionVarRef = cbRefPtr
2381- } else {
2382- fcb := func(arg0 uintptr) bool {
2383- cbFn := *FunctionVar
2384- return cbFn(arg0)
2385- }
2386- FunctionVarRef = purego.NewCallback(fcb)
2387- SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
2388- }
2389- }
2390-
2391- cret := xTimeoutAdd(IntervalVar, FunctionVarRef, DataVar)
2392- if FunctionVar != nil {
2393- SaveSourceMapping(cret, uintptr(unsafe.Pointer(FunctionVar)))
2394- }
2333+ trampolineCb, userData := registerSourceFunc(FunctionVar, false)
2334+ cret := xTimeoutAdd(IntervalVar, trampolineCb, userData)
2335+ saveSourceTrampolineMapping(cret, userData)
23952336 return cret
23962337 }
23972338
@@ -2426,22 +2367,7 @@ var xTimeoutAddFull func(int, uint, uintptr, uintptr, uintptr) uint
24262367 // The interval given is in terms of monotonic time, not wall clock time.
24272368 // See [func@GLib.get_monotonic_time].
24282369 func TimeoutAddFull(PriorityVar int, IntervalVar uint, FunctionVar *SourceFunc, DataVar uintptr, NotifyVar *DestroyNotify) uint {
2429-
2430- var FunctionVarRef uintptr
2431- if FunctionVar != nil {
2432- FunctionVarPtr := uintptr(unsafe.Pointer(FunctionVar))
2433- if cbRefPtr, ok := GetCallback(FunctionVarPtr); ok {
2434- FunctionVarRef = cbRefPtr
2435- } else {
2436- fcb := func(arg0 uintptr) bool {
2437- cbFn := *FunctionVar
2438- return cbFn(arg0)
2439- }
2440- FunctionVarRef = purego.NewCallback(fcb)
2441- SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
2442- }
2443- }
2444-
2370+ trampolineCb, userData := registerSourceFunc(FunctionVar, false)
24452371 var NotifyVarRef uintptr
24462372 if NotifyVar != nil {
24472373 NotifyVarPtr := uintptr(unsafe.Pointer(NotifyVar))
@@ -2456,11 +2382,8 @@ func TimeoutAddFull(PriorityVar int, IntervalVar uint, FunctionVar *SourceFunc,
24562382 SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
24572383 }
24582384 }
2459-
2460- cret := xTimeoutAddFull(PriorityVar, IntervalVar, FunctionVarRef, DataVar, NotifyVarRef)
2461- if FunctionVar != nil {
2462- SaveSourceMapping(cret, uintptr(unsafe.Pointer(FunctionVar)))
2463- }
2385+ cret := xTimeoutAddFull(PriorityVar, IntervalVar, trampolineCb, userData, NotifyVarRef)
2386+ saveSourceTrampolineMapping(cret, userData)
24642387 return cret
24652388 }
24662389
@@ -2474,26 +2397,9 @@ var xTimeoutAddOnce func(uint, uintptr, uintptr) uint
24742397 //
24752398 // This function otherwise behaves like [func@GLib.timeout_add].
24762399 func TimeoutAddOnce(IntervalVar uint, FunctionVar *SourceOnceFunc, DataVar uintptr) uint {
2477-
2478- var FunctionVarRef uintptr
2479- if FunctionVar != nil {
2480- FunctionVarPtr := uintptr(unsafe.Pointer(FunctionVar))
2481- if cbRefPtr, ok := GetCallback(FunctionVarPtr); ok {
2482- FunctionVarRef = cbRefPtr
2483- } else {
2484- fcb := func(arg0 uintptr) {
2485- cbFn := *FunctionVar
2486- cbFn(arg0)
2487- }
2488- FunctionVarRef = purego.NewCallback(fcb)
2489- SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
2490- }
2491- }
2492-
2493- cret := xTimeoutAddOnce(IntervalVar, FunctionVarRef, DataVar)
2494- if FunctionVar != nil {
2495- SaveSourceMapping(cret, uintptr(unsafe.Pointer(FunctionVar)))
2496- }
2400+ trampolineCb, userData := registerSourceOnceFunc(FunctionVar)
2401+ cret := xTimeoutAddOnce(IntervalVar, trampolineCb, userData)
2402+ saveSourceTrampolineMapping(cret, userData)
24972403 return cret
24982404 }
24992405
@@ -2523,26 +2429,9 @@ var xTimeoutAddSeconds func(uint, uintptr, uintptr) uint
25232429 // The interval given is in terms of monotonic time, not wall clock
25242430 // time. See [func@GLib.get_monotonic_time].
25252431 func TimeoutAddSeconds(IntervalVar uint, FunctionVar *SourceFunc, DataVar uintptr) uint {
2526-
2527- var FunctionVarRef uintptr
2528- if FunctionVar != nil {
2529- FunctionVarPtr := uintptr(unsafe.Pointer(FunctionVar))
2530- if cbRefPtr, ok := GetCallback(FunctionVarPtr); ok {
2531- FunctionVarRef = cbRefPtr
2532- } else {
2533- fcb := func(arg0 uintptr) bool {
2534- cbFn := *FunctionVar
2535- return cbFn(arg0)
2536- }
2537- FunctionVarRef = purego.NewCallback(fcb)
2538- SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
2539- }
2540- }
2541-
2542- cret := xTimeoutAddSeconds(IntervalVar, FunctionVarRef, DataVar)
2543- if FunctionVar != nil {
2544- SaveSourceMapping(cret, uintptr(unsafe.Pointer(FunctionVar)))
2545- }
2432+ trampolineCb, userData := registerSourceFunc(FunctionVar, false)
2433+ cret := xTimeoutAddSeconds(IntervalVar, trampolineCb, userData)
2434+ saveSourceTrampolineMapping(cret, userData)
25462435 return cret
25472436 }
25482437
@@ -2589,22 +2478,7 @@ var xTimeoutAddSecondsFull func(int, uint, uintptr, uintptr, uintptr) uint
25892478 // The interval given is in terms of monotonic time, not wall clock
25902479 // time. See [func@GLib.get_monotonic_time].
25912480 func TimeoutAddSecondsFull(PriorityVar int, IntervalVar uint, FunctionVar *SourceFunc, DataVar uintptr, NotifyVar *DestroyNotify) uint {
2592-
2593- var FunctionVarRef uintptr
2594- if FunctionVar != nil {
2595- FunctionVarPtr := uintptr(unsafe.Pointer(FunctionVar))
2596- if cbRefPtr, ok := GetCallback(FunctionVarPtr); ok {
2597- FunctionVarRef = cbRefPtr
2598- } else {
2599- fcb := func(arg0 uintptr) bool {
2600- cbFn := *FunctionVar
2601- return cbFn(arg0)
2602- }
2603- FunctionVarRef = purego.NewCallback(fcb)
2604- SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
2605- }
2606- }
2607-
2481+ trampolineCb, userData := registerSourceFunc(FunctionVar, false)
26082482 var NotifyVarRef uintptr
26092483 if NotifyVar != nil {
26102484 NotifyVarPtr := uintptr(unsafe.Pointer(NotifyVar))
@@ -2619,11 +2493,8 @@ func TimeoutAddSecondsFull(PriorityVar int, IntervalVar uint, FunctionVar *Sourc
26192493 SaveCallbackWithClosure(NotifyVarPtr, NotifyVarRef, NotifyVar)
26202494 }
26212495 }
2622-
2623- cret := xTimeoutAddSecondsFull(PriorityVar, IntervalVar, FunctionVarRef, DataVar, NotifyVarRef)
2624- if FunctionVar != nil {
2625- SaveSourceMapping(cret, uintptr(unsafe.Pointer(FunctionVar)))
2626- }
2496+ cret := xTimeoutAddSecondsFull(PriorityVar, IntervalVar, trampolineCb, userData, NotifyVarRef)
2497+ saveSourceTrampolineMapping(cret, userData)
26272498 return cret
26282499 }
26292500
@@ -2632,26 +2503,9 @@ var xTimeoutAddSecondsOnce func(uint, uintptr, uintptr) uint
26322503 // This function behaves like [func@GLib.timeout_add_once] but with a range in
26332504 // seconds.
26342505 func TimeoutAddSecondsOnce(IntervalVar uint, FunctionVar *SourceOnceFunc, DataVar uintptr) uint {
2635-
2636- var FunctionVarRef uintptr
2637- if FunctionVar != nil {
2638- FunctionVarPtr := uintptr(unsafe.Pointer(FunctionVar))
2639- if cbRefPtr, ok := GetCallback(FunctionVarPtr); ok {
2640- FunctionVarRef = cbRefPtr
2641- } else {
2642- fcb := func(arg0 uintptr) {
2643- cbFn := *FunctionVar
2644- cbFn(arg0)
2645- }
2646- FunctionVarRef = purego.NewCallback(fcb)
2647- SaveCallbackWithClosure(FunctionVarPtr, FunctionVarRef, FunctionVar)
2648- }
2649- }
2650-
2651- cret := xTimeoutAddSecondsOnce(IntervalVar, FunctionVarRef, DataVar)
2652- if FunctionVar != nil {
2653- SaveSourceMapping(cret, uintptr(unsafe.Pointer(FunctionVar)))
2654- }
2506+ trampolineCb, userData := registerSourceOnceFunc(FunctionVar)
2507+ cret := xTimeoutAddSecondsOnce(IntervalVar, trampolineCb, userData)
2508+ saveSourceTrampolineMapping(cret, userData)
26552509 return cret
26562510 }
26572511
@@ -2668,6 +2522,7 @@ var xTimeoutSourceNew func(uint) *Source
26682522 func TimeoutSourceNew(IntervalVar uint) *Source {
26692523
26702524 cret := xTimeoutSourceNew(IntervalVar)
2525+
26712526 return cret
26722527 }
26732528
@@ -2687,6 +2542,7 @@ var xTimeoutSourceNewSeconds func(uint) *Source
26872542 func TimeoutSourceNewSeconds(IntervalVar uint) *Source {
26882543
26892544 cret := xTimeoutSourceNewSeconds(IntervalVar)
2545+
26902546 return cret
26912547 }
26922548
M v4/glib/gmarkup.go +4 -0
@@ -657,6 +657,7 @@ var xMarkupCollectAttributes func(string, string, string, **Error, MarkupCollect
657657 func MarkupCollectAttributes(ElementNameVar string, AttributeNamesVar string, AttributeValuesVar string, ErrorVar **Error, FirstTypeVar MarkupCollectType, FirstAttrVar string, varArgs ...interface{}) bool {
658658
659659 cret := xMarkupCollectAttributes(ElementNameVar, AttributeNamesVar, AttributeValuesVar, ErrorVar, FirstTypeVar, FirstAttrVar, varArgs...)
660+
660661 return cret
661662 }
662663
@@ -679,6 +680,7 @@ var xMarkupEscapeText func(string, int) string
679680 func MarkupEscapeText(TextVar string, LengthVar int) string {
680681
681682 cret := xMarkupEscapeText(TextVar, LengthVar)
683+
682684 return cret
683685 }
684686
@@ -707,6 +709,7 @@ var xMarkupPrintfEscaped func(string, ...interface{}) string
707709 func MarkupPrintfEscaped(FormatVar string, varArgs ...interface{}) string {
708710
709711 cret := xMarkupPrintfEscaped(FormatVar, varArgs...)
712+
710713 return cret
711714 }
712715
@@ -718,6 +721,7 @@ var xMarkupVprintfEscaped func(string, []interface{}) string
718721 func MarkupVprintfEscaped(FormatVar string, ArgsVar []interface{}) string {
719722
720723 cret := xMarkupVprintfEscaped(FormatVar, ArgsVar)
724+
721725 return cret
722726 }
723727
M v4/glib/gmem.go +15 -0
@@ -199,6 +199,7 @@ var xAlignedAlloc func(uint, uint, uint) uintptr
199199 func AlignedAlloc(NBlocksVar uint, NBlockBytesVar uint, AlignmentVar uint) uintptr {
200200
201201 cret := xAlignedAlloc(NBlocksVar, NBlockBytesVar, AlignmentVar)
202+
202203 return cret
203204 }
204205
@@ -209,6 +210,7 @@ var xAlignedAlloc0 func(uint, uint, uint) uintptr
209210 func AlignedAlloc0(NBlocksVar uint, NBlockBytesVar uint, AlignmentVar uint) uintptr {
210211
211212 cret := xAlignedAlloc0(NBlocksVar, NBlockBytesVar, AlignmentVar)
213+
212214 return cret
213215 }
214216
@@ -348,6 +350,7 @@ var xMalloc func(uint) uintptr
348350 func Malloc(NBytesVar uint) uintptr {
349351
350352 cret := xMalloc(NBytesVar)
353+
351354 return cret
352355 }
353356
@@ -361,6 +364,7 @@ var xMalloc0 func(uint) uintptr
361364 func Malloc0(NBytesVar uint) uintptr {
362365
363366 cret := xMalloc0(NBytesVar)
367+
364368 return cret
365369 }
366370
@@ -374,6 +378,7 @@ var xMalloc0N func(uint, uint) uintptr
374378 func Malloc0N(NBlocksVar uint, NBlockBytesVar uint) uintptr {
375379
376380 cret := xMalloc0N(NBlocksVar, NBlockBytesVar)
381+
377382 return cret
378383 }
379384
@@ -387,6 +392,7 @@ var xMallocN func(uint, uint) uintptr
387392 func MallocN(NBlocksVar uint, NBlockBytesVar uint) uintptr {
388393
389394 cret := xMallocN(NBlocksVar, NBlockBytesVar)
395+
390396 return cret
391397 }
392398
@@ -400,6 +406,7 @@ var xMemIsSystemMalloc func() bool
400406 func MemIsSystemMalloc() bool {
401407
402408 cret := xMemIsSystemMalloc()
409+
403410 return cret
404411 }
405412
@@ -439,6 +446,7 @@ var xRealloc func(uintptr, uint) uintptr
439446 func Realloc(MemVar uintptr, NBytesVar uint) uintptr {
440447
441448 cret := xRealloc(MemVar, NBytesVar)
449+
442450 return cret
443451 }
444452
@@ -452,6 +460,7 @@ var xReallocN func(uintptr, uint, uint) uintptr
452460 func ReallocN(MemVar uintptr, NBlocksVar uint, NBlockBytesVar uint) uintptr {
453461
454462 cret := xReallocN(MemVar, NBlocksVar, NBlockBytesVar)
463+
455464 return cret
456465 }
457466
@@ -462,6 +471,7 @@ var xTryMalloc func(uint) uintptr
462471 func TryMalloc(NBytesVar uint) uintptr {
463472
464473 cret := xTryMalloc(NBytesVar)
474+
465475 return cret
466476 }
467477
@@ -472,6 +482,7 @@ var xTryMalloc0 func(uint) uintptr
472482 func TryMalloc0(NBytesVar uint) uintptr {
473483
474484 cret := xTryMalloc0(NBytesVar)
485+
475486 return cret
476487 }
477488
@@ -482,6 +493,7 @@ var xTryMalloc0N func(uint, uint) uintptr
482493 func TryMalloc0N(NBlocksVar uint, NBlockBytesVar uint) uintptr {
483494
484495 cret := xTryMalloc0N(NBlocksVar, NBlockBytesVar)
496+
485497 return cret
486498 }
487499
@@ -492,6 +504,7 @@ var xTryMallocN func(uint, uint) uintptr
492504 func TryMallocN(NBlocksVar uint, NBlockBytesVar uint) uintptr {
493505
494506 cret := xTryMallocN(NBlocksVar, NBlockBytesVar)
507+
495508 return cret
496509 }
497510
@@ -505,6 +518,7 @@ var xTryRealloc func(uintptr, uint) uintptr
505518 func TryRealloc(MemVar uintptr, NBytesVar uint) uintptr {
506519
507520 cret := xTryRealloc(MemVar, NBytesVar)
521+
508522 return cret
509523 }
510524
@@ -515,6 +529,7 @@ var xTryReallocN func(uintptr, uint, uint) uintptr
515529 func TryReallocN(MemVar uintptr, NBlocksVar uint, NBlockBytesVar uint) uintptr {
516530
517531 cret := xTryReallocN(MemVar, NBlocksVar, NBlockBytesVar)
532+
518533 return cret
519534 }
520535
M v4/glib/gmessages.go +18 -0
@@ -263,6 +263,7 @@ var xLogGetAlwaysFatal func() LogLevelFlags
263263 func LogGetAlwaysFatal() LogLevelFlags {
264264
265265 cret := xLogGetAlwaysFatal()
266+
266267 return cret
267268 }
268269
@@ -280,6 +281,7 @@ var xLogGetDebugEnabled func() bool
280281 func LogGetDebugEnabled() bool {
281282
282283 cret := xLogGetDebugEnabled()
284+
283285 return cret
284286 }
285287
@@ -317,6 +319,7 @@ var xLogSetAlwaysFatal func(LogLevelFlags) LogLevelFlags
317319 func LogSetAlwaysFatal(FatalMaskVar LogLevelFlags) LogLevelFlags {
318320
319321 cret := xLogSetAlwaysFatal(FatalMaskVar)
322+
320323 return cret
321324 }
322325
@@ -364,6 +367,7 @@ func LogSetDefaultHandler(LogFuncVar *LogFunc, UserDataVar uintptr) uintptr {
364367 }
365368
366369 cret := xLogSetDefaultHandler(LogFuncVarRef, UserDataVar)
370+
367371 return cret
368372 }
369373
@@ -386,6 +390,7 @@ var xLogSetFatalMask func(string, LogLevelFlags) LogLevelFlags
386390 func LogSetFatalMask(LogDomainVar string, FatalMaskVar LogLevelFlags) LogLevelFlags {
387391
388392 cret := xLogSetFatalMask(LogDomainVar, FatalMaskVar)
393+
389394 return cret
390395 }
391396
@@ -455,6 +460,7 @@ func LogSetHandler(LogDomainVar *string, LogLevelsVar LogLevelFlags, LogFuncVar
455460 defer core.GFreeNullable(LogDomainVarPtr)
456461
457462 cret := xLogSetHandler(LogDomainVarPtr, LogLevelsVar, LogFuncVarRef, UserDataVar)
463+
458464 return cret
459465 }
460466
@@ -503,6 +509,7 @@ func LogSetHandlerFull(LogDomainVar *string, LogLevelsVar LogLevelFlags, LogFunc
503509 defer core.GFreeNullable(LogDomainVarPtr)
504510
505511 cret := xLogSetHandlerFull(LogDomainVarPtr, LogLevelsVar, LogFuncVarRef, UserDataVar, DestroyVarRef)
512+
506513 return cret
507514 }
508515
@@ -736,6 +743,7 @@ var xLogWriterDefault func(LogLevelFlags, []LogField, uint, uintptr) LogWriterOu
736743 func LogWriterDefault(LogLevelVar LogLevelFlags, FieldsVar []LogField, NFieldsVar uint, UserDataVar uintptr) LogWriterOutput {
737744
738745 cret := xLogWriterDefault(LogLevelVar, FieldsVar, NFieldsVar, UserDataVar)
746+
739747 return cret
740748 }
741749
@@ -816,6 +824,7 @@ func LogWriterDefaultWouldDrop(LogLevelVar LogLevelFlags, LogDomainVar *string)
816824 defer core.GFreeNullable(LogDomainVarPtr)
817825
818826 cret := xLogWriterDefaultWouldDrop(LogLevelVar, LogDomainVarPtr)
827+
819828 return cret
820829 }
821830
@@ -835,6 +844,7 @@ var xLogWriterFormatFields func(LogLevelFlags, []LogField, uint, bool) string
835844 func LogWriterFormatFields(LogLevelVar LogLevelFlags, FieldsVar []LogField, NFieldsVar uint, UseColorVar bool) string {
836845
837846 cret := xLogWriterFormatFields(LogLevelVar, FieldsVar, NFieldsVar, UseColorVar)
847+
838848 return cret
839849 }
840850
@@ -852,6 +862,7 @@ var xLogWriterIsJournald func(int) bool
852862 func LogWriterIsJournald(OutputFdVar int) bool {
853863
854864 cret := xLogWriterIsJournald(OutputFdVar)
865+
855866 return cret
856867 }
857868
@@ -871,6 +882,7 @@ var xLogWriterJournald func(LogLevelFlags, []LogField, uint, uintptr) LogWriterO
871882 func LogWriterJournald(LogLevelVar LogLevelFlags, FieldsVar []LogField, NFieldsVar uint, UserDataVar uintptr) LogWriterOutput {
872883
873884 cret := xLogWriterJournald(LogLevelVar, FieldsVar, NFieldsVar, UserDataVar)
885+
874886 return cret
875887 }
876888
@@ -896,6 +908,7 @@ var xLogWriterStandardStreams func(LogLevelFlags, []LogField, uint, uintptr) Log
896908 func LogWriterStandardStreams(LogLevelVar LogLevelFlags, FieldsVar []LogField, NFieldsVar uint, UserDataVar uintptr) LogWriterOutput {
897909
898910 cret := xLogWriterStandardStreams(LogLevelVar, FieldsVar, NFieldsVar, UserDataVar)
911+
899912 return cret
900913 }
901914
@@ -908,6 +921,7 @@ var xLogWriterSupportsColor func(int) bool
908921 func LogWriterSupportsColor(OutputFdVar int) bool {
909922
910923 cret := xLogWriterSupportsColor(OutputFdVar)
924+
911925 return cret
912926 }
913927
@@ -928,6 +942,7 @@ var xLogWriterSyslog func(LogLevelFlags, []LogField, uint, uintptr) LogWriterOut
928942 func LogWriterSyslog(LogLevelVar LogLevelFlags, FieldsVar []LogField, NFieldsVar uint, UserDataVar uintptr) LogWriterOutput {
929943
930944 cret := xLogWriterSyslog(LogLevelVar, FieldsVar, NFieldsVar, UserDataVar)
945+
931946 return cret
932947 }
933948
@@ -1008,6 +1023,7 @@ var xPrintfStringUpperBound func(string, []interface{}) uint
10081023 func PrintfStringUpperBound(FormatVar string, ArgsVar []interface{}) uint {
10091024
10101025 cret := xPrintfStringUpperBound(FormatVar, ArgsVar)
1026+
10111027 return cret
10121028 }
10131029
@@ -1062,6 +1078,7 @@ func SetPrintHandler(FuncVar *PrintFunc) uintptr {
10621078 }
10631079
10641080 cret := xSetPrintHandler(FuncVarRef)
1081+
10651082 return cret
10661083 }
10671084
@@ -1100,6 +1117,7 @@ func SetPrinterrHandler(FuncVar *PrintFunc) uintptr {
11001117 }
11011118
11021119 cret := xSetPrinterrHandler(FuncVarRef)
1120+
11031121 return cret
11041122 }
11051123
M v4/glib/gpathbuf.go +1 -0
@@ -277,6 +277,7 @@ var xPathBufEqual func(uintptr, uintptr) bool
277277 func PathBufEqual(V1Var uintptr, V2Var uintptr) bool {
278278
279279 cret := xPathBufEqual(V1Var, V2Var)
280+
280281 return cret
281282 }
282283
M v4/glib/gpattern.go +3 -0
@@ -147,6 +147,7 @@ func PatternMatch(PspecVar *PatternSpec, StringLengthVar uint, StringVar string,
147147 defer core.GFreeNullable(StringReversedVarPtr)
148148
149149 cret := xPatternMatch(PspecVar, StringLengthVar, StringVar, StringReversedVarPtr)
150+
150151 return cret
151152 }
152153
@@ -161,6 +162,7 @@ var xPatternMatchSimple func(string, string) bool
161162 func PatternMatchSimple(PatternVar string, StringVar string) bool {
162163
163164 cret := xPatternMatchSimple(PatternVar, StringVar)
165+
164166 return cret
165167 }
166168
@@ -174,6 +176,7 @@ var xPatternMatchString func(*PatternSpec, string) bool
174176 func PatternMatchString(PspecVar *PatternSpec, StringVar string) bool {
175177
176178 cret := xPatternMatchString(PspecVar, StringVar)
179+
177180 return cret
178181 }
179182
M v4/glib/gpoll.go +1 -0
@@ -58,6 +58,7 @@ var xPoll func(*PollFD, uint, int) int
5858 func Poll(FdsVar *PollFD, NfdsVar uint, TimeoutVar int) int {
5959
6060 cret := xPoll(FdsVar, NfdsVar, TimeoutVar)
61+
6162 return cret
6263 }
6364
M v4/glib/gprimes.go +1 -0
@@ -17,6 +17,7 @@ var xSpacedPrimesClosest func(uint) uint
1717 func SpacedPrimesClosest(NumVar uint) uint {
1818
1919 cret := xSpacedPrimesClosest(NumVar)
20+
2021 return cret
2122 }
2223
M v4/glib/gprintf.go +7 -0
@@ -15,6 +15,7 @@ var xFprintf func(uintptr, string, ...interface{}) int
1515 func Fprintf(FileVar uintptr, FormatVar string, varArgs ...interface{}) int {
1616
1717 cret := xFprintf(FileVar, FormatVar, varArgs...)
18+
1819 return cret
1920 }
2021
@@ -31,6 +32,7 @@ var xPrintf func(string, ...interface{}) int
3132 func Printf(FormatVar string, varArgs ...interface{}) int {
3233
3334 cret := xPrintf(FormatVar, varArgs...)
35+
3436 return cret
3537 }
3638
@@ -48,6 +50,7 @@ var xSprintf func(string, string, ...interface{}) int
4850 func Sprintf(StringVar string, FormatVar string, varArgs ...interface{}) int {
4951
5052 cret := xSprintf(StringVar, FormatVar, varArgs...)
53+
5154 return cret
5255 }
5356
@@ -67,6 +70,7 @@ var xVasprintf func(*string, string, []interface{}) int
6770 func Vasprintf(StringVar *string, FormatVar string, ArgsVar []interface{}) int {
6871
6972 cret := xVasprintf(StringVar, FormatVar, ArgsVar)
73+
7074 return cret
7175 }
7276
@@ -79,6 +83,7 @@ var xVfprintf func(uintptr, string, []interface{}) int
7983 func Vfprintf(FileVar uintptr, FormatVar string, ArgsVar []interface{}) int {
8084
8185 cret := xVfprintf(FileVar, FormatVar, ArgsVar)
86+
8287 return cret
8388 }
8489
@@ -91,6 +96,7 @@ var xVprintf func(string, []interface{}) int
9196 func Vprintf(FormatVar string, ArgsVar []interface{}) int {
9297
9398 cret := xVprintf(FormatVar, ArgsVar)
99+
94100 return cret
95101 }
96102
@@ -103,6 +109,7 @@ var xVsprintf func(string, string, []interface{}) int
103109 func Vsprintf(StringVar string, FormatVar string, ArgsVar []interface{}) int {
104110
105111 cret := xVsprintf(StringVar, FormatVar, ArgsVar)
112+
106113 return cret
107114 }
108115
M v4/glib/gquark.go +6 -0
@@ -50,6 +50,7 @@ func InternStaticString(StringVar *string) string {
5050 defer core.GFreeNullable(StringVarPtr)
5151
5252 cret := xInternStaticString(StringVarPtr)
53+
5354 return cret
5455 }
5556
@@ -68,6 +69,7 @@ func InternString(StringVar *string) string {
6869 defer core.GFreeNullable(StringVarPtr)
6970
7071 cret := xInternString(StringVarPtr)
72+
7173 return cret
7274 }
7375
@@ -95,6 +97,7 @@ func QuarkFromStaticString(StringVar *string) Quark {
9597 defer core.GFreeNullable(StringVarPtr)
9698
9799 cret := xQuarkFromStaticString(StringVarPtr)
100+
98101 return cret
99102 }
100103
@@ -113,6 +116,7 @@ func QuarkFromString(StringVar *string) Quark {
113116 defer core.GFreeNullable(StringVarPtr)
114117
115118 cret := xQuarkFromString(StringVarPtr)
119+
116120 return cret
117121 }
118122
@@ -122,6 +126,7 @@ var xQuarkToString func(Quark) string
122126 func QuarkToString(QuarkVar Quark) string {
123127
124128 cret := xQuarkToString(QuarkVar)
129+
125130 return cret
126131 }
127132
@@ -141,6 +146,7 @@ func QuarkTryString(StringVar *string) Quark {
141146 defer core.GFreeNullable(StringVarPtr)
142147
143148 cret := xQuarkTryString(StringVarPtr)
149+
144150 return cret
145151 }
146152
M v4/glib/grand.go +4 -0
@@ -145,6 +145,7 @@ var xRandomDouble func() float64
145145 func RandomDouble() float64 {
146146
147147 cret := xRandomDouble()
148+
148149 return cret
149150 }
150151
@@ -155,6 +156,7 @@ var xRandomDoubleRange func(float64, float64) float64
155156 func RandomDoubleRange(BeginVar float64, EndVar float64) float64 {
156157
157158 cret := xRandomDoubleRange(BeginVar, EndVar)
159+
158160 return cret
159161 }
160162
@@ -165,6 +167,7 @@ var xRandomInt func() uint32
165167 func RandomInt() uint32 {
166168
167169 cret := xRandomInt()
170+
168171 return cret
169172 }
170173
@@ -175,6 +178,7 @@ var xRandomIntRange func(int32, int32) int32
175178 func RandomIntRange(BeginVar int32, EndVar int32) int32 {
176179
177180 cret := xRandomIntRange(BeginVar, EndVar)
181+
178182 return cret
179183 }
180184
M v4/glib/grcbox.go +10 -0
@@ -14,6 +14,7 @@ var xAtomicRcBoxAcquire func(uintptr) uintptr
1414 func AtomicRcBoxAcquire(MemBlockVar uintptr) uintptr {
1515
1616 cret := xAtomicRcBoxAcquire(MemBlockVar)
17+
1718 return cret
1819 }
1920
@@ -30,6 +31,7 @@ var xAtomicRcBoxAlloc func(uint) uintptr
3031 func AtomicRcBoxAlloc(BlockSizeVar uint) uintptr {
3132
3233 cret := xAtomicRcBoxAlloc(BlockSizeVar)
34+
3335 return cret
3436 }
3537
@@ -48,6 +50,7 @@ var xAtomicRcBoxAlloc0 func(uint) uintptr
4850 func AtomicRcBoxAlloc0(BlockSizeVar uint) uintptr {
4951
5052 cret := xAtomicRcBoxAlloc0(BlockSizeVar)
53+
5154 return cret
5255 }
5356
@@ -59,6 +62,7 @@ var xAtomicRcBoxDup func(uint, uintptr) uintptr
5962 func AtomicRcBoxDup(BlockSizeVar uint, MemBlockVar uintptr) uintptr {
6063
6164 cret := xAtomicRcBoxDup(BlockSizeVar, MemBlockVar)
65+
6266 return cret
6367 }
6468
@@ -68,6 +72,7 @@ var xAtomicRcBoxGetSize func(uintptr) uint
6872 func AtomicRcBoxGetSize(MemBlockVar uintptr) uint {
6973
7074 cret := xAtomicRcBoxGetSize(MemBlockVar)
75+
7176 return cret
7277 }
7378
@@ -122,6 +127,7 @@ var xRcBoxAcquire func(uintptr) uintptr
122127 func RcBoxAcquire(MemBlockVar uintptr) uintptr {
123128
124129 cret := xRcBoxAcquire(MemBlockVar)
130+
125131 return cret
126132 }
127133
@@ -138,6 +144,7 @@ var xRcBoxAlloc func(uint) uintptr
138144 func RcBoxAlloc(BlockSizeVar uint) uintptr {
139145
140146 cret := xRcBoxAlloc(BlockSizeVar)
147+
141148 return cret
142149 }
143150
@@ -156,6 +163,7 @@ var xRcBoxAlloc0 func(uint) uintptr
156163 func RcBoxAlloc0(BlockSizeVar uint) uintptr {
157164
158165 cret := xRcBoxAlloc0(BlockSizeVar)
166+
159167 return cret
160168 }
161169
@@ -167,6 +175,7 @@ var xRcBoxDup func(uint, uintptr) uintptr
167175 func RcBoxDup(BlockSizeVar uint, MemBlockVar uintptr) uintptr {
168176
169177 cret := xRcBoxDup(BlockSizeVar, MemBlockVar)
178+
170179 return cret
171180 }
172181
@@ -176,6 +185,7 @@ var xRcBoxGetSize func(uintptr) uint
176185 func RcBoxGetSize(MemBlockVar uintptr) uint {
177186
178187 cret := xRcBoxGetSize(MemBlockVar)
188+
179189 return cret
180190 }
181191
M v4/glib/grefcount.go +4 -0
@@ -53,6 +53,7 @@ var xAtomicRefCountCompare func(int, int) bool
5353 func AtomicRefCountCompare(ArcVar int, ValVar int) bool {
5454
5555 cret := xAtomicRefCountCompare(ArcVar, ValVar)
56+
5657 return cret
5758 }
5859
@@ -66,6 +67,7 @@ var xAtomicRefCountDec func(int) bool
6667 func AtomicRefCountDec(ArcVar int) bool {
6768
6869 cret := xAtomicRefCountDec(ArcVar)
70+
6971 return cret
7072 }
7173
@@ -93,6 +95,7 @@ var xRefCountCompare func(int, int) bool
9395 func RefCountCompare(RcVar int, ValVar int) bool {
9496
9597 cret := xRefCountCompare(RcVar, ValVar)
98+
9699 return cret
97100 }
98101
@@ -106,6 +109,7 @@ var xRefCountDec func(int) bool
106109 func RefCountDec(RcVar int) bool {
107110
108111 cret := xRefCountDec(RcVar)
112+
109113 return cret
110114 }
111115
M v4/glib/grefstring.go +6 -0
@@ -21,6 +21,7 @@ var xRefStringAcquire func(string) string
2121 func RefStringAcquire(StrVar string) string {
2222
2323 cret := xRefStringAcquire(StrVar)
24+
2425 return cret
2526 }
2627
@@ -35,6 +36,7 @@ var xRefStringEqual func(string, string) bool
3536 func RefStringEqual(Str1Var string, Str2Var string) bool {
3637
3738 cret := xRefStringEqual(Str1Var, Str2Var)
39+
3840 return cret
3941 }
4042
@@ -44,6 +46,7 @@ var xRefStringLength func(string) uint
4446 func RefStringLength(StrVar string) uint {
4547
4648 cret := xRefStringLength(StrVar)
49+
4750 return cret
4851 }
4952
@@ -54,6 +57,7 @@ var xRefStringNew func(string) string
5457 func RefStringNew(StrVar string) string {
5558
5659 cret := xRefStringNew(StrVar)
60+
5761 return cret
5862 }
5963
@@ -68,6 +72,7 @@ var xRefStringNewIntern func(string) string
6872 func RefStringNewIntern(StrVar string) string {
6973
7074 cret := xRefStringNewIntern(StrVar)
75+
7176 return cret
7277 }
7378
@@ -81,6 +86,7 @@ var xRefStringNewLen func(string, int) string
8186 func RefStringNewLen(StrVar string, LenVar int) string {
8287
8388 cret := xRefStringNewLen(StrVar, LenVar)
89+
8490 return cret
8591 }
8692
M v4/glib/gregex.go +5 -0
@@ -1504,6 +1504,7 @@ func RegexCheckReplacement(ReplacementVar string, HasReferencesVar *bool) (bool,
15041504 var cerr *Error
15051505
15061506 cret := xRegexCheckReplacement(ReplacementVar, HasReferencesVar, &cerr)
1507+
15071508 if cerr == nil {
15081509 return cret, nil
15091510 }
@@ -1521,6 +1522,7 @@ var xRegexEscapeNul func(string, int) string
15211522 func RegexEscapeNul(StringVar string, LengthVar int) string {
15221523
15231524 cret := xRegexEscapeNul(StringVar, LengthVar)
1525+
15241526 return cret
15251527 }
15261528
@@ -1536,6 +1538,7 @@ var xRegexEscapeString func(string, int) string
15361538 func RegexEscapeString(StringVar string, LengthVar int) string {
15371539
15381540 cret := xRegexEscapeString(StringVar, LengthVar)
1541+
15391542 return cret
15401543 }
15411544
@@ -1554,6 +1557,7 @@ var xRegexMatchSimple func(string, string, RegexCompileFlags, RegexMatchFlags) b
15541557 func RegexMatchSimple(PatternVar string, StringVar string, CompileOptionsVar RegexCompileFlags, MatchOptionsVar RegexMatchFlags) bool {
15551558
15561559 cret := xRegexMatchSimple(PatternVar, StringVar, CompileOptionsVar, MatchOptionsVar)
1560+
15571561 return cret
15581562 }
15591563
@@ -1589,6 +1593,7 @@ var xRegexSplitSimple func(string, string, RegexCompileFlags, RegexMatchFlags) [
15891593 func RegexSplitSimple(PatternVar string, StringVar string, CompileOptionsVar RegexCompileFlags, MatchOptionsVar RegexMatchFlags) []string {
15901594
15911595 cret := xRegexSplitSimple(PatternVar, StringVar, CompileOptionsVar, MatchOptionsVar)
1596+
15921597 return cret
15931598 }
15941599
M v4/glib/gsequence.go +3 -0
@@ -522,6 +522,7 @@ var xSequenceGet func(*SequenceIter) uintptr
522522 func SequenceGet(IterVar *SequenceIter) uintptr {
523523
524524 cret := xSequenceGet(IterVar)
525+
525526 return cret
526527 }
527528
@@ -531,6 +532,7 @@ var xSequenceInsertBefore func(*SequenceIter, uintptr) *SequenceIter
531532 func SequenceInsertBefore(IterVar *SequenceIter, DataVar uintptr) *SequenceIter {
532533
533534 cret := xSequenceInsertBefore(IterVar, DataVar)
535+
534536 return cret
535537 }
536538
@@ -573,6 +575,7 @@ var xSequenceRangeGetMidpoint func(*SequenceIter, *SequenceIter) *SequenceIter
573575 func SequenceRangeGetMidpoint(BeginVar *SequenceIter, EndVar *SequenceIter) *SequenceIter {
574576
575577 cret := xSequenceRangeGetMidpoint(BeginVar, EndVar)
578+
576579 return cret
577580 }
578581
M v4/glib/gshell.go +3 -0
@@ -43,6 +43,7 @@ func ShellParseArgv(CommandLineVar string, ArgcpVar *int, ArgvpVar *[]string) (b
4343 var cerr *Error
4444
4545 cret := xShellParseArgv(CommandLineVar, ArgcpVar, ArgvpVar, &cerr)
46+
4647 if cerr == nil {
4748 return cret, nil
4849 }
@@ -65,6 +66,7 @@ var xShellQuote func(string) string
6566 func ShellQuote(UnquotedStringVar string) string {
6667
6768 cret := xShellQuote(UnquotedStringVar)
69+
6870 return cret
6971 }
7072
@@ -101,6 +103,7 @@ func ShellUnquote(QuotedStringVar string) (string, error) {
101103 var cerr *Error
102104
103105 cret := xShellUnquote(QuotedStringVar, &cerr)
106+
104107 if cerr == nil {
105108 return cret, nil
106109 }
M v4/glib/gslice.go +5 -0
@@ -34,6 +34,7 @@ var xSliceAlloc func(uint) uintptr
3434 func SliceAlloc(BlockSizeVar uint) uintptr {
3535
3636 cret := xSliceAlloc(BlockSizeVar)
37+
3738 return cret
3839 }
3940
@@ -47,6 +48,7 @@ var xSliceAlloc0 func(uint) uintptr
4748 func SliceAlloc0(BlockSizeVar uint) uintptr {
4849
4950 cret := xSliceAlloc0(BlockSizeVar)
51+
5052 return cret
5153 }
5254
@@ -62,6 +64,7 @@ var xSliceCopy func(uint, uintptr) uintptr
6264 func SliceCopy(BlockSizeVar uint, MemBlockVar uintptr) uintptr {
6365
6466 cret := xSliceCopy(BlockSizeVar, MemBlockVar)
67+
6568 return cret
6669 }
6770
@@ -111,6 +114,7 @@ var xSliceGetConfig func(SliceConfig) int64
111114 func SliceGetConfig(CkeyVar SliceConfig) int64 {
112115
113116 cret := xSliceGetConfig(CkeyVar)
117+
114118 return cret
115119 }
116120
@@ -119,6 +123,7 @@ var xSliceGetConfigState func(SliceConfig, int64, uint) int64
119123 func SliceGetConfigState(CkeyVar SliceConfig, AddressVar int64, NValuesVar uint) int64 {
120124
121125 cret := xSliceGetConfigState(CkeyVar, AddressVar, NValuesVar)
126+
122127 return cret
123128 }
124129
M v4/glib/gspawn.go +9 -0
@@ -177,6 +177,7 @@ func SpawnAsync(WorkingDirectoryVar *string, ArgvVar []string, EnvpVar []string,
177177 defer core.GFreeNullable(WorkingDirectoryVarPtr)
178178
179179 cret := xSpawnAsync(WorkingDirectoryVarPtr, ArgvVar, EnvpVar, FlagsVar, ChildSetupVarRef, UserDataVar, ChildPidVar, &cerr)
180+
180181 if cerr == nil {
181182 return cret, nil
182183 }
@@ -212,6 +213,7 @@ func SpawnAsyncWithFds(WorkingDirectoryVar *string, ArgvVar []string, EnvpVar []
212213 defer core.GFreeNullable(WorkingDirectoryVarPtr)
213214
214215 cret := xSpawnAsyncWithFds(WorkingDirectoryVarPtr, ArgvVar, EnvpVar, FlagsVar, ChildSetupVarRef, UserDataVar, ChildPidVar, StdinFdVar, StdoutFdVar, StderrFdVar, &cerr)
216+
215217 if cerr == nil {
216218 return cret, nil
217219 }
@@ -245,6 +247,7 @@ func SpawnAsyncWithPipes(WorkingDirectoryVar *string, ArgvVar []string, EnvpVar
245247 defer core.GFreeNullable(WorkingDirectoryVarPtr)
246248
247249 cret := xSpawnAsyncWithPipes(WorkingDirectoryVarPtr, ArgvVar, EnvpVar, FlagsVar, ChildSetupVarRef, UserDataVar, ChildPidVar, StandardInputVar, StandardOutputVar, StandardErrorVar, &cerr)
250+
248251 if cerr == nil {
249252 return cret, nil
250253 }
@@ -470,6 +473,7 @@ func SpawnAsyncWithPipesAndFds(WorkingDirectoryVar *string, ArgvVar []string, En
470473 defer core.GFreeNullable(WorkingDirectoryVarPtr)
471474
472475 cret := xSpawnAsyncWithPipesAndFds(WorkingDirectoryVarPtr, ArgvVar, EnvpVar, FlagsVar, ChildSetupVarRef, UserDataVar, StdinFdVar, StdoutFdVar, StderrFdVar, SourceFdsVar, TargetFdsVar, NFdsVar, ChildPidOutVar, StdinPipeOutVar, StdoutPipeOutVar, StderrPipeOutVar, &cerr)
476+
473477 if cerr == nil {
474478 return cret, nil
475479 }
@@ -491,6 +495,7 @@ func SpawnCheckExitStatus(WaitStatusVar int) (bool, error) {
491495 var cerr *Error
492496
493497 cret := xSpawnCheckExitStatus(WaitStatusVar, &cerr)
498+
494499 if cerr == nil {
495500 return cret, nil
496501 }
@@ -543,6 +548,7 @@ func SpawnCheckWaitStatus(WaitStatusVar int) (bool, error) {
543548 var cerr *Error
544549
545550 cret := xSpawnCheckWaitStatus(WaitStatusVar, &cerr)
551+
546552 if cerr == nil {
547553 return cret, nil
548554 }
@@ -578,6 +584,7 @@ func SpawnCommandLineAsync(CommandLineVar string) (bool, error) {
578584 var cerr *Error
579585
580586 cret := xSpawnCommandLineAsync(CommandLineVar, &cerr)
587+
581588 if cerr == nil {
582589 return cret, nil
583590 }
@@ -620,6 +627,7 @@ func SpawnCommandLineSync(CommandLineVar string, StandardOutputVar *[]byte, Stan
620627 var cerr *Error
621628
622629 cret := xSpawnCommandLineSync(CommandLineVar, StandardOutputVar, StandardErrorVar, WaitStatusVar, &cerr)
630+
623631 if cerr == nil {
624632 return cret, nil
625633 }
@@ -674,6 +682,7 @@ func SpawnSync(WorkingDirectoryVar *string, ArgvVar []string, EnvpVar []string,
674682 defer core.GFreeNullable(WorkingDirectoryVarPtr)
675683
676684 cret := xSpawnSync(WorkingDirectoryVarPtr, ArgvVar, EnvpVar, FlagsVar, ChildSetupVarRef, UserDataVar, StandardOutputVar, StandardErrorVar, WaitStatusVar, &cerr)
685+
677686 if cerr == nil {
678687 return cret, nil
679688 }
M v4/glib/gstdio.go +17 -0
@@ -38,6 +38,7 @@ var xAccess func(string, int) int
3838 func Access(FilenameVar string, ModeVar int) int {
3939
4040 cret := xAccess(FilenameVar, ModeVar)
41+
4142 return cret
4243 }
4344
@@ -50,6 +51,7 @@ var xChdir func(string) int
5051 func Chdir(PathVar string) int {
5152
5253 cret := xChdir(PathVar)
54+
5355 return cret
5456 }
5557
@@ -68,6 +70,7 @@ var xChmod func(string, int) int
6870 func Chmod(FilenameVar string, ModeVar int) int {
6971
7072 cret := xChmod(FilenameVar, ModeVar)
73+
7174 return cret
7275 }
7376
@@ -94,6 +97,7 @@ func Close(FdVar int) (bool, error) {
9497 var cerr *Error
9598
9699 cret := xClose(FdVar, &cerr)
100+
97101 if cerr == nil {
98102 return cret, nil
99103 }
@@ -125,6 +129,7 @@ var xCreat func(string, int) int
125129 func Creat(FilenameVar string, ModeVar int) int {
126130
127131 cret := xCreat(FilenameVar, ModeVar)
132+
128133 return cret
129134 }
130135
@@ -156,6 +161,7 @@ var xFopen func(string, string) uintptr
156161 func Fopen(FilenameVar string, ModeVar string) uintptr {
157162
158163 cret := xFopen(FilenameVar, ModeVar)
164+
159165 return cret
160166 }
161167
@@ -171,6 +177,7 @@ var xFreopen func(string, string, uintptr) uintptr
171177 func Freopen(FilenameVar string, ModeVar string, StreamVar uintptr) uintptr {
172178
173179 cret := xFreopen(FilenameVar, ModeVar, StreamVar)
180+
174181 return cret
175182 }
176183
@@ -187,6 +194,7 @@ var xFsync func(int) int
187194 func Fsync(FdVar int) int {
188195
189196 cret := xFsync(FdVar)
197+
190198 return cret
191199 }
192200
@@ -202,6 +210,7 @@ var xLstat func(string, *StatBuf) int
202210 func Lstat(FilenameVar string, BufVar *StatBuf) int {
203211
204212 cret := xLstat(FilenameVar, BufVar)
213+
205214 return cret
206215 }
207216
@@ -215,6 +224,7 @@ var xMkdir func(string, int) int
215224 func Mkdir(FilenameVar string, ModeVar int) int {
216225
217226 cret := xMkdir(FilenameVar, ModeVar)
227+
218228 return cret
219229 }
220230
@@ -241,6 +251,7 @@ var xOpen func(string, int, int) int
241251 func Open(FilenameVar string, FlagsVar int, ModeVar int) int {
242252
243253 cret := xOpen(FilenameVar, FlagsVar, ModeVar)
254+
244255 return cret
245256 }
246257
@@ -265,6 +276,7 @@ var xRemove func(string) int
265276 func Remove(FilenameVar string) int {
266277
267278 cret := xRemove(FilenameVar)
279+
268280 return cret
269281 }
270282
@@ -279,6 +291,7 @@ var xRename func(string, string) int
279291 func Rename(OldfilenameVar string, NewfilenameVar string) int {
280292
281293 cret := xRename(OldfilenameVar, NewfilenameVar)
294+
282295 return cret
283296 }
284297
@@ -292,6 +305,7 @@ var xRmdir func(string) int
292305 func Rmdir(FilenameVar string) int {
293306
294307 cret := xRmdir(FilenameVar)
308+
295309 return cret
296310 }
297311
@@ -320,6 +334,7 @@ var xStat func(string, *StatBuf) int
320334 func Stat(FilenameVar string, BufVar *StatBuf) int {
321335
322336 cret := xStat(FilenameVar, BufVar)
337+
323338 return cret
324339 }
325340
@@ -336,6 +351,7 @@ var xUnlink func(string) int
336351 func Unlink(FilenameVar string) int {
337352
338353 cret := xUnlink(FilenameVar)
354+
339355 return cret
340356 }
341357
@@ -349,6 +365,7 @@ var xUtime func(string, uintptr) int
349365 func Utime(FilenameVar string, UtbVar uintptr) int {
350366
351367 cret := xUtime(FilenameVar, UtbVar)
368+
352369 return cret
353370 }
354371
M v4/glib/gstrfuncs.go +57 -0
@@ -74,6 +74,7 @@ var xAsciiDigitValue func(byte) int
7474 func AsciiDigitValue(CVar byte) int {
7575
7676 cret := xAsciiDigitValue(CVar)
77+
7778 return cret
7879 }
7980
@@ -91,6 +92,7 @@ var xAsciiDtostr func(string, int, float64) string
9192 func AsciiDtostr(BufferVar string, BufLenVar int, DVar float64) string {
9293
9394 cret := xAsciiDtostr(BufferVar, BufLenVar, DVar)
95+
9496 return cret
9597 }
9698
@@ -111,6 +113,7 @@ var xAsciiFormatd func(string, int, string, float64) string
111113 func AsciiFormatd(BufferVar string, BufLenVar int, FormatVar string, DVar float64) string {
112114
113115 cret := xAsciiFormatd(BufferVar, BufLenVar, FormatVar, DVar)
116+
114117 return cret
115118 }
116119
@@ -134,6 +137,7 @@ var xAsciiStrcasecmp func(string, string) int
134137 func AsciiStrcasecmp(S1Var string, S2Var string) int {
135138
136139 cret := xAsciiStrcasecmp(S1Var, S2Var)
140+
137141 return cret
138142 }
139143
@@ -144,6 +148,7 @@ var xAsciiStrdown func(string, int) string
144148 func AsciiStrdown(StrVar string, LenVar int) string {
145149
146150 cret := xAsciiStrdown(StrVar, LenVar)
151+
147152 return cret
148153 }
149154
@@ -174,6 +179,7 @@ func AsciiStringToSigned(StrVar string, BaseVar uint, MinVar int64, MaxVar int64
174179 var cerr *Error
175180
176181 cret := xAsciiStringToSigned(StrVar, BaseVar, MinVar, MaxVar, OutNumVar, &cerr)
182+
177183 if cerr == nil {
178184 return cret, nil
179185 }
@@ -209,6 +215,7 @@ func AsciiStringToUnsigned(StrVar string, BaseVar uint, MinVar uint64, MaxVar ui
209215 var cerr *Error
210216
211217 cret := xAsciiStringToUnsigned(StrVar, BaseVar, MinVar, MaxVar, OutNumVar, &cerr)
218+
212219 if cerr == nil {
213220 return cret, nil
214221 }
@@ -233,6 +240,7 @@ var xAsciiStrncasecmp func(string, string, uint) int
233240 func AsciiStrncasecmp(S1Var string, S2Var string, NVar uint) int {
234241
235242 cret := xAsciiStrncasecmp(S1Var, S2Var, NVar)
243+
236244 return cret
237245 }
238246
@@ -264,6 +272,7 @@ var xAsciiStrtod func(string, *string) float64
264272 func AsciiStrtod(NptrVar string, EndptrVar *string) float64 {
265273
266274 cret := xAsciiStrtod(NptrVar, EndptrVar)
275+
267276 return cret
268277 }
269278
@@ -290,6 +299,7 @@ var xAsciiStrtoll func(string, *string, uint) int64
290299 func AsciiStrtoll(NptrVar string, EndptrVar *string, BaseVar uint) int64 {
291300
292301 cret := xAsciiStrtoll(NptrVar, EndptrVar, BaseVar)
302+
293303 return cret
294304 }
295305
@@ -321,6 +331,7 @@ var xAsciiStrtoull func(string, *string, uint) uint64
321331 func AsciiStrtoull(NptrVar string, EndptrVar *string, BaseVar uint) uint64 {
322332
323333 cret := xAsciiStrtoull(NptrVar, EndptrVar, BaseVar)
334+
324335 return cret
325336 }
326337
@@ -331,6 +342,7 @@ var xAsciiStrup func(string, int) string
331342 func AsciiStrup(StrVar string, LenVar int) string {
332343
333344 cret := xAsciiStrup(StrVar, LenVar)
345+
334346 return cret
335347 }
336348
@@ -349,6 +361,7 @@ var xAsciiTolower func(byte) byte
349361 func AsciiTolower(CVar byte) byte {
350362
351363 cret := xAsciiTolower(CVar)
364+
352365 return cret
353366 }
354367
@@ -367,6 +380,7 @@ var xAsciiToupper func(byte) byte
367380 func AsciiToupper(CVar byte) byte {
368381
369382 cret := xAsciiToupper(CVar)
383+
370384 return cret
371385 }
372386
@@ -384,6 +398,7 @@ var xAsciiXdigitValue func(byte) int
384398 func AsciiXdigitValue(CVar byte) int {
385399
386400 cret := xAsciiXdigitValue(CVar)
401+
387402 return cret
388403 }
389404
@@ -394,6 +409,7 @@ var xMemdup func(uintptr, uint) uintptr
394409 func Memdup(MemVar uintptr, ByteSizeVar uint) uintptr {
395410
396411 cret := xMemdup(MemVar, ByteSizeVar)
412+
397413 return cret
398414 }
399415
@@ -407,6 +423,7 @@ var xMemdup2 func(uintptr, uint) uintptr
407423 func Memdup2(MemVar uintptr, ByteSizeVar uint) uintptr {
408424
409425 cret := xMemdup2(MemVar, ByteSizeVar)
426+
410427 return cret
411428 }
412429
@@ -419,6 +436,7 @@ var xStpcpy func(string, string) string
419436 func Stpcpy(DestVar string, SrcVar string) string {
420437
421438 cret := xStpcpy(DestVar, SrcVar)
439+
422440 return cret
423441 }
424442
@@ -428,6 +446,7 @@ var xStrHasPrefix func(string, string) bool
428446 func StrHasPrefix(StrVar string, PrefixVar string) bool {
429447
430448 cret := xStrHasPrefix(StrVar, PrefixVar)
449+
431450 return cret
432451 }
433452
@@ -437,6 +456,7 @@ var xStrHasSuffix func(string, string) bool
437456 func StrHasSuffix(StrVar string, SuffixVar string) bool {
438457
439458 cret := xStrHasSuffix(StrVar, SuffixVar)
459+
440460 return cret
441461 }
442462
@@ -447,6 +467,7 @@ var xStrIsAscii func(string) bool
447467 func StrIsAscii(StrVar string) bool {
448468
449469 cret := xStrIsAscii(StrVar)
470+
450471 return cret
451472 }
452473
@@ -477,6 +498,7 @@ var xStrMatchString func(string, string, bool) bool
477498 func StrMatchString(SearchTermVar string, PotentialHitVar string, AcceptAlternatesVar bool) bool {
478499
479500 cret := xStrMatchString(SearchTermVar, PotentialHitVar, AcceptAlternatesVar)
501+
480502 return cret
481503 }
482504
@@ -506,6 +528,7 @@ func StrToAscii(StrVar string, FromLocaleVar *string) string {
506528 defer core.GFreeNullable(FromLocaleVarPtr)
507529
508530 cret := xStrToAscii(StrVar, FromLocaleVarPtr)
531+
509532 return cret
510533 }
511534
@@ -532,6 +555,7 @@ func StrTokenizeAndFold(StringVar string, TranslitLocaleVar *string, AsciiAltern
532555 defer core.GFreeNullable(TranslitLocaleVarPtr)
533556
534557 cret := xStrTokenizeAndFold(StringVar, TranslitLocaleVarPtr, AsciiAlternatesVar)
558+
535559 return cret
536560 }
537561
@@ -555,6 +579,7 @@ var xStrcanon func(string, string, byte) string
555579 func Strcanon(StringVar string, ValidCharsVar string, SubstitutorVar byte) string {
556580
557581 cret := xStrcanon(StringVar, ValidCharsVar, SubstitutorVar)
582+
558583 return cret
559584 }
560585
@@ -565,6 +590,7 @@ var xStrcasecmp func(string, string) int
565590 func Strcasecmp(S1Var string, S2Var string) int {
566591
567592 cret := xStrcasecmp(S1Var, S2Var)
593+
568594 return cret
569595 }
570596
@@ -582,6 +608,7 @@ var xStrchomp func(string) string
582608 func Strchomp(StringVar string) string {
583609
584610 cret := xStrchomp(StringVar)
611+
585612 return cret
586613 }
587614
@@ -600,6 +627,7 @@ var xStrchug func(string) string
600627 func Strchug(StringVar string) string {
601628
602629 cret := xStrchug(StringVar)
630+
603631 return cret
604632 }
605633
@@ -622,6 +650,7 @@ var xStrcompress func(string) string
622650 func Strcompress(SourceVar string) string {
623651
624652 cret := xStrcompress(SourceVar)
653+
625654 return cret
626655 }
627656
@@ -638,6 +667,7 @@ var xStrconcat func(string, ...interface{}) string
638667 func Strconcat(String1Var string, varArgs ...interface{}) string {
639668
640669 cret := xStrconcat(String1Var, varArgs...)
670+
641671 return cret
642672 }
643673
@@ -666,6 +696,7 @@ func Strdelimit(StringVar string, DelimitersVar *string, NewDelimiterVar byte) s
666696 defer core.GFreeNullable(DelimitersVarPtr)
667697
668698 cret := xStrdelimit(StringVar, DelimitersVarPtr, NewDelimiterVar)
699+
669700 return cret
670701 }
671702
@@ -675,6 +706,7 @@ var xStrdown func(string) string
675706 func Strdown(StringVar string) string {
676707
677708 cret := xStrdown(StringVar)
709+
678710 return cret
679711 }
680712
@@ -687,6 +719,7 @@ func Strdup(StrVar *string) string {
687719 defer core.GFreeNullable(StrVarPtr)
688720
689721 cret := xStrdup(StrVarPtr)
722+
690723 return cret
691724 }
692725
@@ -702,6 +735,7 @@ var xStrdupPrintf func(string, ...interface{}) string
702735 func StrdupPrintf(FormatVar string, varArgs ...interface{}) string {
703736
704737 cret := xStrdupPrintf(FormatVar, varArgs...)
738+
705739 return cret
706740 }
707741
@@ -720,6 +754,7 @@ var xStrdupVprintf func(string, []interface{}) string
720754 func StrdupVprintf(FormatVar string, ArgsVar []interface{}) string {
721755
722756 cret := xStrdupVprintf(FormatVar, ArgsVar)
757+
723758 return cret
724759 }
725760
@@ -732,6 +767,7 @@ var xStrdupv func([]string) []string
732767 func Strdupv(StrArrayVar []string) []string {
733768
734769 cret := xStrdupv(StrArrayVar)
770+
735771 return cret
736772 }
737773
@@ -761,6 +797,7 @@ var xStrerror func(int) string
761797 func Strerror(ErrnumVar int) string {
762798
763799 cret := xStrerror(ErrnumVar)
800+
764801 return cret
765802 }
766803
@@ -791,6 +828,7 @@ func Strescape(SourceVar string, ExceptionsVar *string) string {
791828 defer core.GFreeNullable(ExceptionsVarPtr)
792829
793830 cret := xStrescape(SourceVar, ExceptionsVarPtr)
831+
794832 return cret
795833 }
796834
@@ -815,6 +853,7 @@ func Strjoin(SeparatorVar *string, varArgs ...interface{}) string {
815853 defer core.GFreeNullable(SeparatorVarPtr)
816854
817855 cret := xStrjoin(SeparatorVarPtr, varArgs...)
856+
818857 return cret
819858 }
820859
@@ -832,6 +871,7 @@ func Strjoinv(SeparatorVar *string, StrArrayVar []string) string {
832871 defer core.GFreeNullable(SeparatorVarPtr)
833872
834873 cret := xStrjoinv(SeparatorVarPtr, StrArrayVar)
874+
835875 return cret
836876 }
837877
@@ -853,6 +893,7 @@ var xStrlcat func(string, string, uint) uint
853893 func Strlcat(DestVar string, SrcVar string, DestSizeVar uint) uint {
854894
855895 cret := xStrlcat(DestVar, SrcVar, DestSizeVar)
896+
856897 return cret
857898 }
858899
@@ -875,6 +916,7 @@ var xStrlcpy func(string, string, uint) uint
875916 func Strlcpy(DestVar string, SrcVar string, DestSizeVar uint) uint {
876917
877918 cret := xStrlcpy(DestVar, SrcVar, DestSizeVar)
919+
878920 return cret
879921 }
880922
@@ -887,6 +929,7 @@ var xStrncasecmp func(string, string, uint) int
887929 func Strncasecmp(S1Var string, S2Var string, NVar uint) int {
888930
889931 cret := xStrncasecmp(S1Var, S2Var, NVar)
932+
890933 return cret
891934 }
892935
@@ -905,6 +948,7 @@ func Strndup(StrVar *string, NVar uint) string {
905948 defer core.GFreeNullable(StrVarPtr)
906949
907950 cret := xStrndup(StrVarPtr, NVar)
951+
908952 return cret
909953 }
910954
@@ -914,6 +958,7 @@ var xStrnfill func(uint, byte) string
914958 func Strnfill(LengthVar uint, FillCharVar byte) string {
915959
916960 cret := xStrnfill(LengthVar, FillCharVar)
961+
917962 return cret
918963 }
919964
@@ -928,6 +973,7 @@ var xStrreverse func(string) string
928973 func Strreverse(StringVar string) string {
929974
930975 cret := xStrreverse(StringVar)
976+
931977 return cret
932978 }
933979
@@ -941,6 +987,7 @@ var xStrrstr func(string, string) string
941987 func Strrstr(HaystackVar string, NeedleVar string) string {
942988
943989 cret := xStrrstr(HaystackVar, NeedleVar)
990+
944991 return cret
945992 }
946993
@@ -955,6 +1002,7 @@ var xStrrstrLen func(string, int, string) string
9551002 func StrrstrLen(HaystackVar string, HaystackLenVar int, NeedleVar string) string {
9561003
9571004 cret := xStrrstrLen(HaystackVar, HaystackLenVar, NeedleVar)
1005+
9581006 return cret
9591007 }
9601008
@@ -969,6 +1017,7 @@ var xStrsignal func(int) string
9691017 func Strsignal(SignumVar int) string {
9701018
9711019 cret := xStrsignal(SignumVar)
1020+
9721021 return cret
9731022 }
9741023
@@ -990,6 +1039,7 @@ var xStrsplit func(string, string, int) []string
9901039 func Strsplit(StringVar string, DelimiterVar string, MaxTokensVar int) []string {
9911040
9921041 cret := xStrsplit(StringVar, DelimiterVar, MaxTokensVar)
1042+
9931043 return cret
9941044 }
9951045
@@ -1018,6 +1068,7 @@ var xStrsplitSet func(string, string, int) []string
10181068 func StrsplitSet(StringVar string, DelimitersVar string, MaxTokensVar int) []string {
10191069
10201070 cret := xStrsplitSet(StringVar, DelimitersVar, MaxTokensVar)
1071+
10211072 return cret
10221073 }
10231074
@@ -1035,6 +1086,7 @@ var xStrstrLen func(string, int, string) string
10351086 func StrstrLen(HaystackVar string, HaystackLenVar int, NeedleVar string) string {
10361087
10371088 cret := xStrstrLen(HaystackVar, HaystackLenVar, NeedleVar)
1089+
10381090 return cret
10391091 }
10401092
@@ -1055,6 +1107,7 @@ var xStrtod func(string, *string) float64
10551107 func Strtod(NptrVar string, EndptrVar *string) float64 {
10561108
10571109 cret := xStrtod(NptrVar, EndptrVar)
1110+
10581111 return cret
10591112 }
10601113
@@ -1064,6 +1117,7 @@ var xStrup func(string) string
10641117 func Strup(StringVar string) string {
10651118
10661119 cret := xStrup(StringVar)
1120+
10671121 return cret
10681122 }
10691123
@@ -1074,6 +1128,7 @@ var xStrvContains func([]string, string) bool
10741128 func StrvContains(StrvVar []string, StrVar string) bool {
10751129
10761130 cret := xStrvContains(StrvVar, StrVar)
1131+
10771132 return cret
10781133 }
10791134
@@ -1091,6 +1146,7 @@ var xStrvEqual func([]string, []string) bool
10911146 func StrvEqual(Strv1Var []string, Strv2Var []string) bool {
10921147
10931148 cret := xStrvEqual(Strv1Var, Strv2Var)
1149+
10941150 return cret
10951151 }
10961152
@@ -1100,6 +1156,7 @@ var xStrvLength func([]string) uint
11001156 func StrvLength(StrArrayVar []string) uint {
11011157
11021158 cret := xStrvLength(StrArrayVar)
1159+
11031160 return cret
11041161 }
11051162
M v4/glib/gtestutils.go +22 -0
@@ -410,6 +410,7 @@ func Strcmp0(Str1Var *string, Str2Var *string) int {
410410 defer core.GFreeNullable(Str2VarPtr)
411411
412412 cret := xStrcmp0(Str1VarPtr, Str2VarPtr)
413+
413414 return cret
414415 }
415416
@@ -659,6 +660,7 @@ var xTestBuildFilename func(TestFileType, string, ...interface{}) string
659660 func TestBuildFilename(FileTypeVar TestFileType, FirstPathVar string, varArgs ...interface{}) string {
660661
661662 cret := xTestBuildFilename(FileTypeVar, FirstPathVar, varArgs...)
663+
662664 return cret
663665 }
664666
@@ -729,6 +731,7 @@ func TestCreateCase(TestNameVar string, DataSizeVar uint, TestDataVar uintptr, D
729731 }
730732
731733 cret := xTestCreateCase(TestNameVar, DataSizeVar, TestDataVar, DataSetupVarRef, DataTestVarRef, DataTeardownVarRef)
734+
732735 return cret
733736 }
734737
@@ -738,6 +741,7 @@ var xTestCreateSuite func(string) *TestSuite
738741 func TestCreateSuite(SuiteNameVar string) *TestSuite {
739742
740743 cret := xTestCreateSuite(SuiteNameVar)
744+
741745 return cret
742746 }
743747
@@ -859,6 +863,7 @@ var xTestFailed func() bool
859863 func TestFailed() bool {
860864
861865 cret := xTestFailed()
866+
862867 return cret
863868 }
864869
@@ -872,6 +877,7 @@ var xTestGetDir func(TestFileType) string
872877 func TestGetDir(FileTypeVar TestFileType) string {
873878
874879 cret := xTestGetDir(FileTypeVar)
880+
875881 return cret
876882 }
877883
@@ -892,6 +898,7 @@ var xTestGetFilename func(TestFileType, string, ...interface{}) string
892898 func TestGetFilename(FileTypeVar TestFileType, FirstPathVar string, varArgs ...interface{}) string {
893899
894900 cret := xTestGetFilename(FileTypeVar, FirstPathVar, varArgs...)
901+
895902 return cret
896903 }
897904
@@ -908,6 +915,7 @@ var xTestGetPath func() string
908915 func TestGetPath() string {
909916
910917 cret := xTestGetPath()
918+
911919 return cret
912920 }
913921
@@ -917,6 +925,7 @@ var xTestGetRoot func() *TestSuite
917925 func TestGetRoot() *TestSuite {
918926
919927 cret := xTestGetRoot()
928+
920929 return cret
921930 }
922931
@@ -1071,6 +1080,7 @@ var xTestLogTypeName func(TestLogType) string
10711080 func TestLogTypeName(LogTypeVar TestLogType) string {
10721081
10731082 cret := xTestLogTypeName(LogTypeVar)
1083+
10741084 return cret
10751085 }
10761086
@@ -1162,6 +1172,7 @@ var xTestRandDouble func() float64
11621172 func TestRandDouble() float64 {
11631173
11641174 cret := xTestRandDouble()
1175+
11651176 return cret
11661177 }
11671178
@@ -1173,6 +1184,7 @@ var xTestRandDoubleRange func(float64, float64) float64
11731184 func TestRandDoubleRange(RangeStartVar float64, RangeEndVar float64) float64 {
11741185
11751186 cret := xTestRandDoubleRange(RangeStartVar, RangeEndVar)
1187+
11761188 return cret
11771189 }
11781190
@@ -1190,6 +1202,7 @@ var xTestRandInt func() int32
11901202 func TestRandInt() int32 {
11911203
11921204 cret := xTestRandInt()
1205+
11931206 return cret
11941207 }
11951208
@@ -1201,6 +1214,7 @@ var xTestRandIntRange func(int32, int32) int32
12011214 func TestRandIntRange(BeginVar int32, EndVar int32) int32 {
12021215
12031216 cret := xTestRandIntRange(BeginVar, EndVar)
1217+
12041218 return cret
12051219 }
12061220
@@ -1243,6 +1257,7 @@ var xTestRun func() int
12431257 func TestRun() int {
12441258
12451259 cret := xTestRun()
1260+
12461261 return cret
12471262 }
12481263
@@ -1260,6 +1275,7 @@ var xTestRunSuite func(*TestSuite) int
12601275 func TestRunSuite(SuiteVar *TestSuite) int {
12611276
12621277 cret := xTestRunSuite(SuiteVar)
1278+
12631279 return cret
12641280 }
12651281
@@ -1323,6 +1339,7 @@ var xTestSubprocess func() bool
13231339 func TestSubprocess() bool {
13241340
13251341 cret := xTestSubprocess()
1342+
13261343 return cret
13271344 }
13281345
@@ -1365,6 +1382,7 @@ var xTestTimerElapsed func() float64
13651382 func TestTimerElapsed() float64 {
13661383
13671384 cret := xTestTimerElapsed()
1385+
13681386 return cret
13691387 }
13701388
@@ -1374,6 +1392,7 @@ var xTestTimerLast func() float64
13741392 func TestTimerLast() float64 {
13751393
13761394 cret := xTestTimerLast()
1395+
13771396 return cret
13781397 }
13791398
@@ -1439,6 +1458,7 @@ var xTestTrapFork func(uint64, TestTrapFlags) bool
14391458 func TestTrapFork(UsecTimeoutVar uint64, TestTrapFlagsVar TestTrapFlags) bool {
14401459
14411460 cret := xTestTrapFork(UsecTimeoutVar, TestTrapFlagsVar)
1461+
14421462 return cret
14431463 }
14441464
@@ -1448,6 +1468,7 @@ var xTestTrapHasPassed func() bool
14481468 func TestTrapHasPassed() bool {
14491469
14501470 cret := xTestTrapHasPassed()
1471+
14511472 return cret
14521473 }
14531474
@@ -1457,6 +1478,7 @@ var xTestTrapReachedTimeout func() bool
14571478 func TestTrapReachedTimeout() bool {
14581479
14591480 cret := xTestTrapReachedTimeout()
1481+
14601482 return cret
14611483 }
14621484
M v4/glib/gthread.go +11 -0
@@ -2097,6 +2097,7 @@ var xCondNew func() *Cond
20972097 func CondNew() *Cond {
20982098
20992099 cret := xCondNew()
2100+
21002101 return cret
21012102 }
21022103
@@ -2109,6 +2110,7 @@ var xGetNumProcessors func() uint
21092110 func GetNumProcessors() uint {
21102111
21112112 cret := xGetNumProcessors()
2113+
21122114 return cret
21132115 }
21142116
@@ -2118,6 +2120,7 @@ var xMutexNew func() *Mutex
21182120 func MutexNew() *Mutex {
21192121
21202122 cret := xMutexNew()
2123+
21212124 return cret
21222125 }
21232126
@@ -2153,6 +2156,7 @@ var xOnceInitEnter func(uintptr) bool
21532156 func OnceInitEnter(LocationVar uintptr) bool {
21542157
21552158 cret := xOnceInitEnter(LocationVar)
2159+
21562160 return cret
21572161 }
21582162
@@ -2161,6 +2165,7 @@ var xOnceInitEnterImpl func(uint) bool
21612165 func OnceInitEnterImpl(LocationVar uint) bool {
21622166
21632167 cret := xOnceInitEnterImpl(LocationVar)
2168+
21642169 return cret
21652170 }
21662171
@@ -2186,6 +2191,7 @@ var xOnceInitEnterPointer func(uintptr) bool
21862191 func OnceInitEnterPointer(LocationVar uintptr) bool {
21872192
21882193 cret := xOnceInitEnterPointer(LocationVar)
2194+
21892195 return cret
21902196 }
21912197
@@ -2242,6 +2248,7 @@ func PrivateNew(NotifyVar *DestroyNotify) *Private {
22422248 }
22432249
22442250 cret := xPrivateNew(NotifyVarRef)
2251+
22452252 return cret
22462253 }
22472254
@@ -2278,6 +2285,7 @@ func ThreadCreate(FuncVar *ThreadFunc, DataVar uintptr, JoinableVar bool) (*Thre
22782285 }
22792286
22802287 cret := xThreadCreate(FuncVarRef, DataVar, JoinableVar, &cerr)
2288+
22812289 if cerr == nil {
22822290 return cret, nil
22832291 }
@@ -2307,6 +2315,7 @@ func ThreadCreateFull(FuncVar *ThreadFunc, DataVar uintptr, StackSizeVar uint, J
23072315 }
23082316
23092317 cret := xThreadCreateFull(FuncVarRef, DataVar, StackSizeVar, JoinableVar, BoundVar, PriorityVar, &cerr)
2318+
23102319 if cerr == nil {
23112320 return cret, nil
23122321 }
@@ -2375,6 +2384,7 @@ var xThreadGetInitialized func() bool
23752384 func ThreadGetInitialized() bool {
23762385
23772386 cret := xThreadGetInitialized()
2387+
23782388 return cret
23792389 }
23802390
@@ -2430,6 +2440,7 @@ var xThreadSelf func() *Thread
24302440 func ThreadSelf() *Thread {
24312441
24322442 cret := xThreadSelf()
2443+
24332444 return cret
24342445 }
24352446
M v4/glib/gthreadpool.go +3 -0
@@ -211,6 +211,7 @@ var xThreadPoolGetMaxIdleTime func() uint
211211 func ThreadPoolGetMaxIdleTime() uint {
212212
213213 cret := xThreadPoolGetMaxIdleTime()
214+
214215 return cret
215216 }
216217
@@ -220,6 +221,7 @@ var xThreadPoolGetMaxUnusedThreads func() int
220221 func ThreadPoolGetMaxUnusedThreads() int {
221222
222223 cret := xThreadPoolGetMaxUnusedThreads()
224+
223225 return cret
224226 }
225227
@@ -229,6 +231,7 @@ var xThreadPoolGetNumUnusedThreads func() uint
229231 func ThreadPoolGetNumUnusedThreads() uint {
230232
231233 cret := xThreadPoolGetNumUnusedThreads()
234+
232235 return cret
233236 }
234237
M v4/glib/gtimer.go +1 -0
@@ -126,6 +126,7 @@ var xTimeValFromIso8601 func(string, *TimeVal) bool
126126 func TimeValFromIso8601(IsoDateVar string, TimeVar *TimeVal) bool {
127127
128128 cret := xTimeValFromIso8601(IsoDateVar, TimeVar)
129+
129130 return cret
130131 }
131132
M v4/glib/gtrashstack.go +3 -0
@@ -41,6 +41,7 @@ var xTrashStackHeight func(**TrashStack) uint
4141 func TrashStackHeight(StackPVar **TrashStack) uint {
4242
4343 cret := xTrashStackHeight(StackPVar)
44+
4445 return cret
4546 }
4647
@@ -51,6 +52,7 @@ var xTrashStackPeek func(**TrashStack) uintptr
5152 func TrashStackPeek(StackPVar **TrashStack) uintptr {
5253
5354 cret := xTrashStackPeek(StackPVar)
55+
5456 return cret
5557 }
5658
@@ -60,6 +62,7 @@ var xTrashStackPop func(**TrashStack) uintptr
6062 func TrashStackPop(StackPVar **TrashStack) uintptr {
6163
6264 cret := xTrashStackPop(StackPVar)
65+
6366 return cret
6467 }
6568
M v4/glib/gunicode.go +66 -0
@@ -622,6 +622,7 @@ func Ucs4ToUtf16(StrVar []uint32, LenVar int, ItemsReadVar *int, ItemsWrittenVar
622622 var cerr *Error
623623
624624 cret := xUcs4ToUtf16(StrVar, LenVar, ItemsReadVar, ItemsWrittenVar, &cerr)
625+
625626 if cerr == nil {
626627 return cret, nil
627628 }
@@ -639,6 +640,7 @@ func Ucs4ToUtf8(StrVar []uint32, LenVar int, ItemsReadVar *int, ItemsWrittenVar
639640 var cerr *Error
640641
641642 cret := xUcs4ToUtf8(StrVar, LenVar, ItemsReadVar, ItemsWrittenVar, &cerr)
643+
642644 if cerr == nil {
643645 return cret, nil
644646 }
@@ -657,6 +659,7 @@ var xUnicharBreakType func(uint32) UnicodeBreakType
657659 func UnicharBreakType(CVar uint32) UnicodeBreakType {
658660
659661 cret := xUnicharBreakType(CVar)
662+
660663 return cret
661664 }
662665
@@ -666,6 +669,7 @@ var xUnicharCombiningClass func(uint32) int
666669 func UnicharCombiningClass(UcVar uint32) int {
667670
668671 cret := xUnicharCombiningClass(UcVar)
672+
669673 return cret
670674 }
671675
@@ -690,6 +694,7 @@ var xUnicharCompose func(uint32, uint32, *uint32) bool
690694 func UnicharCompose(AVar uint32, BVar uint32, ChVar *uint32) bool {
691695
692696 cret := xUnicharCompose(AVar, BVar, ChVar)
697+
693698 return cret
694699 }
695700
@@ -721,6 +726,7 @@ var xUnicharDecompose func(uint32, *uint32, *uint32) bool
721726 func UnicharDecompose(ChVar uint32, AVar *uint32, BVar *uint32) bool {
722727
723728 cret := xUnicharDecompose(ChVar, AVar, BVar)
729+
724730 return cret
725731 }
726732
@@ -731,6 +737,7 @@ var xUnicharDigitValue func(uint32) int
731737 func UnicharDigitValue(CVar uint32) int {
732738
733739 cret := xUnicharDigitValue(CVar)
740+
734741 return cret
735742 }
736743
@@ -758,6 +765,7 @@ var xUnicharFullyDecompose func(uint32, bool, *uint32, uint) uint
758765 func UnicharFullyDecompose(ChVar uint32, CompatVar bool, ResultVar *uint32, ResultLenVar uint) uint {
759766
760767 cret := xUnicharFullyDecompose(ChVar, CompatVar, ResultVar, ResultLenVar)
768+
761769 return cret
762770 }
763771
@@ -775,6 +783,7 @@ var xUnicharGetMirrorChar func(uint32, *uint32) bool
775783 func UnicharGetMirrorChar(ChVar uint32, MirroredChVar *uint32) bool {
776784
777785 cret := xUnicharGetMirrorChar(ChVar, MirroredChVar)
786+
778787 return cret
779788 }
780789
@@ -790,6 +799,7 @@ var xUnicharGetScript func(uint32) UnicodeScript
790799 func UnicharGetScript(ChVar uint32) UnicodeScript {
791800
792801 cret := xUnicharGetScript(ChVar)
802+
793803 return cret
794804 }
795805
@@ -801,6 +811,7 @@ var xUnicharIsalnum func(uint32) bool
801811 func UnicharIsalnum(CVar uint32) bool {
802812
803813 cret := xUnicharIsalnum(CVar)
814+
804815 return cret
805816 }
806817
@@ -812,6 +823,7 @@ var xUnicharIsalpha func(uint32) bool
812823 func UnicharIsalpha(CVar uint32) bool {
813824
814825 cret := xUnicharIsalpha(CVar)
826+
815827 return cret
816828 }
817829
@@ -823,6 +835,7 @@ var xUnicharIscntrl func(uint32) bool
823835 func UnicharIscntrl(CVar uint32) bool {
824836
825837 cret := xUnicharIscntrl(CVar)
838+
826839 return cret
827840 }
828841
@@ -833,6 +846,7 @@ var xUnicharIsdefined func(uint32) bool
833846 func UnicharIsdefined(CVar uint32) bool {
834847
835848 cret := xUnicharIsdefined(CVar)
849+
836850 return cret
837851 }
838852
@@ -844,6 +858,7 @@ var xUnicharIsdigit func(uint32) bool
844858 func UnicharIsdigit(CVar uint32) bool {
845859
846860 cret := xUnicharIsdigit(CVar)
861+
847862 return cret
848863 }
849864
@@ -857,6 +872,7 @@ var xUnicharIsgraph func(uint32) bool
857872 func UnicharIsgraph(CVar uint32) bool {
858873
859874 cret := xUnicharIsgraph(CVar)
875+
860876 return cret
861877 }
862878
@@ -868,6 +884,7 @@ var xUnicharIslower func(uint32) bool
868884 func UnicharIslower(CVar uint32) bool {
869885
870886 cret := xUnicharIslower(CVar)
887+
871888 return cret
872889 }
873890
@@ -885,6 +902,7 @@ var xUnicharIsmark func(uint32) bool
885902 func UnicharIsmark(CVar uint32) bool {
886903
887904 cret := xUnicharIsmark(CVar)
905+
888906 return cret
889907 }
890908
@@ -897,6 +915,7 @@ var xUnicharIsprint func(uint32) bool
897915 func UnicharIsprint(CVar uint32) bool {
898916
899917 cret := xUnicharIsprint(CVar)
918+
900919 return cret
901920 }
902921
@@ -908,6 +927,7 @@ var xUnicharIspunct func(uint32) bool
908927 func UnicharIspunct(CVar uint32) bool {
909928
910929 cret := xUnicharIspunct(CVar)
930+
911931 return cret
912932 }
913933
@@ -923,6 +943,7 @@ var xUnicharIsspace func(uint32) bool
923943 func UnicharIsspace(CVar uint32) bool {
924944
925945 cret := xUnicharIsspace(CVar)
946+
926947 return cret
927948 }
928949
@@ -937,6 +958,7 @@ var xUnicharIstitle func(uint32) bool
937958 func UnicharIstitle(CVar uint32) bool {
938959
939960 cret := xUnicharIstitle(CVar)
961+
940962 return cret
941963 }
942964
@@ -946,6 +968,7 @@ var xUnicharIsupper func(uint32) bool
946968 func UnicharIsupper(CVar uint32) bool {
947969
948970 cret := xUnicharIsupper(CVar)
971+
949972 return cret
950973 }
951974
@@ -956,6 +979,7 @@ var xUnicharIswide func(uint32) bool
956979 func UnicharIswide(CVar uint32) bool {
957980
958981 cret := xUnicharIswide(CVar)
982+
959983 return cret
960984 }
961985
@@ -974,6 +998,7 @@ var xUnicharIswideCjk func(uint32) bool
974998 func UnicharIswideCjk(CVar uint32) bool {
975999
9761000 cret := xUnicharIswideCjk(CVar)
1001+
9771002 return cret
9781003 }
9791004
@@ -983,6 +1008,7 @@ var xUnicharIsxdigit func(uint32) bool
9831008 func UnicharIsxdigit(CVar uint32) bool {
9841009
9851010 cret := xUnicharIsxdigit(CVar)
1011+
9861012 return cret
9871013 }
9881014
@@ -1000,6 +1026,7 @@ var xUnicharIszerowidth func(uint32) bool
10001026 func UnicharIszerowidth(CVar uint32) bool {
10011027
10021028 cret := xUnicharIszerowidth(CVar)
1029+
10031030 return cret
10041031 }
10051032
@@ -1009,6 +1036,7 @@ var xUnicharToUtf8 func(uint32, *string) int
10091036 func UnicharToUtf8(CVar uint32, OutbufVar *string) int {
10101037
10111038 cret := xUnicharToUtf8(CVar, OutbufVar)
1039+
10121040 return cret
10131041 }
10141042
@@ -1018,6 +1046,7 @@ var xUnicharTolower func(uint32) uint32
10181046 func UnicharTolower(CVar uint32) uint32 {
10191047
10201048 cret := xUnicharTolower(CVar)
1049+
10211050 return cret
10221051 }
10231052
@@ -1027,6 +1056,7 @@ var xUnicharTotitle func(uint32) uint32
10271056 func UnicharTotitle(CVar uint32) uint32 {
10281057
10291058 cret := xUnicharTotitle(CVar)
1059+
10301060 return cret
10311061 }
10321062
@@ -1036,6 +1066,7 @@ var xUnicharToupper func(uint32) uint32
10361066 func UnicharToupper(CVar uint32) uint32 {
10371067
10381068 cret := xUnicharToupper(CVar)
1069+
10391070 return cret
10401071 }
10411072
@@ -1045,6 +1076,7 @@ var xUnicharType func(uint32) UnicodeType
10451076 func UnicharType(CVar uint32) UnicodeType {
10461077
10471078 cret := xUnicharType(CVar)
1079+
10481080 return cret
10491081 }
10501082
@@ -1057,6 +1089,7 @@ var xUnicharValidate func(uint32) bool
10571089 func UnicharValidate(ChVar uint32) bool {
10581090
10591091 cret := xUnicharValidate(ChVar)
1092+
10601093 return cret
10611094 }
10621095
@@ -1067,6 +1100,7 @@ var xUnicharXdigitValue func(uint32) int
10671100 func UnicharXdigitValue(CVar uint32) int {
10681101
10691102 cret := xUnicharXdigitValue(CVar)
1103+
10701104 return cret
10711105 }
10721106
@@ -1076,6 +1110,7 @@ var xUnicodeCanonicalDecomposition func(uint32, uint) uint32
10761110 func UnicodeCanonicalDecomposition(ChVar uint32, ResultLenVar uint) uint32 {
10771111
10781112 cret := xUnicodeCanonicalDecomposition(ChVar, ResultLenVar)
1113+
10791114 return cret
10801115 }
10811116
@@ -1105,6 +1140,7 @@ var xUnicodeScriptFromIso15924 func(uint32) UnicodeScript
11051140 func UnicodeScriptFromIso15924(Iso15924Var uint32) UnicodeScript {
11061141
11071142 cret := xUnicodeScriptFromIso15924(Iso15924Var)
1143+
11081144 return cret
11091145 }
11101146
@@ -1122,6 +1158,7 @@ var xUnicodeScriptToIso15924 func(UnicodeScript) uint32
11221158 func UnicodeScriptToIso15924(ScriptVar UnicodeScript) uint32 {
11231159
11241160 cret := xUnicodeScriptToIso15924(ScriptVar)
1161+
11251162 return cret
11261163 }
11271164
@@ -1134,6 +1171,7 @@ func Utf16ToUcs4(StrVar []uint16, LenVar int, ItemsReadVar *int, ItemsWrittenVar
11341171 var cerr *Error
11351172
11361173 cret := xUtf16ToUcs4(StrVar, LenVar, ItemsReadVar, ItemsWrittenVar, &cerr)
1174+
11371175 if cerr == nil {
11381176 return cret, nil
11391177 }
@@ -1161,6 +1199,7 @@ func Utf16ToUtf8(StrVar []uint16, LenVar int, ItemsReadVar *int, ItemsWrittenVar
11611199 var cerr *Error
11621200
11631201 cret := xUtf16ToUtf8(StrVar, LenVar, ItemsReadVar, ItemsWrittenVar, &cerr)
1202+
11641203 if cerr == nil {
11651204 return cret, nil
11661205 }
@@ -1184,6 +1223,7 @@ var xUtf8Casefold func(string, int) string
11841223 func Utf8Casefold(StrVar string, LenVar int) string {
11851224
11861225 cret := xUtf8Casefold(StrVar, LenVar)
1226+
11871227 return cret
11881228 }
11891229
@@ -1202,6 +1242,7 @@ var xUtf8Collate func(string, string) int
12021242 func Utf8Collate(Str1Var string, Str2Var string) int {
12031243
12041244 cret := xUtf8Collate(Str1Var, Str2Var)
1245+
12051246 return cret
12061247 }
12071248
@@ -1223,6 +1264,7 @@ var xUtf8CollateKey func(string, int) string
12231264 func Utf8CollateKey(StrVar string, LenVar int) string {
12241265
12251266 cret := xUtf8CollateKey(StrVar, LenVar)
1267+
12261268 return cret
12271269 }
12281270
@@ -1246,6 +1288,7 @@ var xUtf8CollateKeyForFilename func(string, int) string
12461288 func Utf8CollateKeyForFilename(StrVar string, LenVar int) string {
12471289
12481290 cret := xUtf8CollateKeyForFilename(StrVar, LenVar)
1291+
12491292 return cret
12501293 }
12511294
@@ -1267,6 +1310,7 @@ func Utf8FindNextChar(PVar string, EndVar *string) string {
12671310 defer core.GFreeNullable(EndVarPtr)
12681311
12691312 cret := xUtf8FindNextChar(PVar, EndVarPtr)
1313+
12701314 return cret
12711315 }
12721316
@@ -1282,6 +1326,7 @@ var xUtf8FindPrevChar func(string, string) string
12821326 func Utf8FindPrevChar(StrVar string, PVar string) string {
12831327
12841328 cret := xUtf8FindPrevChar(StrVar, PVar)
1329+
12851330 return cret
12861331 }
12871332
@@ -1296,6 +1341,7 @@ var xUtf8GetChar func(string) uint32
12961341 func Utf8GetChar(PVar string) uint32 {
12971342
12981343 cret := xUtf8GetChar(PVar)
1344+
12991345 return cret
13001346 }
13011347
@@ -1313,6 +1359,7 @@ var xUtf8GetCharValidated func(string, int) uint32
13131359 func Utf8GetCharValidated(PVar string, MaxLenVar int) uint32 {
13141360
13151361 cret := xUtf8GetCharValidated(PVar, MaxLenVar)
1362+
13161363 return cret
13171364 }
13181365
@@ -1330,6 +1377,7 @@ var xUtf8MakeValid func(string, int) string
13301377 func Utf8MakeValid(StrVar string, LenVar int) string {
13311378
13321379 cret := xUtf8MakeValid(StrVar, LenVar)
1380+
13331381 return cret
13341382 }
13351383
@@ -1363,6 +1411,7 @@ var xUtf8Normalize func(string, int, NormalizeMode) string
13631411 func Utf8Normalize(StrVar string, LenVar int, ModeVar NormalizeMode) string {
13641412
13651413 cret := xUtf8Normalize(StrVar, LenVar, ModeVar)
1414+
13661415 return cret
13671416 }
13681417
@@ -1384,6 +1433,7 @@ var xUtf8OffsetToPointer func(string, int) string
13841433 func Utf8OffsetToPointer(StrVar string, OffsetVar int) string {
13851434
13861435 cret := xUtf8OffsetToPointer(StrVar, OffsetVar)
1436+
13871437 return cret
13881438 }
13891439
@@ -1397,6 +1447,7 @@ var xUtf8PointerToOffset func(string, string) int
13971447 func Utf8PointerToOffset(StrVar string, PosVar string) int {
13981448
13991449 cret := xUtf8PointerToOffset(StrVar, PosVar)
1450+
14001451 return cret
14011452 }
14021453
@@ -1412,6 +1463,7 @@ var xUtf8PrevChar func(string) string
14121463 func Utf8PrevChar(PVar string) string {
14131464
14141465 cret := xUtf8PrevChar(PVar)
1466+
14151467 return cret
14161468 }
14171469
@@ -1424,6 +1476,7 @@ var xUtf8Strchr func(string, int, uint32) string
14241476 func Utf8Strchr(PVar string, LenVar int, CVar uint32) string {
14251477
14261478 cret := xUtf8Strchr(PVar, LenVar, CVar)
1479+
14271480 return cret
14281481 }
14291482
@@ -1436,6 +1489,7 @@ var xUtf8Strdown func(string, int) string
14361489 func Utf8Strdown(StrVar string, LenVar int) string {
14371490
14381491 cret := xUtf8Strdown(StrVar, LenVar)
1492+
14391493 return cret
14401494 }
14411495
@@ -1447,6 +1501,7 @@ var xUtf8Strlen func(string, int) int
14471501 func Utf8Strlen(PVar string, MaxVar int) int {
14481502
14491503 cret := xUtf8Strlen(PVar, MaxVar)
1504+
14501505 return cret
14511506 }
14521507
@@ -1464,6 +1519,7 @@ var xUtf8Strncpy func(string, string, uint) string
14641519 func Utf8Strncpy(DestVar string, SrcVar string, NVar uint) string {
14651520
14661521 cret := xUtf8Strncpy(DestVar, SrcVar, NVar)
1522+
14671523 return cret
14681524 }
14691525
@@ -1476,6 +1532,7 @@ var xUtf8Strrchr func(string, int, uint32) string
14761532 func Utf8Strrchr(PVar string, LenVar int, CVar uint32) string {
14771533
14781534 cret := xUtf8Strrchr(PVar, LenVar, CVar)
1535+
14791536 return cret
14801537 }
14811538
@@ -1498,6 +1555,7 @@ var xUtf8Strreverse func(string, int) string
14981555 func Utf8Strreverse(StrVar string, LenVar int) string {
14991556
15001557 cret := xUtf8Strreverse(StrVar, LenVar)
1558+
15011559 return cret
15021560 }
15031561
@@ -1511,6 +1569,7 @@ var xUtf8Strup func(string, int) string
15111569 func Utf8Strup(StrVar string, LenVar int) string {
15121570
15131571 cret := xUtf8Strup(StrVar, LenVar)
1572+
15141573 return cret
15151574 }
15161575
@@ -1524,6 +1583,7 @@ var xUtf8Substring func(string, int, int) string
15241583 func Utf8Substring(StrVar string, StartPosVar int, EndPosVar int) string {
15251584
15261585 cret := xUtf8Substring(StrVar, StartPosVar, EndPosVar)
1586+
15271587 return cret
15281588 }
15291589
@@ -1537,6 +1597,7 @@ func Utf8ToUcs4(StrVar string, LenVar int, ItemsReadVar *int, ItemsWrittenVar *i
15371597 var cerr *Error
15381598
15391599 cret := xUtf8ToUcs4(StrVar, LenVar, ItemsReadVar, ItemsWrittenVar, &cerr)
1600+
15401601 if cerr == nil {
15411602 return cret, nil
15421603 }
@@ -1555,6 +1616,7 @@ var xUtf8ToUcs4Fast func(string, int, *int) uint32
15551616 func Utf8ToUcs4Fast(StrVar string, LenVar int, ItemsWrittenVar *int) uint32 {
15561617
15571618 cret := xUtf8ToUcs4Fast(StrVar, LenVar, ItemsWrittenVar)
1619+
15581620 return cret
15591621 }
15601622
@@ -1567,6 +1629,7 @@ func Utf8ToUtf16(StrVar string, LenVar int, ItemsReadVar *int, ItemsWrittenVar *
15671629 var cerr *Error
15681630
15691631 cret := xUtf8ToUtf16(StrVar, LenVar, ItemsReadVar, ItemsWrittenVar, &cerr)
1632+
15701633 if cerr == nil {
15711634 return cret, nil
15721635 }
@@ -1584,6 +1647,7 @@ var xUtf8TruncateMiddle func(string, uint) string
15841647 func Utf8TruncateMiddle(StringVar string, TruncateLengthVar uint) string {
15851648
15861649 cret := xUtf8TruncateMiddle(StringVar, TruncateLengthVar)
1650+
15871651 return cret
15881652 }
15891653
@@ -1609,6 +1673,7 @@ var xUtf8Validate func([]byte, int, *[]byte) bool
16091673 func Utf8Validate(StrVar []byte, MaxLenVar int, EndVar *[]byte) bool {
16101674
16111675 cret := xUtf8Validate(StrVar, MaxLenVar, EndVar)
1676+
16121677 return cret
16131678 }
16141679
@@ -1621,6 +1686,7 @@ var xUtf8ValidateLen func([]byte, uint, *[]byte) bool
16211686 func Utf8ValidateLen(StrVar []byte, MaxLenVar uint, EndVar *[]byte) bool {
16221687
16231688 cret := xUtf8ValidateLen(StrVar, MaxLenVar, EndVar)
1689+
16241690 return cret
16251691 }
16261692
M v4/glib/guri.go +18 -0
@@ -619,6 +619,7 @@ func UriBuild(FlagsVar UriFlags, SchemeVar string, UserinfoVar *string, HostVar
619619 defer core.GFreeNullable(FragmentVarPtr)
620620
621621 cret := xUriBuild(FlagsVar, SchemeVar, UserinfoVarPtr, HostVarPtr, PortVar, PathVar, QueryVarPtr, FragmentVarPtr)
622+
622623 return cret
623624 }
624625
@@ -653,6 +654,7 @@ func UriBuildWithUser(FlagsVar UriFlags, SchemeVar string, UserVar *string, Pass
653654 defer core.GFreeNullable(FragmentVarPtr)
654655
655656 cret := xUriBuildWithUser(FlagsVar, SchemeVar, UserVarPtr, PasswordVarPtr, AuthParamsVarPtr, HostVarPtr, PortVar, PathVar, QueryVarPtr, FragmentVarPtr)
657+
656658 return cret
657659 }
658660
@@ -675,6 +677,7 @@ func UriEscapeBytes(UnescapedVar []byte, LengthVar uint, ReservedCharsAllowedVar
675677 defer core.GFreeNullable(ReservedCharsAllowedVarPtr)
676678
677679 cret := xUriEscapeBytes(UnescapedVar, LengthVar, ReservedCharsAllowedVarPtr)
680+
678681 return cret
679682 }
680683
@@ -694,6 +697,7 @@ func UriEscapeString(UnescapedVar string, ReservedCharsAllowedVar *string, Allow
694697 defer core.GFreeNullable(ReservedCharsAllowedVarPtr)
695698
696699 cret := xUriEscapeString(UnescapedVar, ReservedCharsAllowedVarPtr, AllowUtf8Var)
700+
697701 return cret
698702 }
699703
@@ -711,6 +715,7 @@ func UriIsValid(UriStringVar string, FlagsVar UriFlags) (bool, error) {
711715 var cerr *Error
712716
713717 cret := xUriIsValid(UriStringVar, FlagsVar, &cerr)
718+
714719 if cerr == nil {
715720 return cret, nil
716721 }
@@ -752,6 +757,7 @@ func UriJoin(FlagsVar UriFlags, SchemeVar *string, UserinfoVar *string, HostVar
752757 defer core.GFreeNullable(FragmentVarPtr)
753758
754759 cret := xUriJoin(FlagsVar, SchemeVarPtr, UserinfoVarPtr, HostVarPtr, PortVar, PathVar, QueryVarPtr, FragmentVarPtr)
760+
755761 return cret
756762 }
757763
@@ -790,6 +796,7 @@ func UriJoinWithUser(FlagsVar UriFlags, SchemeVar *string, UserVar *string, Pass
790796 defer core.GFreeNullable(FragmentVarPtr)
791797
792798 cret := xUriJoinWithUser(FlagsVar, SchemeVarPtr, UserVarPtr, PasswordVarPtr, AuthParamsVarPtr, HostVarPtr, PortVar, PathVar, QueryVarPtr, FragmentVarPtr)
799+
793800 return cret
794801 }
795802
@@ -802,6 +809,7 @@ func UriParse(UriStringVar string, FlagsVar UriFlags) (*Uri, error) {
802809 var cerr *Error
803810
804811 cret := xUriParse(UriStringVar, FlagsVar, &cerr)
812+
805813 if cerr == nil {
806814 return cret, nil
807815 }
@@ -839,6 +847,7 @@ func UriParseParams(ParamsVar string, LengthVar int, SeparatorsVar string, Flags
839847 var cerr *Error
840848
841849 cret := xUriParseParams(ParamsVar, LengthVar, SeparatorsVar, FlagsVar, &cerr)
850+
842851 if cerr == nil {
843852 return cret, nil
844853 }
@@ -858,6 +867,7 @@ var xUriParseScheme func(string) string
858867 func UriParseScheme(UriVar string) string {
859868
860869 cret := xUriParseScheme(UriVar)
870+
861871 return cret
862872 }
863873
@@ -876,6 +886,7 @@ var xUriPeekScheme func(string) string
876886 func UriPeekScheme(UriVar string) string {
877887
878888 cret := xUriPeekScheme(UriVar)
889+
879890 return cret
880891 }
881892
@@ -895,6 +906,7 @@ func UriResolveRelative(BaseUriStringVar *string, UriRefVar string, FlagsVar Uri
895906 defer core.GFreeNullable(BaseUriStringVarPtr)
896907
897908 cret := xUriResolveRelative(BaseUriStringVarPtr, UriRefVar, FlagsVar, &cerr)
909+
898910 if cerr == nil {
899911 return cret, nil
900912 }
@@ -924,6 +936,7 @@ func UriSplit(UriRefVar string, FlagsVar UriFlags, SchemeVar *string, UserinfoVa
924936 var cerr *Error
925937
926938 cret := xUriSplit(UriRefVar, FlagsVar, SchemeVar, UserinfoVar, HostVar, PortVar, PathVar, QueryVar, FragmentVar, &cerr)
939+
927940 if cerr == nil {
928941 return cret, nil
929942 }
@@ -943,6 +956,7 @@ func UriSplitNetwork(UriStringVar string, FlagsVar UriFlags, SchemeVar *string,
943956 var cerr *Error
944957
945958 cret := xUriSplitNetwork(UriStringVar, FlagsVar, SchemeVar, HostVar, PortVar, &cerr)
959+
946960 if cerr == nil {
947961 return cret, nil
948962 }
@@ -967,6 +981,7 @@ func UriSplitWithUser(UriRefVar string, FlagsVar UriFlags, SchemeVar *string, Us
967981 var cerr *Error
968982
969983 cret := xUriSplitWithUser(UriRefVar, FlagsVar, SchemeVar, UserVar, PasswordVar, AuthParamsVar, HostVar, PortVar, PathVar, QueryVar, FragmentVar, &cerr)
984+
970985 if cerr == nil {
971986 return cret, nil
972987 }
@@ -993,6 +1008,7 @@ func UriUnescapeBytes(EscapedStringVar string, LengthVar int, IllegalCharactersV
9931008 defer core.GFreeNullable(IllegalCharactersVarPtr)
9941009
9951010 cret := xUriUnescapeBytes(EscapedStringVar, LengthVar, IllegalCharactersVarPtr, &cerr)
1011+
9961012 if cerr == nil {
9971013 return cret, nil
9981014 }
@@ -1024,6 +1040,7 @@ func UriUnescapeSegment(EscapedStringVar *string, EscapedStringEndVar *string, I
10241040 defer core.GFreeNullable(IllegalCharactersVarPtr)
10251041
10261042 cret := xUriUnescapeSegment(EscapedStringVarPtr, EscapedStringEndVarPtr, IllegalCharactersVarPtr)
1043+
10271044 return cret
10281045 }
10291046
@@ -1042,6 +1059,7 @@ func UriUnescapeString(EscapedStringVar string, IllegalCharactersVar *string) st
10421059 defer core.GFreeNullable(IllegalCharactersVarPtr)
10431060
10441061 cret := xUriUnescapeString(EscapedStringVar, IllegalCharactersVarPtr)
1062+
10451063 return cret
10461064 }
10471065
M v4/glib/gutils.go +26 -0
@@ -149,6 +149,7 @@ var xBitNthLsf func(uint, int) int
149149 func BitNthLsf(MaskVar uint, NthBitVar int) int {
150150
151151 cret := xBitNthLsf(MaskVar, NthBitVar)
152+
152153 return cret
153154 }
154155
@@ -162,6 +163,7 @@ var xBitNthMsf func(uint, int) int
162163 func BitNthMsf(MaskVar uint, NthBitVar int) int {
163164
164165 cret := xBitNthMsf(MaskVar, NthBitVar)
166+
165167 return cret
166168 }
167169
@@ -172,6 +174,7 @@ var xBitStorage func(uint) uint
172174 func BitStorage(NumberVar uint) uint {
173175
174176 cret := xBitStorage(NumberVar)
177+
175178 return cret
176179 }
177180
@@ -197,6 +200,7 @@ var xFindProgramInPath func(string) string
197200 func FindProgramInPath(ProgramVar string) string {
198201
199202 cret := xFindProgramInPath(ProgramVar)
203+
200204 return cret
201205 }
202206
@@ -218,6 +222,7 @@ var xFormatSize func(uint64) string
218222 func FormatSize(SizeVar uint64) string {
219223
220224 cret := xFormatSize(SizeVar)
225+
221226 return cret
222227 }
223228
@@ -235,6 +240,7 @@ var xFormatSizeForDisplay func(int64) string
235240 func FormatSizeForDisplay(SizeVar int64) string {
236241
237242 cret := xFormatSizeForDisplay(SizeVar)
243+
238244 return cret
239245 }
240246
@@ -247,6 +253,7 @@ var xFormatSizeFull func(uint64, FormatSizeFlags) string
247253 func FormatSizeFull(SizeVar uint64, FlagsVar FormatSizeFlags) string {
248254
249255 cret := xFormatSizeFull(SizeVar, FlagsVar)
256+
250257 return cret
251258 }
252259
@@ -262,6 +269,7 @@ var xGetApplicationName func() string
262269 func GetApplicationName() string {
263270
264271 cret := xGetApplicationName()
272+
265273 return cret
266274 }
267275
@@ -290,6 +298,7 @@ var xGetHomeDir func() string
290298 func GetHomeDir() string {
291299
292300 cret := xGetHomeDir()
301+
293302 return cret
294303 }
295304
@@ -312,6 +321,7 @@ var xGetHostName func() string
312321 func GetHostName() string {
313322
314323 cret := xGetHostName()
324+
315325 return cret
316326 }
317327
@@ -328,6 +338,7 @@ var xGetOsInfo func(string) string
328338 func GetOsInfo(KeyNameVar string) string {
329339
330340 cret := xGetOsInfo(KeyNameVar)
341+
331342 return cret
332343 }
333344
@@ -344,6 +355,7 @@ var xGetPrgname func() string
344355 func GetPrgname() string {
345356
346357 cret := xGetPrgname()
358+
347359 return cret
348360 }
349361
@@ -357,6 +369,7 @@ var xGetRealName func() string
357369 func GetRealName() string {
358370
359371 cret := xGetRealName()
372+
360373 return cret
361374 }
362375
@@ -385,6 +398,7 @@ var xGetSystemConfigDirs func() []string
385398 func GetSystemConfigDirs() []string {
386399
387400 cret := xGetSystemConfigDirs()
401+
388402 return cret
389403 }
390404
@@ -427,6 +441,7 @@ var xGetSystemDataDirs func() []string
427441 func GetSystemDataDirs() []string {
428442
429443 cret := xGetSystemDataDirs()
444+
430445 return cret
431446 }
432447
@@ -449,6 +464,7 @@ var xGetTmpDir func() string
449464 func GetTmpDir() string {
450465
451466 cret := xGetTmpDir()
467+
452468 return cret
453469 }
454470
@@ -473,6 +489,7 @@ var xGetUserCacheDir func() string
473489 func GetUserCacheDir() string {
474490
475491 cret := xGetUserCacheDir()
492+
476493 return cret
477494 }
478495
@@ -498,6 +515,7 @@ var xGetUserConfigDir func() string
498515 func GetUserConfigDir() string {
499516
500517 cret := xGetUserConfigDir()
518+
501519 return cret
502520 }
503521
@@ -523,6 +541,7 @@ var xGetUserDataDir func() string
523541 func GetUserDataDir() string {
524542
525543 cret := xGetUserDataDir()
544+
526545 return cret
527546 }
528547
@@ -535,6 +554,7 @@ var xGetUserName func() string
535554 func GetUserName() string {
536555
537556 cret := xGetUserName()
557+
538558 return cret
539559 }
540560
@@ -556,6 +576,7 @@ var xGetUserRuntimeDir func() string
556576 func GetUserRuntimeDir() string {
557577
558578 cret := xGetUserRuntimeDir()
579+
559580 return cret
560581 }
561582
@@ -574,6 +595,7 @@ var xGetUserSpecialDir func(UserDirectory) string
574595 func GetUserSpecialDir(DirectoryVar UserDirectory) string {
575596
576597 cret := xGetUserSpecialDir(DirectoryVar)
598+
577599 return cret
578600 }
579601
@@ -599,6 +621,7 @@ var xGetUserStateDir func() string
599621 func GetUserStateDir() string {
600622
601623 cret := xGetUserStateDir()
624+
602625 return cret
603626 }
604627
@@ -631,6 +654,7 @@ func ParseDebugString(StringVar *string, KeysVar []DebugKey, NkeysVar uint) uint
631654 defer core.GFreeNullable(StringVarPtr)
632655
633656 cret := xParseDebugString(StringVarPtr, KeysVar, NkeysVar)
657+
634658 return cret
635659 }
636660
@@ -714,6 +738,7 @@ var xSnprintf func(string, uint, string, ...interface{}) int
714738 func Snprintf(StringVar string, NVar uint, FormatVar string, varArgs ...interface{}) int {
715739
716740 cret := xSnprintf(StringVar, NVar, FormatVar, varArgs...)
741+
717742 return cret
718743 }
719744
@@ -739,6 +764,7 @@ var xVsnprintf func(string, uint, string, []interface{}) int
739764 func Vsnprintf(StringVar string, NVar uint, FormatVar string, ArgsVar []interface{}) int {
740765
741766 cret := xVsnprintf(StringVar, NVar, FormatVar, ArgsVar)
767+
742768 return cret
743769 }
744770
M v4/glib/guuid.go +2 -0
@@ -19,6 +19,7 @@ var xUuidStringIsValid func(string) bool
1919 func UuidStringIsValid(StrVar string) bool {
2020
2121 cret := xUuidStringIsValid(StrVar)
22+
2223 return cret
2324 }
2425
@@ -30,6 +31,7 @@ var xUuidStringRandom func() string
3031 func UuidStringRandom() string {
3132
3233 cret := xUuidStringRandom()
34+
3335 return cret
3436 }
3537
M v4/glib/gvariant-parser.go +1 -0
@@ -12,6 +12,7 @@ var xVariantParserGetErrorQuark func() Quark
1212 func VariantParserGetErrorQuark() Quark {
1313
1414 cret := xVariantParserGetErrorQuark()
15+
1516 return cret
1617 }
1718
M v4/glib/gvariant.go +4 -0
@@ -2735,6 +2735,7 @@ var xVariantIsObjectPath func(string) bool
27352735 func VariantIsObjectPath(StringVar string) bool {
27362736
27372737 cret := xVariantIsObjectPath(StringVar)
2738+
27382739 return cret
27392740 }
27402741
@@ -2749,6 +2750,7 @@ var xVariantIsSignature func(string) bool
27492750 func VariantIsSignature(StringVar string) bool {
27502751
27512752 cret := xVariantIsSignature(StringVar)
2753+
27522754 return cret
27532755 }
27542756
@@ -2800,6 +2802,7 @@ func VariantParse(TypeVar *VariantType, TextVar string, LimitVar *string, Endptr
28002802 defer core.GFreeNullable(EndptrVarPtr)
28012803
28022804 cret := xVariantParse(TypeVar, TextVar, LimitVarPtr, EndptrVarPtr, &cerr)
2805+
28032806 if cerr == nil {
28042807 return cret, nil
28052808 }
@@ -2845,6 +2848,7 @@ var xVariantParseErrorPrintContext func(*Error, string) string
28452848 func VariantParseErrorPrintContext(ErrorVar *Error, SourceStrVar string) string {
28462849
28472850 cret := xVariantParseErrorPrintContext(ErrorVar, SourceStrVar)
2851+
28482852 return cret
28492853 }
28502854
M v4/glib/gvarianttype.go +4 -0
@@ -601,6 +601,7 @@ var xVariantTypeChecked func(string) *VariantType
601601 func VariantTypeChecked(TypeStringVar string) *VariantType {
602602
603603 cret := xVariantTypeChecked(TypeStringVar)
604+
604605 return cret
605606 }
606607
@@ -609,6 +610,7 @@ var xVariantTypeStringGetDepth func(string) uint
609610 func VariantTypeStringGetDepth(TypeStringVar string) uint {
610611
611612 cret := xVariantTypeStringGetDepth(TypeStringVar)
613+
612614 return cret
613615 }
614616
@@ -622,6 +624,7 @@ var xVariantTypeStringIsValid func(string) bool
622624 func VariantTypeStringIsValid(TypeStringVar string) bool {
623625
624626 cret := xVariantTypeStringIsValid(TypeStringVar)
627+
625628 return cret
626629 }
627630
@@ -647,6 +650,7 @@ func VariantTypeStringScan(StringVar string, LimitVar *string, EndptrVar *string
647650 defer core.GFreeNullable(LimitVarPtr)
648651
649652 cret := xVariantTypeStringScan(StringVar, LimitVarPtr, EndptrVar)
653+
650654 return cret
651655 }
652656
M v4/glib/gversion.go +1 -0
@@ -26,6 +26,7 @@ var xCheckVersion func(uint, uint, uint) string
2626 func CheckVersion(RequiredMajorVar uint, RequiredMinorVar uint, RequiredMicroVar uint) string {
2727
2828 cret := xCheckVersion(RequiredMajorVar, RequiredMinorVar, RequiredMicroVar)
29+
2930 return cret
3031 }
3132
M v4/glib/main.go +16 -0
@@ -11,6 +11,7 @@ var xBookmarkFileErrorQuark func() Quark
1111 func BookmarkFileErrorQuark() Quark {
1212
1313 cret := xBookmarkFileErrorQuark()
14+
1415 return cret
1516 }
1617
@@ -19,6 +20,7 @@ var xConvertErrorQuark func() Quark
1920 func ConvertErrorQuark() Quark {
2021
2122 cret := xConvertErrorQuark()
23+
2224 return cret
2325 }
2426
@@ -27,6 +29,7 @@ var xFileErrorQuark func() Quark
2729 func FileErrorQuark() Quark {
2830
2931 cret := xFileErrorQuark()
32+
3033 return cret
3134 }
3235
@@ -35,6 +38,7 @@ var xIoChannelErrorQuark func() Quark
3538 func IoChannelErrorQuark() Quark {
3639
3740 cret := xIoChannelErrorQuark()
41+
3842 return cret
3943 }
4044
@@ -43,6 +47,7 @@ var xKeyFileErrorQuark func() Quark
4347 func KeyFileErrorQuark() Quark {
4448
4549 cret := xKeyFileErrorQuark()
50+
4651 return cret
4752 }
4853
@@ -51,6 +56,7 @@ var xMarkupErrorQuark func() Quark
5156 func MarkupErrorQuark() Quark {
5257
5358 cret := xMarkupErrorQuark()
59+
5460 return cret
5561 }
5662
@@ -59,6 +65,7 @@ var xNumberParserErrorQuark func() Quark
5965 func NumberParserErrorQuark() Quark {
6066
6167 cret := xNumberParserErrorQuark()
68+
6269 return cret
6370 }
6471
@@ -67,6 +74,7 @@ var xOptionErrorQuark func() Quark
6774 func OptionErrorQuark() Quark {
6875
6976 cret := xOptionErrorQuark()
77+
7078 return cret
7179 }
7280
@@ -75,6 +83,7 @@ var xRegexErrorQuark func() Quark
7583 func RegexErrorQuark() Quark {
7684
7785 cret := xRegexErrorQuark()
86+
7887 return cret
7988 }
8089
@@ -83,6 +92,7 @@ var xShellErrorQuark func() Quark
8392 func ShellErrorQuark() Quark {
8493
8594 cret := xShellErrorQuark()
95+
8696 return cret
8797 }
8898
@@ -91,6 +101,7 @@ var xSpawnErrorQuark func() Quark
91101 func SpawnErrorQuark() Quark {
92102
93103 cret := xSpawnErrorQuark()
104+
94105 return cret
95106 }
96107
@@ -99,6 +110,7 @@ var xSpawnExitErrorQuark func() Quark
99110 func SpawnExitErrorQuark() Quark {
100111
101112 cret := xSpawnExitErrorQuark()
113+
102114 return cret
103115 }
104116
@@ -107,6 +119,7 @@ var xThreadErrorQuark func() Quark
107119 func ThreadErrorQuark() Quark {
108120
109121 cret := xThreadErrorQuark()
122+
110123 return cret
111124 }
112125
@@ -115,6 +128,7 @@ var xUnixErrorQuark func() Quark
115128 func UnixErrorQuark() Quark {
116129
117130 cret := xUnixErrorQuark()
131+
118132 return cret
119133 }
120134
@@ -123,6 +137,7 @@ var xUriErrorQuark func() Quark
123137 func UriErrorQuark() Quark {
124138
125139 cret := xUriErrorQuark()
140+
126141 return cret
127142 }
128143
@@ -131,6 +146,7 @@ var xVariantParseErrorQuark func() Quark
131146 func VariantParseErrorQuark() Quark {
132147
133148 cret := xVariantParseErrorQuark()
149+
134150 return cret
135151 }
136152
M v4/glib/more.go +150 -0
@@ -187,6 +187,152 @@ func RemoveCallbackBySource(sourceID uint) {
187187 callbacks.Unlock()
188188 }
189189
190+// ---------------------------------------------------------------------------
191+// Source callback trampoline
192+//
193+// GLib source functions (IdleAdd, TimeoutAdd, etc.) previously allocated a new
194+// purego callback slot for every invocation. purego has a hard limit of 2000
195+// slots, so long-running programs that schedule many one-shot idle/timeout
196+// callbacks would exhaust the pool and panic.
197+//
198+// The trampoline uses a single purego callback that dispatches through a
199+// Go-side map keyed by an opaque ID passed as GLib's user_data pointer.
200+// This means all IdleAdd/TimeoutAdd calls share ONE purego slot regardless
201+// of how many are outstanding.
202+// ---------------------------------------------------------------------------
203+
204+// sourceEntry holds a registered GLib source callback.
205+type sourceEntry struct {
206+ fn SourceFunc
207+ once bool // if true, automatically remove after first call (SourceOnceFunc semantics)
208+}
209+
210+var sourceTrampolines = struct {
211+ sync.Mutex
212+ nextID uintptr
213+ funcs map[uintptr]*sourceEntry
214+ sourceToDataID map[uint]uintptr // GLib source ID → trampoline data ID
215+}{
216+ funcs: make(map[uintptr]*sourceEntry),
217+ sourceToDataID: make(map[uint]uintptr),
218+}
219+
220+// sourceTrampolineCb is the single purego callback shared by all source functions.
221+// GLib calls it with the user_data we provided (our map key).
222+var sourceTrampolineCb uintptr
223+
224+// sourceTrampolineOnceCb is the single purego callback for SourceOnceFunc sources
225+// (IdleAddOnce, TimeoutAddOnce). These have signature func(uintptr) with no return.
226+var sourceTrampolineOnceCb uintptr
227+
228+func initSourceTrampoline() {
229+ fn := func(id uintptr) uintptr {
230+ sourceTrampolines.Lock()
231+ entry, ok := sourceTrampolines.funcs[id]
232+ if !ok {
233+ sourceTrampolines.Unlock()
234+ return 0 // SOURCE_REMOVE — entry already cleaned up (e.g. by SourceRemove)
235+ }
236+ cb := entry.fn
237+ sourceTrampolines.Unlock()
238+
239+ result := cb(0)
240+
241+ if !result {
242+ sourceTrampolines.Lock()
243+ delete(sourceTrampolines.funcs, id)
244+ // Also clean up the reverse mapping (source ID → data ID).
245+ for sid, did := range sourceTrampolines.sourceToDataID {
246+ if did == id {
247+ delete(sourceTrampolines.sourceToDataID, sid)
248+ break
249+ }
250+ }
251+ sourceTrampolines.Unlock()
252+ }
253+ if result {
254+ return 1
255+ }
256+ return 0
257+ }
258+ sourceTrampolineCb = purego.NewCallback(fn)
259+
260+ onceFn := func(id uintptr) {
261+ sourceTrampolines.Lock()
262+ entry, ok := sourceTrampolines.funcs[id]
263+ if !ok {
264+ sourceTrampolines.Unlock()
265+ return
266+ }
267+ cb := entry.fn
268+ delete(sourceTrampolines.funcs, id)
269+ // Also clean up the reverse mapping.
270+ for sid, did := range sourceTrampolines.sourceToDataID {
271+ if did == id {
272+ delete(sourceTrampolines.sourceToDataID, sid)
273+ break
274+ }
275+ }
276+ sourceTrampolines.Unlock()
277+
278+ cb(0)
279+ }
280+ sourceTrampolineOnceCb = purego.NewCallback(onceFn)
281+}
282+
283+// registerSourceFunc stores a SourceFunc in the trampoline map and returns
284+// the trampoline callback pointer and the user_data key.
285+func registerSourceFunc(fn *SourceFunc, once bool) (trampolineCb uintptr, userData uintptr) {
286+ if fn == nil {
287+ return 0, 0
288+ }
289+ sourceTrampolines.Lock()
290+ sourceTrampolines.nextID++
291+ id := sourceTrampolines.nextID
292+ sourceTrampolines.funcs[id] = &sourceEntry{fn: *fn, once: once}
293+ sourceTrampolines.Unlock()
294+ if once {
295+ return sourceTrampolineOnceCb, id
296+ }
297+ return sourceTrampolineCb, id
298+}
299+
300+// registerSourceOnceFunc stores a SourceOnceFunc in the trampoline map and
301+// returns the trampoline callback pointer and the user_data key.
302+func registerSourceOnceFunc(fn *SourceOnceFunc) (trampolineCb uintptr, userData uintptr) {
303+ if fn == nil {
304+ return 0, 0
305+ }
306+ // Wrap SourceOnceFunc as SourceFunc so the entry type is uniform.
307+ wrapped := SourceFunc(func(data uintptr) bool {
308+ (*fn)(data)
309+ return false
310+ })
311+ return registerSourceFunc(&wrapped, true)
312+}
313+
314+// saveSourceTrampolineMapping records the GLib source ID → trampoline data ID
315+// mapping so that SourceRemove can clean up the trampoline entry.
316+func saveSourceTrampolineMapping(sourceID uint, dataID uintptr) {
317+ if sourceID == 0 {
318+ return
319+ }
320+ sourceTrampolines.Lock()
321+ sourceTrampolines.sourceToDataID[sourceID] = dataID
322+ sourceTrampolines.Unlock()
323+}
324+
325+// removeSourceTrampolineBySourceID cleans up trampoline state when a GLib
326+// source is removed via SourceRemove (before the callback fires).
327+func removeSourceTrampolineBySourceID(sourceID uint) {
328+ sourceTrampolines.Lock()
329+ if dataID, ok := sourceTrampolines.sourceToDataID[sourceID]; ok {
330+ delete(sourceTrampolines.sourceToDataID, sourceID)
331+ delete(sourceTrampolines.funcs, dataID)
332+ }
333+ sourceTrampolines.Unlock()
334+}
335+
190336 // UnrefCallbackValue unreferences the provided callback by reflect.value to free a purego slot
191337 //
192338 // NOTE: Windows does not support unreferencing callbacks, so on that platform this operation is
@@ -211,6 +357,10 @@ func NewCallbackNullable(fn interface{}) uintptr {
211357 return NewCallback(fn)
212358 }
213359
360+func init() {
361+ initSourceTrampoline()
362+}
363+
214364 func (e *Error) Error() string {
215365 return fmt.Sprintf("Gtk reported an error with message: '%s', domain: '%v' and code: '%v'", e.MessageGo(), e.Domain, e.Code)
216366 }

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