func unwrap()

in macos/wrapper.go [102:117]


func unwrap(w *C.Wrapper) (res []byte, err error) {
	defer C.free(unsafe.Pointer(w))
	if w == nil {
		return nil, errors.New("tried to unwrap empty response")
	}
	if w.error != nil {
		msg := C.GoString(w.error)
		err = errors.New(msg)
		C.free(unsafe.Pointer(w.error))
	}
	if w.buf != nil {
		res = C.GoBytes(unsafe.Pointer(w.buf), C.int(w.size))
		C.free(unsafe.Pointer(w.buf))
	}
	return
}