diff --git a/src/BizHawk.Common/Util.cs b/src/BizHawk.Common/Util.cs index ee2d2ed43b..566b1b580e 100644 --- a/src/BizHawk.Common/Util.cs +++ b/src/BizHawk.Common/Util.cs @@ -287,24 +287,24 @@ namespace BizHawk.Common } /// creates span over octets starting at + /// returns empty span if is the null pointer () [MethodImpl(MethodImplOptions.AggressiveInlining)] public static unsafe Span UnsafeSpanFromPointer(IntPtr ptr, int length) - { - return new(pointer: ptr.ToPointer(), length: length); - } + => ptr == IntPtr.Zero ? [ ] : new(pointer: ptr.ToPointer(), length: length); #if false // unused /// /// creates span over * sizeof() octets /// starting at /// - /// uses native endianness and must be aligned (else UB) + /// + /// uses native endianness and must be aligned (else UB); + /// returns empty span if is the null pointer () + /// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static unsafe Span UnsafeSpanFromPointerAligned(IntPtr ptr, int count) where T : unmanaged - { - return new(pointer: ptr.ToPointer(), length: count * sizeof(T)); - } + => ptr == IntPtr.Zero ? [ ] : new(pointer: ptr.ToPointer(), length: count * sizeof(T)); #endif public static void WriteByteBuffer(this BinaryWriter bw, byte[]? data) diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/3DS/Encore.IMemoryDomains.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/3DS/Encore.IMemoryDomains.cs index 31e14a48d7..ffc69326ec 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/3DS/Encore.IMemoryDomains.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/3DS/Encore.IMemoryDomains.cs @@ -72,10 +72,9 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.N3DS } private Span GetPage(uint addr) - { - var pagePointer = _core.Encore_GetPagePointer(_context, addr); - return pagePointer == IntPtr.Zero ? [ ] : Util.UnsafeSpanFromPointer(pagePointer, (int)(ENCORE_PAGE_SIZE - (addr & ENCORE_PAGE_MASK))); - } + => Util.UnsafeSpanFromPointer( + ptr: _core.Encore_GetPagePointer(_context, addr: addr), + length: (int) (ENCORE_PAGE_SIZE - (addr & ENCORE_PAGE_MASK))); public override byte PeekByte(long addr) {