From 4ab333a7ce933d5204944852ab17a4fabe88c364 Mon Sep 17 00:00:00 2001 From: Richard Wei Date: Thu, 24 Feb 2022 15:02:41 -0800 Subject: [PATCH] Perform unaligned store properly in 'CaptureStructure.encode(to:)`. --- Sources/_MatchingEngine/Regex/Parse/CaptureStructure.swift | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Sources/_MatchingEngine/Regex/Parse/CaptureStructure.swift b/Sources/_MatchingEngine/Regex/Parse/CaptureStructure.swift index 68c3ce34..7faf4f5f 100644 --- a/Sources/_MatchingEngine/Regex/Parse/CaptureStructure.swift +++ b/Sources/_MatchingEngine/Regex/Parse/CaptureStructure.swift @@ -331,9 +331,10 @@ extension CaptureStructure { assert( buffer.count >= MemoryLayout.stride + MemoryLayout.stride) - // Encode version. - buffer.storeBytes( - of: Self.currentSerializationVersion, as: SerializationVersion.self) + // Encode version (unaligned store). + withUnsafeBytes(of: Self.currentSerializationVersion) { + buffer.copyMemory(from: $0) + } // Encode contents. var offset = MemoryLayout.stride /// Appends a code to the buffer, advancing the offset to the next position.