Added Release method to CFTypeRef

This commit is contained in:
Cristian Maglie
2018-08-19 18:40:47 +02:00
parent ee147ffce4
commit 71fe05aedd

View File

@@ -131,6 +131,12 @@ func (ref C.CFStringRef) Release() {
C.CFRelease(C.CFTypeRef(ref)) C.CFRelease(C.CFTypeRef(ref))
} }
// CFTypeRef
func (ref C.CFTypeRef) Release() {
C.CFRelease(ref)
}
// io_registry_entry_t // io_registry_entry_t
func (me *C.io_registry_entry_t) GetParent(plane string) (C.io_registry_entry_t, error) { 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 { if property == 0 {
return "", errors.New("Property not found: " + key) return "", errors.New("Property not found: " + key)
} }
defer C.CFRelease(property) defer property.Release()
if ptr := C.CFStringGetCStringPtr(C.CFStringRef(property), 0); ptr != nil { if ptr := C.CFStringGetCStringPtr(C.CFStringRef(property), 0); ptr != nil {
return C.GoString(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 { if property == 0 {
return 0, errors.New("Property not found: " + key) return 0, errors.New("Property not found: " + key)
} }
defer C.CFRelease(property) defer property.Release()
var res int var res int
if C.CFNumberGetValue((C.CFNumberRef)(property), intType, unsafe.Pointer(&res)) != C.true { 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) return res, fmt.Errorf("Property '%s' can't be converted or has been truncated", key)