From 7e426963def0b7358468b974633cd0c500a70a47 Mon Sep 17 00:00:00 2001 From: RSWilli Date: Mon, 25 Nov 2024 23:58:18 +0100 Subject: [PATCH] don't dereference glib.Value pointers, to not risk triggering the finalizer --- gst/gst_values.go | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/gst/gst_values.go b/gst/gst_values.go index 1e50597..20013cb 100644 --- a/gst/gst_values.go +++ b/gst/gst_values.go @@ -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() }