From 9dfbc38a501c9d4585303853b763f72eb9dbafc9 Mon Sep 17 00:00:00 2001
From: Rika Ichinose <rrunewalsh@gmail.com>
Date: Fri, 29 Nov 2024 09:42:09 +0300
Subject: [PATCH] =?UTF-8?q?Don=E2=80=99t=20use=20explicit=20Move=20in=20Ex?=
 =?UTF-8?q?tract<T>=20and=20Swap<T>.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 rtl/objpas/sysutils/sysutils.inc | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/rtl/objpas/sysutils/sysutils.inc b/rtl/objpas/sysutils/sysutils.inc
index e95337959c..a97f325660 100644
--- a/rtl/objpas/sysutils/sysutils.inc
+++ b/rtl/objpas/sysutils/sysutils.inc
@@ -914,19 +914,23 @@ begin
 end;
 
 generic function Extract<T>(var from: T) :T;
+type
+  RawT = array[0 .. sizeof(T) - 1] of byte;
 begin
   Finalize(Result);
-  Move(from,Result,SizeOf(T));
+  RawT(Result):=RawT(from);
   Initialize(from);
 end;
 
 generic procedure Swap<T>(var lhs,rhs: T);
+type
+  RawT = array[0 .. sizeof(T) - 1] of byte;
 var
-  tmp:array[0..sizeof(T)-1] of Byte;
+  tmp:RawT;
 begin
-  Move(lhs,tmp,sizeof(T));
-  Move(rhs,lhs,sizeof(T));
-  Move(tmp,rhs,sizeof(T));
+  tmp:=RawT(lhs);
+  RawT(lhs):=RawT(rhs);
+  RawT(rhs):=tmp;
 end;
 
 Function ArrayOfConstToStrArray(const Args: array of const) : TUTF8StringDynArray;