From 800bb3adc2362456af74494503cca82bd12c0598 Mon Sep 17 00:00:00 2001 From: nickysn Date: Fri, 19 Mar 2021 21:13:20 +0000 Subject: [PATCH] * instead of using discardresult, wrap the uniquestring functions in procedures, that are declared as inline git-svn-id: trunk@49016 - --- rtl/inc/astrings.inc | 9 +++++++++ rtl/inc/systemh.inc | 2 +- rtl/inc/ustringh.inc | 2 +- rtl/inc/ustrings.inc | 9 +++++++++ rtl/inc/wstringh.inc | 2 +- rtl/inc/wstrings.inc | 9 +++++++++ 6 files changed, 30 insertions(+), 3 deletions(-) diff --git a/rtl/inc/astrings.inc b/rtl/inc/astrings.inc index 5941c99fd3..cfd5d03c1e 100644 --- a/rtl/inc/astrings.inc +++ b/rtl/inc/astrings.inc @@ -872,6 +872,15 @@ end; {$endif FPC_SYSTEM_HAS_TRUELY_ANSISTR_UNIQUE} +Function fpc_ansistr_Unique_func(Var S : RawByteString): Pointer; external name 'FPC_ANSISTR_UNIQUE'; + + +Procedure UniqueString(var S : RawByteString);{$ifdef FPC_HAS_CPSTRING}rtlproc;{$endif FPC_HAS_CPSTRING}{$ifdef SYSTEMINLINE}inline;{$endif} + begin + fpc_ansistr_Unique_func(S); + end; + + {$ifndef FPC_SYSTEM_HAS_ANSISTR_UNIQUE} {$define FPC_SYSTEM_HAS_ANSISTR_UNIQUE} // MV: inline the basic checks for case that S is already unique. diff --git a/rtl/inc/systemh.inc b/rtl/inc/systemh.inc index e7bd9148cd..0f622a560d 100644 --- a/rtl/inc/systemh.inc +++ b/rtl/inc/systemh.inc @@ -1319,7 +1319,7 @@ function Pos(const substr : shortstring;c:char; Offset: Sizeint = 1): SizeInt; ****************************************************************************} {$ifdef FPC_HAS_FEATURE_ANSISTRINGS} -Procedure UniqueString(var S : RawByteString);{$ifdef FPC_HAS_CPSTRING}rtlproc;{$endif FPC_HAS_CPSTRING}external name 'FPC_ANSISTR_UNIQUE';{$ifndef VER3_2}discardresult;{$endif VER3_2} +Procedure UniqueString(var S : RawByteString);{$ifdef FPC_HAS_CPSTRING}rtlproc;{$endif FPC_HAS_CPSTRING}{$ifdef SYSTEMINLINE}inline;{$endif} Function Pos (const Substr : RawByteString; const Source : RawByteString; Offset: Sizeint = 1) : SizeInt; Function Pos (c : AnsiChar; const s : RawByteString; Offset: Sizeint = 1) : SizeInt; {$ifdef VER3_0} diff --git a/rtl/inc/ustringh.inc b/rtl/inc/ustringh.inc index 99a1829a57..500865d727 100644 --- a/rtl/inc/ustringh.inc +++ b/rtl/inc/ustringh.inc @@ -15,7 +15,7 @@ **********************************************************************} -Procedure UniqueString (Var S : UnicodeString);external name 'FPC_UNICODESTR_UNIQUE';{$ifndef VER3_2}discardresult;{$endif VER3_2} +Procedure UniqueString (Var S : UnicodeString);{$ifdef SYSTEMINLINE}inline;{$endif} Function Pos (Const Substr : UnicodeString; Const Source : UnicodeString; Offset: Sizeint = 1) : SizeInt; Function Pos (c : Char; Const s : UnicodeString; Offset: Sizeint = 1) : SizeInt; Function Pos (c : UnicodeChar; Const s : UnicodeString; Offset: Sizeint = 1) : SizeInt; diff --git a/rtl/inc/ustrings.inc b/rtl/inc/ustrings.inc index ed19678f4c..96089f14a0 100644 --- a/rtl/inc/ustrings.inc +++ b/rtl/inc/ustrings.inc @@ -1104,6 +1104,15 @@ procedure WideCharToStrVar(S : PWideChar;out Dest : AnsiString); end; +Function fpc_unicodestr_Unique_func(Var S : UnicodeString): Pointer; external name 'FPC_UNICODESTR_UNIQUE'; + + +Procedure UniqueString (Var S : UnicodeString);{$ifdef SYSTEMINLINE}inline;{$endif} + begin + fpc_unicodestr_Unique_func(S); + end; + + {$ifndef FPC_HAS_UNICODESTR_UNIQUE} {$define FPC_HAS_UNICODESTR_UNIQUE} Function fpc_unicodestr_Unique(Var S : Pointer): Pointer; [Public,Alias : 'FPC_UNICODESTR_UNIQUE']; compilerproc; diff --git a/rtl/inc/wstringh.inc b/rtl/inc/wstringh.inc index 350ca1a12c..ce4209b47a 100644 --- a/rtl/inc/wstringh.inc +++ b/rtl/inc/wstringh.inc @@ -15,7 +15,7 @@ **********************************************************************} -Procedure UniqueString (Var S : WideString);external name 'FPC_WIDESTR_UNIQUE';{$ifndef VER3_2}discardresult;{$endif VER3_2} +Procedure UniqueString (Var S : WideString);{$ifdef SYSTEMINLINE}inline;{$endif} Function Pos (Const Substr : WideString; Const Source : WideString; Offset : SizeInt = 1) : SizeInt; Function Pos (c : Char; Const s : WideString; Offset : SizeInt = 1) : SizeInt; Function Pos (c : WideChar; Const s : WideString; Offset : SizeInt = 1) : SizeInt; diff --git a/rtl/inc/wstrings.inc b/rtl/inc/wstrings.inc index dde4d3b787..9e535ff2e6 100644 --- a/rtl/inc/wstrings.inc +++ b/rtl/inc/wstrings.inc @@ -546,6 +546,15 @@ end; Public functions, In interface. *****************************************************************************} +Function fpc_widestr_Unique_func(Var S : WideString): Pointer; external name 'FPC_WIDESTR_UNIQUE'; + + +Procedure UniqueString (Var S : WideString);{$ifdef SYSTEMINLINE}inline;{$endif} + begin + fpc_widestr_Unique_func(S); + end; + + Function fpc_widestr_Unique(Var S : Pointer): Pointer; [Public,Alias : 'FPC_WIDESTR_UNIQUE']; compilerproc; begin pointer(result) := pointer(s);