Factored out C.IORegistryEntryCreateCFProperty method

This commit is contained in:
Cristian Maglie
2018-08-19 18:51:07 +02:00
parent 6085517433
commit 338c399730

View File

@@ -151,12 +151,20 @@ func (me *C.io_registry_entry_t) GetParent(plane string) (C.io_registry_entry_t,
return parent, nil return parent, nil
} }
func (me *C.io_registry_entry_t) GetStringProperty(key string) (string, error) { func (me *C.io_registry_entry_t) CreateCFProperty(key string) (C.CFTypeRef, error) {
k := cfStringCreateWithString(key) k := cfStringCreateWithString(key)
defer k.Release() defer k.Release()
property := C.IORegistryEntryCreateCFProperty(*me, k, C.kCFAllocatorDefault, 0) property := C.IORegistryEntryCreateCFProperty(*me, k, C.kCFAllocatorDefault, 0)
if property == 0 { if property == 0 {
return "", errors.New("Property not found: " + key) return 0, errors.New("Property not found: " + key)
}
return property, nil
}
func (me *C.io_registry_entry_t) GetStringProperty(key string) (string, error) {
property, err := me.CreateCFProperty(key)
if err != nil {
return "", err
} }
defer property.Release() defer property.Release()
@@ -173,11 +181,9 @@ 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) { func (me *C.io_registry_entry_t) GetIntProperty(key string, intType C.CFNumberType) (int, error) {
k := cfStringCreateWithString(key) property, err := me.CreateCFProperty(key)
defer k.Release() if err != nil {
property := C.IORegistryEntryCreateCFProperty(*me, k, C.kCFAllocatorDefault, 0) return 0, err
if property == 0 {
return 0, errors.New("Property not found: " + key)
} }
defer property.Release() defer property.Release()
var res int var res int