From f02f61774f07f432a3c24d7d34e6f502793c6d38 Mon Sep 17 00:00:00 2001 From: Kei Kamikawa Date: Sun, 22 Oct 2023 20:50:26 +0900 Subject: [PATCH] added ValidateSaveRestoreSupport in Save/Restore methods --- virtualization.go | 3 +++ virtualization_arm64.go | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/virtualization.go b/virtualization.go index 4fbd6f1..8d0a2c9 100644 --- a/virtualization.go +++ b/virtualization.go @@ -92,6 +92,8 @@ type VirtualMachine struct { machineState *machineState finalizeOnce sync.Once + + config *VirtualMachineConfiguration } type machineState struct { @@ -134,6 +136,7 @@ func NewVirtualMachine(config *VirtualMachineConfiguration) (*VirtualMachine, er ), dispatchQueue: dispatchQueue, machineState: machineState, + config: config, } objc.SetFinalizer(v, func(self *VirtualMachine) { diff --git a/virtualization_arm64.go b/virtualization_arm64.go index 1b99dfc..53ce06a 100644 --- a/virtualization_arm64.go +++ b/virtualization_arm64.go @@ -598,6 +598,9 @@ func (v *VirtualMachine) SaveMachineStateToPath(saveFilePath string) error { if err := macOSAvailable(14); err != nil { return err } + if _, err := v.config.ValidateSaveRestoreSupport(); err != nil { + return err + } cs := charWithGoString(saveFilePath) defer cs.Free() h, errCh := makeHandler() @@ -629,6 +632,9 @@ func (v *VirtualMachine) RestoreMachineStateFromURL(saveFilePath string) error { if err := macOSAvailable(14); err != nil { return err } + if _, err := v.config.ValidateSaveRestoreSupport(); err != nil { + return err + } cs := charWithGoString(saveFilePath) defer cs.Free() h, errCh := makeHandler()