don't dereference glib.Value pointers, to not risk triggering the finalizer

This commit is contained in:
RSWilli
2024-11-25 23:58:18 +01:00
parent 178d38ef69
commit 7e426963de

View File

@@ -634,8 +634,7 @@ func ValueList(ss []interface{}) *ValueListValue {
(*C.GValue)(unsafe.Pointer(val.GValue)),
)
}
out := ValueListValue(*v)
return &out
return (*ValueListValue)(v)
}
// Size returns the size of the list.
@@ -672,8 +671,8 @@ func (v *ValueListValue) Concat(value *ValueListValue) *ValueListValue {
(*C.GValue)(unsafe.Pointer(v.GValue)),
(*C.GValue)(unsafe.Pointer(value.GValue)),
)
o := ValueListValue(*out)
return &o
return (*ValueListValue)(out)
}
// Merge merges copies of value into this list. Values that are not of type TypeValueList are treated as
@@ -691,12 +690,12 @@ func (v *ValueListValue) Merge(value *ValueListValue) *ValueListValue {
(*C.GValue)(unsafe.Pointer(v.GValue)),
(*C.GValue)(unsafe.Pointer(value.GValue)),
)
o := ValueListValue(*out)
return &o
return (*ValueListValue)(out)
}
// ToGValue implements a glib.ValueTransformer.
func (v *ValueListValue) ToGValue() (*glib.Value, error) {
out := glib.Value(*v)
return &out, nil
val := (*glib.Value)(v)
return val.Copy()
}