From 33099d098f22040bc2c67e966a2b1e893a7345f9 Mon Sep 17 00:00:00 2001 From: Sergey Stepanov Date: Sat, 8 Apr 2023 20:29:24 +0300 Subject: [PATCH] Use new page-segmentation friendly unsafe.Slice for mem restore --- pkg/worker/emulator/libretro/nanoarch.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/pkg/worker/emulator/libretro/nanoarch.go b/pkg/worker/emulator/libretro/nanoarch.go index d0f35203..337d1f3f 100644 --- a/pkg/worker/emulator/libretro/nanoarch.go +++ b/pkg/worker/emulator/libretro/nanoarch.go @@ -745,12 +745,10 @@ func getSaveRAM() state { // restoreSaveRAM restores game save RAM. func restoreSaveRAM(st state) { - if len(st) == 0 { - return - } - if memory := ptSaveRAM(); memory != nil { - sram := (*[1 << 30]byte)(memory.ptr)[:memory.size:memory.size] - copy(sram, st) + if len(st) > 0 { + if memory := ptSaveRAM(); memory != nil { + copy(unsafe.Slice((*byte)(memory.ptr), memory.size), st) + } } }