From 71fe05aedd261c89c5adbd6f7432130238cf9de1 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Sun, 19 Aug 2018 18:40:47 +0200 Subject: [PATCH] Added Release method to CFTypeRef --- enumerator/usb_go1.10_darwin.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/enumerator/usb_go1.10_darwin.go b/enumerator/usb_go1.10_darwin.go index 57ba106..e96901e 100644 --- a/enumerator/usb_go1.10_darwin.go +++ b/enumerator/usb_go1.10_darwin.go @@ -131,6 +131,12 @@ func (ref C.CFStringRef) Release() { C.CFRelease(C.CFTypeRef(ref)) } +// CFTypeRef + +func (ref C.CFTypeRef) Release() { + C.CFRelease(ref) +} + // io_registry_entry_t func (me *C.io_registry_entry_t) GetParent(plane string) (C.io_registry_entry_t, error) { @@ -151,7 +157,7 @@ func (me *C.io_registry_entry_t) GetStringProperty(key string) (string, error) { if property == 0 { return "", errors.New("Property not found: " + key) } - defer C.CFRelease(property) + defer property.Release() if ptr := C.CFStringGetCStringPtr(C.CFStringRef(property), 0); ptr != nil { return C.GoString(ptr), nil @@ -172,7 +178,7 @@ func (me *C.io_registry_entry_t) GetIntProperty(key string, intType C.CFNumberTy if property == 0 { return 0, errors.New("Property not found: " + key) } - defer C.CFRelease(property) + defer property.Release() var res int if C.CFNumberGetValue((C.CFNumberRef)(property), intType, unsafe.Pointer(&res)) != C.true { return res, fmt.Errorf("Property '%s' can't be converted or has been truncated", key)