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;