diff --git a/objcutil.go b/objcutil.go index 8b49dd2e..f8370ab2 100644 --- a/objcutil.go +++ b/objcutil.go @@ -108,12 +108,12 @@ void* getNSArrayItem(void *ptr, int i) return [arr objectAtIndex:i]; } -const char *getUUID() + char *getUUID() { - const char *ret; + char *ret; @autoreleasepool { NSString *uuid = [[NSUUID UUID] UUIDString]; - ret = [uuid UTF8String]; + ret = strdup([uuid UTF8String]); } return ret; } diff --git a/virtualization.go b/virtualization.go index 5963c7fa..7a11c4c1 100644 --- a/virtualization.go +++ b/virtualization.go @@ -108,9 +108,9 @@ func NewVirtualMachine(config *VirtualMachineConfiguration) (*VirtualMachine, er return nil, ErrUnsupportedOSVersion } - // should not call Free function for this string. cs := getUUID() dispatchQueue := C.makeDispatchQueue(cs.CString()) + cs.Free() status := cgo.NewHandle(&machineStatus{ state: VirtualMachineState(0),