From ee147ffce49faca927bce509eaaed3945b08a43b Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Sun, 19 Aug 2018 18:28:40 +0200 Subject: [PATCH] Added Release method to CFStringRef --- enumerator/usb_go1.10_darwin.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/enumerator/usb_go1.10_darwin.go b/enumerator/usb_go1.10_darwin.go index 4640918..57ba106 100644 --- a/enumerator/usb_go1.10_darwin.go +++ b/enumerator/usb_go1.10_darwin.go @@ -127,6 +127,10 @@ func cfStringCreateWithString(s string) C.CFStringRef { C.kCFAllocatorDefault, c, C.kCFStringEncodingMacRoman) } +func (ref C.CFStringRef) Release() { + C.CFRelease(C.CFTypeRef(ref)) +} + // io_registry_entry_t func (me *C.io_registry_entry_t) GetParent(plane string) (C.io_registry_entry_t, error) { @@ -142,7 +146,7 @@ func (me *C.io_registry_entry_t) GetParent(plane string) (C.io_registry_entry_t, func (me *C.io_registry_entry_t) GetStringProperty(key string) (string, error) { k := cfStringCreateWithString(key) - defer C.CFRelease(C.CFTypeRef(k)) + defer k.Release() property := C.IORegistryEntryCreateCFProperty(*me, k, C.kCFAllocatorDefault, 0) if property == 0 { return "", errors.New("Property not found: " + key) @@ -163,7 +167,7 @@ func (me *C.io_registry_entry_t) GetStringProperty(key string) (string, error) { func (me *C.io_registry_entry_t) GetIntProperty(key string, intType C.CFNumberType) (int, error) { k := cfStringCreateWithString(key) - defer C.CFRelease(C.CFTypeRef(k)) + defer k.Release() property := C.IORegistryEntryCreateCFProperty(*me, k, C.kCFAllocatorDefault, 0) if property == 0 { return 0, errors.New("Property not found: " + key)